From my-skills
Paseo CLI companion. Load whenever the user mentions paseo, paseo agents, paseo run/send/wait/logs/attach/ls, agent IDs, sending follow-ups to a running agent, loops, schedules, terminals, worktrees, chat, permits, daemon operations, or host/port targeting.
npx claudepluginhub atomlink-ye/my-claude-plugins --plugin skill-creatorThis skill uses the workspace's default tool permissions.
Paseo is a daemon-managed CLI for launching, observing, and steering AI coding agents. Every agent gets a stable ID that serves as the handle for all subsequent operations — follow-ups, logs, waiting, archiving.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
Paseo is a daemon-managed CLI for launching, observing, and steering AI coding agents. Every agent gets a stable ID that serves as the handle for all subsequent operations — follow-ups, logs, waiting, archiving.
This skill is a runtime adapter. It documents how to drive the Paseo CLI; it does not decide whether a task should run through Paseo at all, on the local daemon or a remote one, or with which model. Those choices belong to the orchestration layer (team-lead-orchestration) and any local routing profile that applies (e.g. a personalized routing skill).
paseo <command> [options]
paseo run "implement the new auth flow"
Blocks until the agent finishes. Add --wait-timeout 30m to cap the wait.
Reuse before relaunch — if an agent already exists for related work, continue it:
paseo send <id> "now add tests for the new endpoint"
<id> accepts a unique prefix or the agent name, not just the full UUID.
Detach agents, do other work, then join:
api_id=$(paseo run -d --json --title api-lane "implement the API" | jq -r .id)
ui_id=$(paseo run -d --json --title ui-lane "implement the UI" | jq -r .id)
# ... do other work ...
paseo wait "$api_id"
paseo wait "$ui_id"
If wait times out, the agent is still running. Inspect state or wait again; do not relaunch the same work.
When a remote daemon is exposed through a tunnel or Daytona preview, pass --host to every command that should address that daemon:
paseo provider ls --host "$REMOTE_PASEO_HOST"
paseo run --host "$REMOTE_PASEO_HOST" -d --provider opencode --mode orchestrator --cwd /workspace --prompt-file ./task.md
paseo wait --host "$REMOTE_PASEO_HOST" --timeout 1800 <id>
paseo logs --host "$REMOTE_PASEO_HOST" <id> --tail 20
Use the host:port form, not a full http://... preview URL.
paseo run --worktree feature-x "implement feature X"
paseo run --worktree experiment-y --base develop "try approach Y"
paseo loop run "fix the failing tests" \
--verify-check "npm test" \
--max-iterations 10
Use --verify "<prompt>" for an agent-based verifier instead of a shell command.
paseo logs <id> -f # stream live output
paseo attach <id> # interactive stream (Ctrl+C detaches, doesn't stop)
paseo inspect <id> # detailed metadata snapshot
paseo ls # active agents
paseo ls -a # include archived
paseo stop <id> # interrupt a running agent
paseo archive <id> # soft-delete
paseo delete <id> # hard-delete
--provider <provider/model> # pick provider/model (decided by routing profile, not this skill)
--cwd /path/to/repo # set working directory
--host 10.0.0.8:6767 # target a remote daemon
--json # machine-readable output
-d # detach (return immediately, print agent ID)
--title auth-lane # stable human name for tracking
--label area=backend # metadata for filtering
--prompt-file ./task.md # read prompt from file (for long/complex prompts)
--image screenshot.png # attach an image to the prompt
| Goal | Command |
|---|---|
| Launch and wait | paseo run "PROMPT" |
| Launch detached | paseo run -d "PROMPT" |
| Continue an agent | paseo send <id> "PROMPT" |
| Wait for completion | paseo wait <id> |
| Stream logs | paseo logs <id> -f |
| Attach interactively | paseo attach <id> |
| List agents | paseo ls [-a] |
| Stop/archive/delete | `paseo stop |
| Target remote daemon | add --host <ip>:<port> |
| You need to... | Read |
|---|---|
| Inspect, stop, archive, delete agents; update metadata or labels | references/agent-management.md |
| Discover providers/models, select a provider, switch modes, enable thinking | references/providers-and-modes.md |
| Use git worktrees for isolation, manage Paseo-created worktrees | references/worktree-and-cwd.md |
| Set up verification loops or recurring scheduled tasks | references/loop-and-schedule.md |
| Create persistent terminals, send keystrokes, capture output | references/terminal.md |
| Set up inter-agent chat rooms or handle permission requests | references/chat-and-permit.md |
| First-time setup, daemon start/stop/restart, connect to remote daemon | references/daemon-and-onboarding.md |
| Drive agents on a remote daemon through preview/tunnel host routing | references/remote-host-orchestration.md |
| Script/automate Paseo output, JSON/YAML formats, schema validation | references/output-formats.md |
paseo send to it — don't spin up a new one.paseo ls / paseo inspect. Use paseo wait <id> (blocks efficiently) or paseo logs <id> -f (streams).wait times out, the agent is still running. Use paseo stop <id> to actually interrupt.--host through. A remote agent ID is only useful when later wait, logs, send, and inspect target the same daemon host.--prompt-file.