Full command reference
The complete command surface. For day-to-day commands only, see Core commands. For navigation specifically, see Navigation.
Stack operations
| Command |
Alias |
Description |
st status |
s, ls |
Show stack |
st ll |
|
Show stack with PR URLs and full details |
st log |
l |
Show stack with commits and PR info |
st submit |
ss |
Submit full current stack |
st merge |
|
Cascade-merge from bottom to current (see flags below) |
st merge-when-ready |
mwr |
Backward-compatible alias for st merge --when-ready |
st sync |
rs |
Pull trunk, delete merged branches (incl. squash merges), reparent children |
st sync --restack |
rs --restack |
sync plus rebase current stack onto updated parents |
st sync --delete-upstream-gone |
|
Also delete local branches whose upstream tracking ref is gone |
st refresh |
|
sync --restack, then push and create/update PRs for the current stack |
st restack |
|
Rebase current stack locally — auto-normalizes missing/merged parents; --stop-here limits scope |
st cascade |
|
Restack from bottom and submit updates |
st diff |
|
Show per-branch diffs vs parent |
st range-diff |
|
Show range-diff for branches needing restack |
st merge variants
st merge — local cascade merge with provenance-aware descendant rebases, then st rs --force unless --no-sync
st merge --when-ready — wait for CI + approvals + mergeability; incompatible with --dry-run, --no-wait, --remote
st merge --remote — merge entirely via GitHub API, no local git operations (GitHub only)
st merge --queue — enqueue PRs into GitHub merge queue / GitLab merge trains
See also: Merge and cascade
Navigation
| Command |
Alias |
Description |
st checkout |
co, bco |
Interactive branch picker |
st trunk |
t |
Switch to trunk (or set trunk with st trunk <branch>) |
st up [n] |
u |
Move up to child |
st down [n] |
d |
Move down to parent |
st top |
|
Stack tip |
st bottom |
|
Stack base |
st prev |
p |
Toggle to previous branch |
Branch management
| Command |
Alias |
Description |
st create <name> |
c, bc |
Create stacked branch (TTY menu when nothing staged and -m) |
st modify |
m |
Amend staged changes into current commit (-a stages all, -r restacks after) |
st rename |
|
Rename current branch |
st branch track |
|
Track an existing branch |
st branch track --all-prs |
|
Track all open PRs (GitHub, GitLab, Gitea) |
st branch untrack |
ut |
Remove stax metadata |
st branch reparent |
|
Change parent |
st branch submit |
bs |
Submit current branch only |
st branch delete |
|
Delete branch |
st branch fold |
|
Fold branch into parent |
st branch squash |
|
Squash commits |
st detach |
|
Remove branch from stack, reparent children |
st reorder |
|
Interactively reorder branches in stack |
st absorb |
|
Distribute staged changes to the correct stack branches (file-level) |
Up/down scopes
| Command |
Description |
st upstack restack |
Restack current + descendants |
st upstack onto [branch] |
Reparent current + descendants onto a new parent |
st upstack submit |
Submit current + descendants |
st downstack get |
Show branches below current |
st downstack submit |
Submit ancestors + current |
Interactive modes
| Command |
Description |
st |
Launch the TUI |
st split |
Split branch into stacked branches (commit-based; needs 2+ commits) |
st split --hunk |
Split a single commit by selecting individual diff hunks |
st split --file <pathspec> |
Split by extracting matching files into a new parent branch |
st edit · e |
Interactively edit commits (pick, reword, squash, fixup, drop) |
Recovery
| Command |
Description |
st resolve |
AI-resolve an in-progress rebase conflict |
st abort |
Abort the in-progress rebase / conflict resolution |
st undo |
Undo the last operation |
st undo <op-id> |
Undo a specific operation |
st redo |
Re-apply the last undone operation |
Health and testing
| Command |
Description |
st validate |
Check stack metadata for orphans, cycles, and staleness |
st fix |
Auto-repair broken metadata (--dry-run previews) |
st run <cmd> |
Run a command on each branch (alias: st test); --stack[=<branch>], --all, --fail-fast |
CI, PRs, and reporting
| Command |
Description |
st ci |
CI status for current branch (with elapsed/ETA learned from recent runs) |
st ci --stack / --all / --watch |
Scope and watch modes |
st ci --verbose / --json |
Summary cards · JSON output |
st pr · st pr open |
Open current branch PR |
st pr list |
List open PRs (GitHub, GitLab, Gitea) |
st issue list |
List open issues |
st comments |
Show PR comments |
st copy · st copy --pr |
Copy branch name · PR URL |
st standup |
Recent activity (--summary for AI spoken version; --jit for Jira context) |
st changelog [from] [to] |
Generate changelog (auto-resolves last tag when from omitted) |
st generate --pr-body |
Generate PR body with AI |
Utilities
| Command |
Description |
st auth |
Configure GitHub token (--from-gh, --token <token>, status) |
st config |
Show current configuration |
st config --set-ai |
Interactively set AI agent/model (global or per-feature) |
st config --reset-ai |
Clear saved AI defaults and re-prompt (--no-prompt to clear only) |
st init |
Initialize stax or reconfigure trunk (--trunk <branch>) |
st cli upgrade |
Detect install method and run the matching upgrade |
st doctor |
Check repo health |
st continue |
Continue after conflicts |
st open |
Open repository in browser |
st demo |
Interactive tutorial — no auth or repo required |
Worktrees
Full guide: Worktrees · AI lanes
| Command |
Aliases |
Description |
st worktree |
wt |
Open the interactive dashboard (TTY only) |
st worktree create [name] |
wt c, wtc |
Create or reuse a lane (random name if omitted) |
st lane [name] [prompt] |
|
AI-lane entrypoint; bare st lane opens a picker |
st worktree list |
wt ls, w, wtls |
List all worktrees |
st worktree ll |
wt ll |
Rich status view |
st worktree go [name] |
wt go, wtgo |
Navigate to a worktree (shell integration required for cd) |
st worktree path <name> |
|
Print absolute path (scripting) |
st worktree remove [name] |
wt rm, wtrm |
Remove a worktree (wt rm removes the current lane) |
st worktree prune |
wt prune, wtprune |
Clean stale git worktree bookkeeping |
st worktree cleanup |
wt cleanup, wt clean |
Prune + remove safe detached/merged lanes (--dry-run previews) |
st worktree restack |
wt rs, wtrs |
Restack all stax-managed worktrees |
st setup
| Command |
Description |
st setup |
One-shot onboarding: shell integration + optional skills + auth |
st setup --yes |
Accept defaults, install skills, import auth from gh when available |
st setup --install-skills / --skip-skills |
Control AI agent skills prompt |
st setup --auth-from-gh / --skip-auth |
Control auth onboarding |
st setup --print |
Print shell integration snippet for manual install |
Lane launch examples
st lane
st lane review-pass "address PR comments"
st lane fix-flaky --agent claude --yolo "stabilize the flaky tests"
st lane big-refactor --agent claude --agent-arg=--verbose "split the auth module"
st wt go ui-polish --run "cursor ." --tmux
Flags by command
st modify
-a stage all and amend
-am "msg" stage all and amend with a new message
-r restack after amending
-ar stage all, amend, restack
- With nothing staged in a TTY: menu to stage all,
--patch, amend message only, or abort
st create
-m "msg" set commit message (with nothing staged in a TTY: menu for stage all, --patch, empty branch, or abort)
-am "msg" stage all and commit
--insert reparent children of the current branch onto the new branch
st branch create --message "msg" --prefix feature/
st status / st ll / st log
--stack <branch> · --current · --compact · --json · --quiet
st submit
--draft / --publish / --no-pr / --no-fetch / --open / --quiet / --verbose
--reviewers alice,bob --labels bug,urgent --assignees alice
--squash squash commits on each branch before pushing
--ai-body generate PR body with AI
--template <name> / --no-template / --edit
--rerequest-review / --update-title
--yes / --no-prompt
Config: [submit] stack_links = "comment" | "body" | "both" | "off" in ~/.config/stax/config.toml.
st merge
--dry-run / --yes
--all / --method squash|merge|rebase
--when-ready · --when-ready --interval 10
--remote · --remote --all · --remote --timeout 60 --interval 10
--queue · --queue --all --yes
--no-wait / --no-sync / --no-delete / --timeout 60 / --quiet
st sync / st rs
--restack · --restack --auto-stash-pop
--delete-upstream-gone
--force / --safe / --continue / --quiet / --verbose
st restack
--all / --continue / --quiet
--stop-here
--submit-after ask|yes|no
st resolve
--agent codex --model gpt-5.3-codex --max-rounds 5
st cascade
--no-pr / --no-submit / --auto-stash-pop
st checkout
--trunk / --parent / --child 1
st ci
--stack / --all / --watch / --interval 30 / --json
st standup
--all / --hours 48 / --json
--summary · --summary --agent claude · --summary --hours 48
--summary --plain-text / --summary --json / --summary --jit
st pr / st issue
st pr list --limit 50 --json
st issue list --limit 50 --json
st generate --pr-body
--template <name> / --no-template / --no-prompt / --edit
--agent <name> / --model <name>
st changelog
--tag-prefix release/ios
--path src/
--json
st auth
--from-gh / --token <token> / status
st init
st undo / st redo
--yes / --no-push / --quiet
st absorb
--dry-run (preview) · -a (stage all first)
st edit
--yes (skip final confirmation) · --no-verify (skip pre-commit hooks)
st split
--file <pathspec> (or -f "src/api/*" with glob support)
--hunk (single-commit hunk-based split)