CLI Reference¶
This page is the compact command reference for tp. For longer walkthroughs, use the CLI Cookbook.
Command Index¶
| Command | Purpose |
|---|---|
tp ls |
list sessions and filter them by status, repo, or process |
tp new |
create a bare session or a profile-backed task session |
tp peek |
view recent scrollback without attaching |
tp send |
send the next instruction into a live session |
tp prod |
send configured follow-up prompts based on PR/session state |
tp jump |
attach or switch to a session |
tp status |
inspect process, cwd, metadata, and recent output |
tp trace |
inspect the transcript trace bound to a session |
tp clean |
remove done-ish sessions and their worktrees |
tp kill |
kill a session immediately |
tp set / tp get |
manage tmux-backed session metadata |
tp install-hooks |
install or remove git lifecycle hooks |
tp refresh |
refresh cached PR metadata without cleanup |
tp reap |
remove sessions whose PRs are merged |
tp ls¶
tp ls
tp ls --status active
tp ls --process claude-code
tp ls --repo myapp
tp ls --all-metadata
tp ls --cols NAME,STATUS,PROCESS,BRANCH
tp ls --cols NAME,PR,STATUS,DIR
tp ls --json
PR is a compact summary column. It starts with the PR number and appends short codes when available:
MmergedXclosedAapprovedCRchanges requestedRRreview requiredPpendingDdirty/conflictedBblockedCclean
tp new¶
Built-in profiles:
codex->codex --profile yoloclaude->claude --permission-mode bypassPermissionspi->pi --offline --no-extensions --no-skills --no-prompt-templates --no-themes --session-dir {worktree}/.tmux-pilot/pi/sessions
Plain sessions¶
tp new scratch
tp new scratch -c ~/repos/myapp
tp new scratch --here
tp new --here
Explicit profile launches¶
# Starts `codex --profile yolo` in ~/repos/tmux-pilot
tp new docs-pass --profile codex -c ~/repos/tmux-pilot
# Starts `claude --permission-mode bypassPermissions` in ~/repos/myapp
tp new review-pass --profile claude -c ~/repos/myapp
# Starts `pi --offline --no-extensions --no-skills --no-prompt-templates --no-themes --session-dir ~/repos/pi-mono/.tmux-pilot/pi/sessions`
tp new pi-local --profile pi -c ~/repos/pi-mono
Repo/bootstrap flow¶
# Creates branch feat/oauth-fix and worktree ~/worktrees/myapp-oauth-fix
tp new oauth-fix --profile codex --repo ~/repos/myapp
# Creates branch fix/771-issue-771 and pulls the issue title into @desc
tp new issue-771 --profile claude --repo ~/repos/myapp --issue 771
# Clones ~/repos/pi-mono first if needed, then creates ~/worktrees/pi-mono-pi-smoke
tp new pi-smoke --profile pi --repo badlogic/pi-mono
Useful overrides¶
tp new review-771 --profile claude --repo ~/repos/myapp --branch fix/review-771
tp new backport --profile codex --repo ~/repos/myapp --base-ref origin/release/1.2
tp new parser-pass --profile codex -c ~/repos/myapp --prompt "summarize the parser module"
tp new triage-pass --profile codex --repo ~/repos/myapp --no-agent
tp peek¶
tp peek docs-pass
tp peek docs-pass -n 100
tp send¶
tp send docs-pass "summarize the failing tests"
tp send --wait docs-pass "write regression coverage for the callback"
tp send --wait --timeout 90 docs-pass "continue with the next failure"
tp prod¶
tp prod
tp prod dragon-assign
tp prod --repo myapp
tp prod --dry-run --repo myapp
tp prod --json
tp prod --no-refresh
tp prod --wait dragon-assign
tp prod reads [prod] rules from ~/.config/tmux-pilot/profiles.toml, refreshes PR metadata by default, and picks the first matching rule for each session. By default it sends immediately; pass --wait when you explicitly want readiness checks first.
Example config:
[prod]
[[prod.rules]]
name = "changes-requested"
match = { pr_review = "CHANGES_REQUESTED", pr_state = "OPEN" }
prompt = "Address all requested review comments on {pr_display}, update tests as needed, and push the fixes."
[[prod.rules]]
name = "merge-blocked"
match = { pr_state = "OPEN", pr_merge_state = ["BLOCKED", "DIRTY"] }
prompt = "Your PR {pr_display} is not mergeable. Resolve the merge blockers, then push an update."
Available match/template fields include the session name plus flattened metadata such as repo, branch, desc, status, pr, pr_state, pr_review, and pr_merge_state.
tp jump¶
tp jump docs-pass
tp jump
Running tp jump without a name opens the fzf picker when fzf is installed.
tp status¶
tp status docs-pass
tp status shows:
- detected process
- working directory
- tmux metadata
- metadata freshness for cached fields such as PR state
- cached trace metadata when a transcript has been resolved
- current agent state
- recent scrollback
tp trace¶
tp trace docs-pass
tp trace docs-pass --refresh
tp trace docs-pass --json
tp trace docs-pass --show raw --lines 10
tp trace docs-pass --show json
tp trace docs-pass --show yaml
tp trace docs-pass --show tsv
tp trace docs-pass --show formatted
tp trace docs-pass --show yaml --color always
tp trace resolves the transcript associated with a session, preferring cached @trace_agent / @trace_path metadata and falling back to a cwd-based scan when needed. This is the command to use when you want to verify which chat/session trace a tmux session is actually bound to.
--jsonprints the trace binding metadata as JSON--show rawprints raw JSONL lines from the transcript--show jsonpretty-prints transcript records as a JSON array--show yamlrenders transcript records in a YAML-like view--show tsvemits normalized transcript rows with tab-separated columns--show formattedrenders a readable timestamped transcript timeline--color auto|always|nevercontrols ANSI color for--show raw|json|yaml|formatted
tp clean¶
tp clean --dry-run
tp clean --status merged --dry-run
tp clean docs-pass --force
tp clean --force
tp kill¶
tp kill docs-pass
tp set and tp get¶
tp set docs-pass status needs-review
tp set docs-pass branch feat/oauth-fix
tp get docs-pass status
tp install-hooks¶
tp install-hooks
tp install-hooks --path ~/.config/git/hooks
tp install-hooks --uninstall
tp refresh¶
tp refresh
tp refresh docs-pass
tp refresh --repo myapp
tp refresh --json
tp refresh updates cached PR metadata only. It writes @pr, @pr_state, @pr_review, @pr_merge_state, and @last_refresh, but it does not kill sessions, remove worktrees, or delete branches.
Trace Metadata¶
When tp resolves a transcript for a session, it caches:
@trace_agent@trace_path
These cached fields are visible in tp status, tp ls --all-metadata, and tp ls --json.
tp reap¶
tp reap --dry-run
tp reap --force
tp reap --include-no-pr --dry-run
tp reap --dry-run still refreshes and persists safe PR metadata before deciding what would be reaped.
Notes On Current Behavior¶
- Codex trust prompts in brand-new repos/worktrees are expected and are not yet surfaced as a dedicated first-class state.
tp send --waitcurrently helps once the session is back at a sendable prompt.- The most reliable explicit Codex launch command today is still
codex --profile yolo --no-alt-screenfor long-lived sessions you plan to steer repeatedly.