@staff0rd/assist 0.759.1 → 0.760.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +167 -176
- package/dist/commands/sessions/web/bundle.js +436 -436
- package/dist/index.js +133 -70
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -42,34 +42,34 @@ After installation, the `assist` command will be available globally. You can als
|
|
|
42
42
|
|
|
43
43
|
- `/add-command` - Add a new run command to assist.yml
|
|
44
44
|
- `/add-rule` - Capture a new `CLAUDE.md` rule from a review comment
|
|
45
|
-
- `/branch <description> [--jira KEY]` - Create a branch off the fresh remote default
|
|
45
|
+
- `/branch <description> [--jira KEY]` - Create a branch off the fresh remote default
|
|
46
46
|
- `/bug` - File a bug with reproduction steps, expected and actual behavior
|
|
47
|
-
- `/close` -
|
|
47
|
+
- `/close` - End this session if its work is finished
|
|
48
48
|
- `/comment` - Add pending review comments to the current PR
|
|
49
49
|
- `/commit` - Commit only relevant files from the session
|
|
50
50
|
- `/devlog` - Generate devlog entry for the next unversioned day
|
|
51
51
|
- `/draft` - Draft a new backlog item with LLM-assisted questioning
|
|
52
|
-
- `/fix-conflict [--rebase]` - Resolve the current PR branch's conflicts against the remote default
|
|
52
|
+
- `/fix-conflict [--rebase]` - Resolve the current PR branch's conflicts against the remote default; `--rebase` rebases instead of merging
|
|
53
53
|
- `/fix-rules [dir]` - Put existing rules into the `## Rules` format `assist rules` reads
|
|
54
54
|
- `/forward-comments` - Split a coarse PR comment into per-line review comments, attributed to the original reviewer
|
|
55
|
-
- `/pr` - Raise a PR with a concise description
|
|
56
|
-
- `/prs-slack <number> [--no-confirm]` - Post a PR's title and URL to the
|
|
57
|
-
- `/prs-status [channel] <owner/repo>...` - Post an overview of the open PRs across the named repos to Slack
|
|
55
|
+
- `/pr` - Raise a PR with a concise description
|
|
56
|
+
- `/prs-slack <number> [--no-confirm]` - Post a PR's title and URL to the `prs.slack` channel; `--no-confirm` skips the confirmation
|
|
57
|
+
- `/prs-status [channel] <owner/repo>...` - Post an overview of the open PRs across the named repos to Slack (default channel `slack.channel`)
|
|
58
58
|
- `/refactor` - Run refactoring checks for code quality
|
|
59
59
|
- `/prompts` - Analyze denied tool calls and suggest settings changes to auto-allow recurring prompts
|
|
60
|
-
- `/run-logs [session-id|group]` -
|
|
61
|
-
- `/releases-configure` -
|
|
60
|
+
- `/run-logs [session-id|group]` - Summarise a run session's output, by session id or this repo's server group (default `default`)
|
|
61
|
+
- `/releases-configure` - Derive this repo's release promotion topology from its workflows and write it to `releases.streams`
|
|
62
62
|
- `/refine` - Refine an existing backlog item through conversation
|
|
63
|
-
- `/rename [title]` - Retitle this session's dashboard card
|
|
63
|
+
- `/rename [title]` - Retitle this session's dashboard card, inferring a title when given none
|
|
64
64
|
- `/restructure` - Analyze and restructure tightly-coupled files
|
|
65
|
-
- `/review-config` -
|
|
66
|
-
- `/review-ci` - Install a
|
|
67
|
-
- `/review-high-level [number]` - Open the high-level review checklist for the current branch's PR, or PR `<number
|
|
65
|
+
- `/review-config` - Configure this repo's high-level review checklist keys
|
|
66
|
+
- `/review-ci` - Install a GitHub workflow that reviews new PRs with Claude and Codex through LiteLLM or Azure AI Foundry, without depending on assist
|
|
67
|
+
- `/review-high-level [number]` - Open the high-level review checklist for the current branch's PR, or PR `<number>`
|
|
68
68
|
- `/review-pr-comments` - Process PR review comments one by one
|
|
69
|
-
- `/jira [action] [KEY] [args]` - Jira actions: `view`, `associate`, `update`, `started`, `done`, `help`. `[KEY]`
|
|
70
|
-
- `/github [action] [ref] [args]` - GitHub issue actions: `view`, `edit`, `associate`, `update`, `started`, `done`, `help`. `[ref]`
|
|
69
|
+
- `/jira [action] [KEY] [args]` - Jira actions: `view`, `associate`, `update`, `started`, `done`, `help`. `[KEY]` defaults to the session's backlog item's
|
|
70
|
+
- `/github [action] [ref] [args]` - GitHub issue actions: `view`, `edit`, `associate`, `update`, `started`, `done`, `help`. `[ref]` defaults to the session's backlog item's; a bare `/github <ref>` runs `edit`
|
|
71
71
|
- `/next [id]` - Signal completion and chain into the next backlog item
|
|
72
|
-
- `/slack-post [channel] [--thread <ts-or-permalink>] <what to say>` -
|
|
72
|
+
- `/slack-post [channel] [--thread <ts-or-permalink>] <what to say>` - Preview a markdown message, or a thread of them, then post it to a Slack channel (default `slack.channel`); `--thread` replies in that thread
|
|
73
73
|
- `/subtask <text>` - Add a sub-task to the session's current backlog item
|
|
74
74
|
- `/strip-code-comments` - Strip redundant comments from tracked source files
|
|
75
75
|
- `/sync` - Sync commands and settings to ~/.claude
|
|
@@ -78,10 +78,10 @@ After installation, the `assist` command will be available globally. You can als
|
|
|
78
78
|
- `/test-review` - Review existing tests for quality, coverage gaps, and conventions
|
|
79
79
|
- `/inspect` - Run .NET code inspections on changed files
|
|
80
80
|
- `/screenshot` - Capture a screenshot of a running application window
|
|
81
|
-
- `/ask [what to ask about]` -
|
|
82
|
-
- `/show [what to show]` - Open long
|
|
81
|
+
- `/ask [what to ask about]` - Put a plan, summary or proposed decision in the web preview pane and wait for the user's sign-off
|
|
82
|
+
- `/show [what to show]` - Open long links, paths and snippets in the web preview pane, defaulting to those in the previous reply
|
|
83
83
|
- `/raven` - Query and manage RavenDB connections and collections
|
|
84
|
-
- `/miro [board url | extract name]` -
|
|
84
|
+
- `/miro [board url | extract name]` - Extract a Miro frame's boxes as an ordered YAML list
|
|
85
85
|
- `/seq` - Query Seq logs from a URL or filter expression
|
|
86
86
|
- `/sql` - Query a MSSQL database via assist sql
|
|
87
87
|
- `/verify` - Run all verification commands in parallel
|
|
@@ -94,85 +94,78 @@ Every command supports `--help` for full detail on its flags and behaviour.
|
|
|
94
94
|
|
|
95
95
|
### Database
|
|
96
96
|
|
|
97
|
-
- `assist backup [-o, --out <dir>]` - Dump the
|
|
98
|
-
- `assist backup schedule --every <duration>` -
|
|
99
|
-
- `assist backup schedule status` -
|
|
100
|
-
- `assist backup schedule remove` - Remove the backup schedule
|
|
97
|
+
- `assist backup [-o, --out <dir>]` - Dump the backlog database to `<dir>` (default `~/.assist/backups`, or `backup.dir`)
|
|
98
|
+
- `assist backup schedule --every <duration>` - Schedule `assist backup` on a cadence (e.g. `5m`, `6h`)
|
|
99
|
+
- `assist backup schedule status` - Show the active backup cadence
|
|
100
|
+
- `assist backup schedule remove` - Remove the backup schedule
|
|
101
101
|
- `assist db migrate` - Apply pending backlog database migrations in order
|
|
102
102
|
- `assist db status` - Report whether the database is in sync with the build's bundled migrations
|
|
103
|
-
- `assist db drop-retired` - Drop
|
|
103
|
+
- `assist db drop-retired` - Drop tables left by removed features
|
|
104
104
|
|
|
105
105
|
### Git and GitHub
|
|
106
106
|
|
|
107
|
-
- `assist sync [--prune] [--force]` - Copy commands, settings and design assets to `~/.claude` (plus `~/.codex` and `~/.pi` when those CLIs are
|
|
107
|
+
- `assist sync [--prune] [--force]` - Copy commands, settings and design assets to `~/.claude` (plus `~/.codex` and `~/.pi` when those CLIs are installed); `--prune` lists commands sync did not write and `--prune --force` removes them
|
|
108
108
|
- `assist activity [--since <date>]` - Chart GitHub commit activity per day (defaults to last 30 days)
|
|
109
109
|
- `assist commit status` - Show git status and diff
|
|
110
|
-
- `assist commit <message> [files...] [--ref <ref>]` - Stage files and create a
|
|
111
|
-
- `assist branch <slug> [--jira <key>] [--from <ref>]` - Create and switch to a new branch off the fresh remote default (or `--from <ref>`)
|
|
112
|
-
- `assist watch wait [--interval <d>] [--timeout <d>|none] [--pull] [--build [entry]]` -
|
|
113
|
-
- `assist watch loop` -
|
|
114
|
-
- `assist watch report [--from <sha>]` -
|
|
115
|
-
- `assist read-time <target> [--budget <duration>]` - Estimate how long a
|
|
110
|
+
- `assist commit <message> [files...] [--ref <ref>]` - Stage files and create a validated single-line commit; each `--ref` (free text containing a URL) adds a `Ref:` trailer
|
|
111
|
+
- `assist branch <slug> [--jira <key>] [--from <ref>]` - Create and switch to a new branch off the fresh remote default (or `--from <ref>`)
|
|
112
|
+
- `assist watch wait [--interval <d>] [--timeout <d>|none] [--pull] [--build [entry]]` - Wait until the current branch's upstream gains commits; `--pull` fast-forwards to them and `--build` then runs the `auto-build` run entry (or `[entry]`)
|
|
113
|
+
- `assist watch loop` - Keep the current branch pulled and built as its upstream moves
|
|
114
|
+
- `assist watch report [--from <sha>]` - Summarise recent commits and the restarts and sync they call for, since `<sha>` when given
|
|
115
|
+
- `assist read-time <target> [--budget <duration>]` - Estimate how long a PR (number or URL), file or stdin (`-`) takes to read, against `--budget` (default 1m)
|
|
116
116
|
- `assist prs` - List pull requests for the current repository
|
|
117
|
-
- `assist prs status <owner/repo>... [--json]` - Report
|
|
118
|
-
- `assist prs raise --title <t> --what <w> --why <y> [--how <h>] [--resolves <ref>] [--force] [--draft|--no-draft]` - Raise a PR
|
|
119
|
-
- `assist prs edit [--title <t>] [--what <w>] [--why <y>] [--how <h>] [--resolves <ref>]` - Update
|
|
120
|
-
- `assist prs read-time <target> [--budget <duration>]` - Alias of `assist read-time
|
|
117
|
+
- `assist prs status <owner/repo>... [--json]` - Report the open pull requests across the named repos and what each is waiting on
|
|
118
|
+
- `assist prs raise --title <t> --what <w> --why <y> [--how <h>] [--resolves <ref>] [--force] [--draft|--no-draft]` - Raise a PR with a What/Why/How body, previewed for approval in a web session; `--draft`/`--no-draft` override `prs.draft`
|
|
119
|
+
- `assist prs edit [--title <t>] [--what <w>] [--why <y>] [--how <h>] [--resolves <ref>]` - Update the supplied sections of the current PR's body, previewed for approval in a web session
|
|
120
|
+
- `assist prs read-time <target> [--budget <duration>]` - Alias of `assist read-time`
|
|
121
121
|
- `assist prs list-comments` - List all comments on the current branch's pull request
|
|
122
122
|
- `assist prs fixed <comment-id> <sha>` - Reply with commit link and resolve thread
|
|
123
|
-
- `assist prs wontfix <comment-id> <reason>` - Reply with reason and resolve thread
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
EOF
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
- `assist prs reply <comment-id> <body>` - Reply to a comment thread without resolving it. In a web session the body is previewed for approve/reject first (with inline comments), as for `wontfix`. Pass `-` as the body to read it from stdin
|
|
132
|
-
- `assist prs comment <path> <line> <body>` - Add a line comment to the pending review. In a web session the comment is previewed for approve/reject first (with inline comments), headed `Comment on <path>:<line>`; nothing is posted until it is approved. Pass `-` as the body to read it from stdin
|
|
133
|
-
- `assist review [number]` - Run Claude and Codex in parallel to review the current branch's PR, then post line-bound comments. Findings post one at a time straight to the PR, without the preview pane that gates an agent-authored `prs comment`. The diff comes from GitHub, so stale local base branches don't pollute the review; cached `claude.md` / `codex.md` / `synthesis.md` are reused when present. Everything the run prints is also appended to `review.log` in the review folder — the terminal lines verbatim, with each spinner line in the state it finished in — so a run that failed inside a session whose card has since been reaped can still be read back
|
|
134
|
-
- `[number]` - `gh pr checkout <number>` first, placed by the worktree allocator on a repo with parallel work enabled (see [docs/parallel-work.md](docs/parallel-work.md))
|
|
123
|
+
- `assist prs wontfix <comment-id> <reason>` - Reply with reason and resolve thread, previewed for approval in a web session; `-` reads the reason from stdin
|
|
124
|
+
- `assist prs reply <comment-id> <body>` - Reply to a comment thread without resolving it, previewed for approval in a web session; `-` reads the body from stdin
|
|
125
|
+
- `assist prs comment <path> <line> <body>` - Add a line comment to the pending review, previewed for approval in a web session; `-` reads the body from stdin
|
|
126
|
+
- `assist review [number]` - Review the current branch's PR (or PR `[number]`) with Claude and Codex in parallel and post line-bound comments
|
|
127
|
+
- `[number]` - Check out that PR first (see [docs/parallel-work.md](docs/parallel-work.md))
|
|
135
128
|
- `--no-prompt` - Skip all confirmations
|
|
136
129
|
- `--submit` - Default the submit prompt to yes
|
|
137
|
-
- `--force` -
|
|
138
|
-
- `--refine` - Skip posting; walk through
|
|
139
|
-
- `--apply` - Skip posting; walk through each finding asking apply/skip
|
|
130
|
+
- `--force` - Re-run every phase instead of reusing cached results; with `--high-level`, start a fresh review
|
|
131
|
+
- `--refine` - Skip posting; walk through the findings interactively and edit them
|
|
132
|
+
- `--apply` - Skip posting; walk through each finding asking apply/skip
|
|
140
133
|
- `--backlog` - Skip posting; file all findings as a single bug backlog item with one phase per finding
|
|
141
|
-
- `--checkout-only` - Skip the review
|
|
142
|
-
- `--high-level` - Skip the LLM review;
|
|
143
|
-
- `--configure` - With `--high-level`:
|
|
144
|
-
- `--scope <project|repo>` - With `--configure`: write to the
|
|
145
|
-
- `--answer <key=value>` - With `--configure`: answer one key without prompting, repeatable
|
|
146
|
-
- `--address-comments` -
|
|
147
|
-
- `--announce` - Announce the PR in Slack
|
|
148
|
-
- `--verbose` - Per-line log output instead of the stacked-spinner UI
|
|
149
|
-
- `review.codexModel` -
|
|
150
|
-
- `review.highLevel.criticalPaths` -
|
|
151
|
-
- `review.highLevel.uiPaths` -
|
|
152
|
-
- `review.highLevel.descriptionWordCap` - Word cap
|
|
153
|
-
- `assist github commits <org> [--since <date>] [--top <n>] [--json]` - Report commit activity across a GitHub organisation
|
|
154
|
-
- `assist github issue create --title <title> --body <body> [-R <owner>/<repo>] [--type <name>] [--parent <issue>] [--project <number>] [--status <name>] [--label <name>]` - Create a GitHub issue on the current repo (or `-R`'s)
|
|
155
|
-
- `assist github issue edit <number> [-R <owner>/<repo>] [--fresh] [--parent <issue>]` - Rework an
|
|
156
|
-
- `assist github issue comment <number> --body <body> [-R <owner>/<repo>]` - Comment on a GitHub issue
|
|
157
|
-
- `assist github issue edit-comment <comment-id> --body <body> [-R <owner>/<repo>]` - Replace the body of a
|
|
158
|
-
- `assist github issue started <number> [-R <owner>/<repo>]` -
|
|
159
|
-
- `assist github issue fix-structure <target> [-R <owner>/<repo>] [--level <level>] [--type-chain <names>] [--strip-label <label>...] [--apply]` - Normalise the issue types across
|
|
134
|
+
- `--checkout-only` - Skip the review; check the PR out and leave an idle Claude session in it
|
|
135
|
+
- `--high-level` - Skip the LLM review; step through the high-level review checklist in the web preview pane. See [docs/high-level-review.md](docs/high-level-review.md)
|
|
136
|
+
- `--configure` - With `--high-level`: configure the checklist's `review.highLevel.*` keys instead of reviewing
|
|
137
|
+
- `--scope <project|repo>` - With `--configure`: write to the project `assist.yml` or this repo's block in `~/.assist.yml` instead of asking
|
|
138
|
+
- `--answer <key=value>` - With `--configure`: answer one key without prompting, repeatable; an empty value leaves the key unset
|
|
139
|
+
- `--address-comments` - Start an Address Comments session for the PR once comments are posted and the review submitted
|
|
140
|
+
- `--announce` - Announce the PR in Slack at the end of the chain
|
|
141
|
+
- `--verbose` - Per-line log output instead of the stacked-spinner UI
|
|
142
|
+
- `review.codexModel` - LiteLLM model the Codex reviewer uses; unset, it uses your own codex auth
|
|
143
|
+
- `review.highLevel.criticalPaths` - Globs of files whose diffs back the critical-diff checklist item; unset, no file is critical
|
|
144
|
+
- `review.highLevel.uiPaths` - Globs that make a change a UI change, requiring a screenshot or video; unset, the check passes
|
|
145
|
+
- `review.highLevel.descriptionWordCap` - Word cap for the PR description; defaults to 300
|
|
146
|
+
- `assist github commits <org> [--since <date>] [--top <n>] [--json]` - Report commit activity across a GitHub organisation
|
|
147
|
+
- `assist github issue create --title <title> --body <body> [-R <owner>/<repo>] [--type <name>] [--parent <issue>] [--project <number>] [--status <name>] [--label <name>]` - Create a GitHub issue on the current repo (or `-R`'s), previewed for approval in a web session; the options set its issue type, parent issue, project, project status and labels
|
|
148
|
+
- `assist github issue edit <number> [-R <owner>/<repo>] [--fresh] [--parent <issue>]` - Rework an issue's body in the web preview pane; `--fresh` discards an unpushed revision, and `--parent` instead makes the issue a sub-issue of `<issue>`
|
|
149
|
+
- `assist github issue comment <number> --body <body> [-R <owner>/<repo>]` - Comment on a GitHub issue, previewed for approval in a web session; `--body -` reads stdin
|
|
150
|
+
- `assist github issue edit-comment <comment-id> --body <body> [-R <owner>/<repo>]` - Replace the body of a posted issue comment, previewed for approval in a web session; `--body -` reads stdin
|
|
151
|
+
- `assist github issue started <number> [-R <owner>/<repo>]` - Assign a GitHub issue to yourself and move it to In Progress on its project boards
|
|
152
|
+
- `assist github issue fix-structure <target> [-R <owner>/<repo>] [--level <level>] [--type-chain <names>] [--strip-label <label>...] [--apply]` - Normalise the issue types across an issue's sub-issue subtree to a type chain (default `Epic,Story,Subtask`); `--level` sets the target's position in the chain, `--strip-label` removes a label, and nothing is written without `--apply`
|
|
160
153
|
- `assist news add [url]` - Add an RSS feed URL (rendered in the sessions web News tab)
|
|
161
|
-
- `assist releases [list]` - Print the
|
|
162
|
-
- `assist releases configure --streams <file> [--scope <project|repo>]` -
|
|
154
|
+
- `assist releases [list]` - Print the release promotion streams declared in `releases.streams`
|
|
155
|
+
- `assist releases configure --streams <file> [--scope <project|repo>]` - Write release streams from a JSON or YAML file (`-` for stdin) to `releases.streams`, in the project `assist.yml` (default) or this repo's block in `~/.assist.yml`
|
|
163
156
|
|
|
164
157
|
### Backlog
|
|
165
158
|
|
|
166
|
-
Backlog data is stored in a global Postgres database (shared across all repos, scoped per repository by git origin), so a connection string is required. Set it via the `ASSIST_DATABASE_URL` environment variable or the `database.url` key in `assist.yml`; the environment variable takes precedence.
|
|
159
|
+
Backlog data is stored in a global Postgres database (shared across all repos, scoped per repository by git origin), so a connection string is required. Set it via the `ASSIST_DATABASE_URL` environment variable or the `database.url` key in `assist.yml`; the environment variable takes precedence. Commands default to the current repository's items; pass `--all-repos` to span every repository.
|
|
167
160
|
|
|
168
|
-
Backlog item ids are written
|
|
161
|
+
Backlog item ids are written in an `a`-prefixed form (e.g. item 555 is `a555`) to disambiguate them from GitHub PR/issue numbers (`#42`) and Jira keys. Commands that take an `<id>` accept either form.
|
|
169
162
|
|
|
170
163
|
- `assist backlog [--dir <path>]` - Open the backlog tab in the web dashboard (same as `backlog web`)
|
|
171
|
-
- `assist backlog list [--status <type>] [-a, --all] [--all-repos] [-v]` - List backlog items
|
|
164
|
+
- `assist backlog list [--status <type>] [-a, --all] [--all-repos] [-v]` - List backlog items (alias: `ls`; also `assist list` / `assist ls`)
|
|
172
165
|
- `assist backlog add` - Add a new backlog item interactively (human CLI use only; agents must use `propose`)
|
|
173
166
|
- `assist backlog add --name <n> --type <t> --desc <d> --ac <criterion...>` - Add a backlog item from CLI options
|
|
174
|
-
- `assist backlog propose --json <file|-> [--confirmed]` - Create an agent-authored item from a JSON payload, previewed for approval in a web session
|
|
175
|
-
- `assist backlog show <id> [--all-commits]` - Display full detail for a backlog item (alias: `view`)
|
|
167
|
+
- `assist backlog propose --json <file|-> [--confirmed]` - Create an agent-authored item from a JSON payload, previewed for approval in a web session; outside one, `--confirmed` writes it. See [docs/backlog-item-preview.md](docs/backlog-item-preview.md)
|
|
168
|
+
- `assist backlog show <id> [--all-commits]` - Display full detail for a backlog item (alias: `view`); `--all-commits` lists every commit
|
|
176
169
|
- `assist backlog plan <id>` - Display the phased plan for a backlog item
|
|
177
170
|
- `assist backlog update-field <id> [--name <n>] [--desc <d>] [--type <t>] [--ac <criterion...>]` - Update fields on a backlog item
|
|
178
171
|
- `assist backlog update-field <id> [--add-ac <text>] [--edit-ac <n> <text>] [--remove-ac <n>]` - Granular 1-based acceptance-criteria edits
|
|
@@ -182,8 +175,8 @@ Backlog item ids are written and displayed in an `a`-prefixed form (e.g. item 55
|
|
|
182
175
|
- `assist backlog update-phase <id> <phase> [--add-task <t>] [--edit-task <n> <t>] [--remove-task <n>] [--add-check <c>] [--edit-check <n> <c>] [--remove-check <n>]` - Granular 1-based task and manual-check edits
|
|
183
176
|
- `assist backlog remove-phase <id> <phase>` - Remove a plan phase from a backlog item
|
|
184
177
|
- `assist backlog move-phase <id> <from> <to>` - Reorder a plan phase between 1-based positions
|
|
185
|
-
- `assist backlog update-plan <id> --json <file|->` - Replace an item's whole plan from a JSON payload, previewed as a
|
|
186
|
-
- `assist backlog add-subtask <id> --title <t> [--desc <d>]` - Add a sub-task. Sub-tasks under the `subtasks` key in `assist.yml` / `~/.assist.yml` are
|
|
178
|
+
- `assist backlog update-plan <id> --json <file|->` - Replace an item's whole plan from a JSON payload, previewed as a diff for approval
|
|
179
|
+
- `assist backlog add-subtask <id> --title <t> [--desc <d>]` - Add a sub-task. Sub-tasks under the `subtasks` key in `assist.yml` / `~/.assist.yml` are added to every new item
|
|
187
180
|
- `assist backlog edit-subtask <id> <idx> [--title <t>] [--desc <d>] [--status <s>]` - Edit a sub-task by its 1-based index
|
|
188
181
|
- `assist backlog remove-subtask <id> <idx>` - Remove a sub-task by its 1-based index
|
|
189
182
|
- `assist backlog subtask-status <id> <idx> <status>` - Set a sub-task's status (`todo`, `in-progress`, `done`)
|
|
@@ -194,41 +187,41 @@ Backlog item ids are written and displayed in an `a`-prefixed form (e.g. item 55
|
|
|
194
187
|
- `assist backlog set-status <id> <status>` - Set status (`todo`, `in-progress`, `done`, `wontdo`)
|
|
195
188
|
- `assist backlog star <id>` / `assist backlog unstar <id>` - Pin an item ahead of unstarred items in the web view
|
|
196
189
|
- `assist backlog delete <id>` - Delete a backlog item
|
|
197
|
-
- `assist backlog comment <id> <text>` - Add a comment to a backlog item
|
|
190
|
+
- `assist backlog comment <id> <text>` - Add a comment to a backlog item, previewed for approval first when `backlog.previewComments` is `true`
|
|
198
191
|
- `assist backlog comments <id>` - List comments and summaries for a backlog item
|
|
199
192
|
- `assist backlog delete-comment <id> <comment-id>` - Delete a comment (summaries cannot be deleted)
|
|
200
193
|
- `assist backlog phase-done <id> <phase> <summary>` - Signal that a plan phase is complete
|
|
201
194
|
- `assist backlog rewind <id> <phase> --reason <reason>` - Rewind an item to an earlier phase
|
|
202
195
|
- `assist backlog next [id] [--once]` - Pick and run the next backlog item, or open `/draft` if none remain
|
|
203
196
|
- `assist backlog refine [id] [--once] [--harness <claude|codex|pi>]` - Alias for `refine`
|
|
204
|
-
- `assist backlog run <id> [--harness <claude|codex|pi>] [--write|--no-write]` - Run a backlog item's plan phase-by-phase with the selected harness
|
|
205
|
-
- `assist backlog export [file]` - Export
|
|
206
|
-
- `assist backlog import [file]` - Restore
|
|
207
|
-
- `assist backlog associate-jira <id> [key]` - Associate a Jira ticket (bare key or browse URL)
|
|
208
|
-
- `assist backlog associate-github <id> [issue]` - Associate a GitHub issue (URL or `owner/repo#number`)
|
|
197
|
+
- `assist backlog run <id> [--harness <claude|codex|pi>] [--write|--no-write]` - Run a backlog item's plan phase-by-phase with the selected harness (default `harness.engine`)
|
|
198
|
+
- `assist backlog export [file]` - Export the backlog database to a file, or stdout
|
|
199
|
+
- `assist backlog import [file]` - Restore a dump into the backlog database (`-y, --yes` skips the prompt)
|
|
200
|
+
- `assist backlog associate-jira <id> [key]` - Associate a Jira ticket (bare key or browse URL), replacing any GitHub issue; `--clear` removes it
|
|
201
|
+
- `assist backlog associate-github <id> [issue]` - Associate a GitHub issue (URL or `owner/repo#number`), replacing any Jira key; `--clear` removes it
|
|
209
202
|
- `assist backlog add-activity <id> <kind> <ref>` - Attach an activity ref (`branch`, `commit`, `commit-parent`, `pr`, `slack`, `session`); `--title`, `--url`, `--state` override metadata
|
|
210
|
-
- `assist backlog record-slack <url>` - Attach a Slack thread permalink to the current session's item
|
|
211
|
-
- `assist backlog record-session <id>` - Attach the Claude session
|
|
203
|
+
- `assist backlog record-slack <url>` - Attach a Slack thread permalink to the current session's item
|
|
204
|
+
- `assist backlog record-session <id>` - Attach the current Claude session to an item; `--session <sessionId>` overrides detection
|
|
212
205
|
- `assist backlog move-repo <old-origin> [new-origin]` - Retag all items from one origin to another after a repo rename (`-y, --yes` skips the prompt)
|
|
213
|
-
- `assist backlog clone <origin>` - Clone a repo
|
|
206
|
+
- `assist backlog clone <origin>` - Clone a repo into `clone.baseDir` (default `~/git`)
|
|
214
207
|
- `assist backlog web [-p, --port <number>] [--no-open]` - Open the backlog tab in the web dashboard (default port 3100)
|
|
215
208
|
|
|
216
209
|
### Config and run commands
|
|
217
210
|
|
|
218
|
-
- `assist run <name> [params...]` - Run a configured command from assist.yml
|
|
211
|
+
- `assist run <name> [params...]` - Run a configured command from assist.yml, or a backlog item (`a555` / `555`) when no command matches
|
|
219
212
|
- `assist run add` - Add a new run configuration to assist.yml and create a Claude command file
|
|
220
213
|
- `assist run link <path> --prefix <prefix>` - Link run configurations from another project's assist.yml
|
|
221
214
|
- `assist run remove <name>` - Remove a run configuration and delete its Claude command file
|
|
222
215
|
|
|
223
|
-
A run entry's relative `cwd` (and a `link` path) resolves against the **repo root** - the directory holding `assist.yml` or `.claude/`, or the enclosing git repository when the repo has no project config
|
|
216
|
+
A run entry's relative `cwd` (and a `link` path) resolves against the **repo root** - the directory holding `assist.yml` or `.claude/`, or the enclosing git repository when the repo has no project config, whichever config file the entry came from.
|
|
224
217
|
|
|
225
|
-
- `assist config keys [filter]` - List every
|
|
226
|
-
- `assist config get <key>` - Get a config value
|
|
227
|
-
- `assist config list` - List the config values that are
|
|
228
|
-
- `assist config set <key> <value>` - Set a config value. `--global` writes to `~/.assist.yml`; `-g --repo [name]` writes a per-repo override there
|
|
218
|
+
- `assist config keys [filter]` - List every config key with its type, default, effect and setter, optionally filtered by name
|
|
219
|
+
- `assist config get <key>` - Get a config value; secret values are hidden unless `--reveal` is passed
|
|
220
|
+
- `assist config list` - List the config values that are set, with secret values hidden
|
|
221
|
+
- `assist config set <key> <value>` - Set a config value. `--global` writes to `~/.assist.yml`; `-g --repo [name]` writes a per-repo override there
|
|
229
222
|
- `assist config unset <key>` - Remove a config value so the key falls back to the global value or schema default (`-g` targets `~/.assist.yml`; `-g --repo [name]` removes it from a per-repo override there)
|
|
230
223
|
|
|
231
|
-
The Config tab of the sessions web dashboard never
|
|
224
|
+
The Config tab of the sessions web dashboard never shows secret values; their fields are write-only.
|
|
232
225
|
|
|
233
226
|
### Verify and lint
|
|
234
227
|
|
|
@@ -239,8 +232,8 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
239
232
|
- `assist verify hardcoded-colors` - Check for hardcoded hex colors in src/ (`hardcodedColors.ignore`)
|
|
240
233
|
- `assist verify block-code-comments` - Fail on any comment on a changed line (`blockCodeComments.ignore`); machine directives exempt
|
|
241
234
|
- `assist verify forbidden-strings` - Check configured JSON files for disallowed values (`forbiddenStrings` rules)
|
|
242
|
-
- `assist verify config-keys` - Check every
|
|
243
|
-
- `assist verify advice-fragments` - Check
|
|
235
|
+
- `assist verify config-keys` - Check every config key is surfaced in some command's `--help`
|
|
236
|
+
- `assist verify advice-fragments` - Check the advice fragment names match the fragments shipped in `claude/advice`
|
|
244
237
|
- `assist verify migrations` - Check bundled DB migrations are sequentially numbered, append-only, and free of unacknowledged destructive DDL
|
|
245
238
|
- `assist lint [-f, --fix]` - Run lint checks for conventions not enforced by oxlint
|
|
246
239
|
- `assist lint init` - Initialize oxlint with baseline linter config
|
|
@@ -252,13 +245,15 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
252
245
|
- `assist refactor rename file <source> <destination>` - Rename/move a TypeScript file and update all imports (`--apply` to execute)
|
|
253
246
|
- `assist refactor rename symbol <file> <oldName> <newName>` - Rename a symbol across the project (`--apply` to execute)
|
|
254
247
|
- `assist refactor extract <file> <functionName> <destination>` - Extract a function and its private dependencies to a new file (`--apply` to execute)
|
|
255
|
-
- `assist refactor restructure [root]` - Move files under `root` (default `src`) into folders derived from the import graph
|
|
248
|
+
- `assist refactor restructure [root]` - Move files under `root` (default `src`) into folders derived from the import graph (`--apply` to execute, `--check` to fail on drift)
|
|
256
249
|
|
|
257
250
|
### Rules
|
|
258
251
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
- `assist rules
|
|
252
|
+
Rules are `- **<code>** — **<title>** — <text>` bullets, the title optional, in the `## Rules` section of a `CLAUDE.md`.
|
|
253
|
+
|
|
254
|
+
- `assist rules list [path] [--full]` - List the rules in scope for a path (default: cwd); `--full` adds each rule's description
|
|
255
|
+
- `assist rules add <text> [--title <title>] [--scope <path>]` - Add a rule to the `## Rules` section of the `CLAUDE.md` nearest `--scope` (default cwd)
|
|
256
|
+
- `assist rules index` - Record the directories that carry their own `## Rules` in the repo root's `CLAUDE.md`; run it after hand-editing a `## Rules` section
|
|
262
257
|
|
|
263
258
|
### Devlog
|
|
264
259
|
|
|
@@ -270,20 +265,20 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
270
265
|
|
|
271
266
|
### Hooks
|
|
272
267
|
|
|
273
|
-
- `assist cli-hook` - PreToolUse hook auto-approving CLI commands from `allowed.cli-reads` / `allowed.cli-writes
|
|
268
|
+
- `assist cli-hook` - PreToolUse hook auto-approving CLI commands from `allowed.cli-reads` / `allowed.cli-writes`, and denying reads of `~/.assist/restricted`
|
|
274
269
|
- `assist cli-hook add <cli>` - Discover a CLI's commands and auto-permit read-only ones
|
|
275
270
|
- `assist cli-hook check <command> [--tool <tool>]` - Check whether a command would be auto-approved
|
|
276
271
|
- `assist cli-hook deny` - List all deny rules
|
|
277
272
|
- `assist cli-hook deny add <pattern> <message>` - Add a deny rule for a command pattern
|
|
278
273
|
- `assist cli-hook deny remove <pattern>` - Remove a deny rule by pattern
|
|
279
|
-
- `assist codex-hook` - Codex hook that auto-approves read-only commands
|
|
280
|
-
- `assist pi-hook` - pi permission
|
|
274
|
+
- `assist codex-hook` - Codex hook that auto-approves read-only commands and reports session status to the sessions dashboard
|
|
275
|
+
- `assist pi-hook` - pi permission gate that auto-approves read-only commands
|
|
281
276
|
- `assist edit-hook` - PreToolUse hook that blocks `Edit`/`Write`/`MultiEdit` calls from adding, changing, or removing a `// assist-maintainability-override` marker, or from introducing a code comment (use `code-comment set`/`confirm` for the rare comment that belongs)
|
|
282
|
-
- `assist code-comment set <file> <line> <text>` -
|
|
283
|
-
- `assist code-comment confirm <pin>` - Insert the pinned comment at its file/line
|
|
284
|
-
- `assist db-migration unlock` -
|
|
285
|
-
- `assist db-migration confirm <pin>` - Confirm a pin from `db-migration unlock`, letting that migration's file
|
|
286
|
-
- `assist advise [--hook] [--explain]` - Print the advice fragments
|
|
277
|
+
- `assist code-comment set <file> <line> <text>` - Request a pin authorising a single-line comment (max 50 chars)
|
|
278
|
+
- `assist code-comment confirm <pin>` - Insert the pinned comment at its file/line
|
|
279
|
+
- `assist db-migration unlock` - Ask a human to approve creating the next migration module
|
|
280
|
+
- `assist db-migration confirm <pin>` - Confirm a pin from `db-migration unlock`, letting that migration's file be written once
|
|
281
|
+
- `assist advise [--hook] [--explain]` - Print the advice fragments that apply to the current repo; `--hook` runs it as a SessionStart hook and `--explain` shows why each fragment was or wasn't included. `advice.sections` forces a fragment in or out by name, `advice.verify` replaces the verify fragment's text and `advice.extra` appends repo notes
|
|
287
282
|
- `assist notify` - Show desktop notification from JSON stdin (macOS, Windows, WSL)
|
|
288
283
|
- `assist status-line` - Format Claude Code status line from JSON stdin
|
|
289
284
|
|
|
@@ -303,9 +298,8 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
303
298
|
- `assist jira auth` - Authenticate with Jira via API token
|
|
304
299
|
- `assist jira ac <issue-key>` - Print acceptance criteria for a Jira issue
|
|
305
300
|
- `assist jira view <issue-key>` - Print the title and description of a Jira issue
|
|
306
|
-
|
|
307
|
-
- `assist
|
|
308
|
-
- `assist litellm list-models [--json]` - List the model ids the configured LiteLLM proxy serves, sorted one per line, from `GET <litellm.baseUrl>/v1/models`; `--json` prints the raw response body. Requires `litellm.baseUrl` and `litellm.apiKey`
|
|
301
|
+
- `assist miro extract [name] [--items <file>] [--top-left <id|link> --bottom-right <id|link>] [--ignore <file>] [--out <file>] [--board <id>] [--frame <id>] [--save <name>] [-g] [-r [repo]]` - Extract the text of every box inside a rectangle on a Miro board as an ordered YAML list. Omit the anchors to pick them in the web preview pane; `--save <name>` saves the selection under `miro.extracts` so `assist miro extract <name>` replays it
|
|
302
|
+
- `assist litellm list-models [--json]` - List the model ids the configured LiteLLM proxy serves
|
|
309
303
|
- `assist ravendb auth add` - Add a new RavenDB connection
|
|
310
304
|
- `assist ravendb auth list` - List configured RavenDB connections
|
|
311
305
|
- `assist ravendb auth remove <name>` - Remove a configured connection
|
|
@@ -317,28 +311,27 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
317
311
|
- `assist seq auth remove <name>` - Remove a configured connection
|
|
318
312
|
- `assist seq set-connection <name>` - Set the default Seq connection
|
|
319
313
|
- `assist seq query <filter>` - Query Seq events (`-c <connection>`, `--json`, `-n <count>`, `--from <date>`, `--to <date>`)
|
|
320
|
-
- `assist slack post [channel] --body <body|-> | --parts <file>... [--thread <ts-or-permalink>]` - Preview a markdown message bound for a Slack channel
|
|
321
|
-
- `--parts <file>...` previews a whole thread — the files holding its messages, in thread order — so none of them is handed back until all of them are approved. Each part gets its own working file under `~/.assist/slack/` (`eng-1.md`, `eng-2.md`, …) and its own preview pane, popped in sequence and titled with the target and its position in the batch (`Post to #eng (2/3)`). Only after the last part is approved does the command print anything: a line naming the target, then every working-file path in thread order prefixed with its position (`2/3`), then a line saying how to thread them — without `--thread` part 1 opens the thread and the rest carry the `thread_ts` it returns, with `--thread` every part is a reply under the resolved `thread_ts`. The first rejection halts the batch: it exits non-zero naming that part's position, the reason, every inline comment with its excerpt, and that part's working file, and prints no paths — revise that file in place and re-run the whole batch, which re-previews from part 1. A missing or empty part file, or `--parts` together with `--body`, is an error raised before any pane opens
|
|
314
|
+
- `assist slack post [channel] --body <body|-> | --parts <file>... [--thread <ts-or-permalink>]` - Preview a markdown message bound for a Slack channel (default `slack.channel`) for approval, for `/slack-post` to send; `--body -` reads stdin, `--thread` takes a message ts or permalink to reply under, and `--parts` previews a thread of messages, one file each, in order
|
|
322
315
|
- `assist sql auth add` - Add a new MSSQL connection
|
|
323
316
|
- `assist sql auth list` - List configured SQL connections
|
|
324
317
|
- `assist sql auth remove <name>` - Remove a configured connection
|
|
325
318
|
- `assist sql set-connection <name>` - Set the default SQL connection
|
|
326
|
-
- `assist sql query "<sql>" [connection]` - Execute a read-only SQL statement
|
|
327
|
-
- `assist sql mutate "<sql>" [connection]` - Execute a mutating SQL statement
|
|
319
|
+
- `assist sql query "<sql>" [connection]` - Execute a read-only SQL statement
|
|
320
|
+
- `assist sql mutate "<sql>" [connection]` - Execute a mutating SQL statement
|
|
328
321
|
- `assist sql tables [connection]` - List tables in the connected database
|
|
329
322
|
- `assist sql columns <table> [connection]` - List columns for a table (`schema.table` for a non-default schema)
|
|
330
323
|
|
|
331
324
|
### Other
|
|
332
325
|
|
|
333
|
-
- `assist netcap [-p, --port <port>] [-o, --out <dir>] [-f, --filter <pattern>]` - Capture browser network traffic
|
|
334
|
-
- `assist netcap extract-linkedin-posts [file]` - Parse a netcap capture into structured LinkedIn posts
|
|
335
|
-
- `assist criteria-extension [--sign]` -
|
|
326
|
+
- `assist netcap [-p, --port <port>] [-o, --out <dir>] [-f, --filter <pattern>]` - Capture browser network traffic under `--out` (default `~/.assist/netcap`), paired with the [netcap browser extension](#netcap-browser-extension)
|
|
327
|
+
- `assist netcap extract-linkedin-posts [file]` - Parse a netcap capture into structured LinkedIn posts
|
|
328
|
+
- `assist criteria-extension [--sign]` - Locate the [acceptance criteria outliner extension](#acceptance-criteria-outliner-extension) to load unpacked; `--sign` signs it for a permanent Firefox install
|
|
336
329
|
- `assist screenshot <process>` - Capture a screenshot of a running application window (`screenshot.outputDir`, default `./screenshots`)
|
|
337
|
-
- `assist mermaid export [file.md]` - Render each fenced mermaid block to
|
|
338
|
-
- `assist prompts` - Show
|
|
339
|
-
- `assist chart [--title <title>]` - Draw a terminal line chart of a `label value` series piped in on stdin, one pair per line
|
|
340
|
-
- `assist ask --title <title> --body <markdown|->` - Put a plan, summary or proposed decision in the session's web preview pane
|
|
341
|
-
- `assist show --body <markdown|-> [--title <title>]` - Render markdown in the session's web preview pane so long links, paths and code can be clicked and copied unbroken; `--body -` reads
|
|
330
|
+
- `assist mermaid export [file.md]` - Render each fenced mermaid block to SVG via [Kroki](https://kroki.io) (`--out`, `--index`, `mermaid.krokiUrl`)
|
|
331
|
+
- `assist prompts` - Show the most frequently denied tool calls
|
|
332
|
+
- `assist chart [--title <title>]` - Draw a terminal line chart of a `label value` series piped in on stdin, one pair per line
|
|
333
|
+
- `assist ask --title <title> --body <markdown|->` - Put a plan, summary or proposed decision in the session's web preview pane and wait for the user to approve or reject it; `--body -` reads stdin
|
|
334
|
+
- `assist show --body <markdown|-> [--title <title>]` - Render markdown in the session's web preview pane so long links, paths and code can be clicked and copied unbroken; `--body -` reads stdin
|
|
342
335
|
|
|
343
336
|
### Project setup
|
|
344
337
|
|
|
@@ -364,43 +357,43 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
364
357
|
### Transcripts
|
|
365
358
|
|
|
366
359
|
- `assist transcript configure` - Configure transcript directories
|
|
367
|
-
- `assist transcript clean <path>` - Clean
|
|
360
|
+
- `assist transcript clean <path>` - Clean a .vtt file to markdown or, with `--format vtt`, WebVTT; `--timestamps` prefixes each markdown speaker turn with its time
|
|
368
361
|
- `assist transcript list` - List raw .vtt filenames waiting in the pick-up directory
|
|
369
|
-
- `assist transcript merge <path...>` - Collapse several .vtt files into one transcript
|
|
362
|
+
- `assist transcript merge <path...>` - Collapse several .vtt files into one transcript on a continuous timeline (`--out <path>`); `--select <file|->` keeps only the chosen ranges, `--no-provenance` omits source notes and `--widen-audience` drops asides aimed at those in the call
|
|
370
363
|
- `assist transcript move <file>` - Convert a raw .vtt to a dated markdown transcript and archive the original
|
|
371
364
|
|
|
372
365
|
### Sessions
|
|
373
366
|
|
|
374
367
|
- `assist sessions` - Start the web dashboard (same as `sessions web`)
|
|
375
|
-
- `assist sessions web [-p, --port <number>] [--no-open]` - Start the web dashboard with Sessions, Backlog and News tabs (default port 3100)
|
|
368
|
+
- `assist sessions web [-p, --port <number>] [--no-open]` - Start the web dashboard with Sessions, Backlog and News tabs (default port 3100)
|
|
376
369
|
- `assist sessions summarise [-f, --force] [-n, --limit <count>]` - Generate one-line summaries for unsummarised Claude sessions
|
|
377
|
-
- `assist sessions close` -
|
|
378
|
-
- `assist sessions rename <title>` - Retitle the current daemon-managed session
|
|
379
|
-
- `assist sessions output [session-id] [--server [group]] [-n, --lines <count>]` - Print the
|
|
370
|
+
- `assist sessions close` - End the current daemon-managed session
|
|
371
|
+
- `assist sessions rename <title>` - Retitle the current daemon-managed session's dashboard card
|
|
372
|
+
- `assist sessions output [session-id] [--server [group]] [-n, --lines <count>]` - Print the recent output of a session on this node, or with `--server [group]` the current repo's live server run
|
|
380
373
|
- `assist sessions nodes [--json]` - List this node and every linked node with its link state (see [Linked nodes](#linked-nodes))
|
|
381
374
|
- `assist sessions nodes link <name> [url] [--tailscale <host> --port <port>]` - Link a peer node by its web server URL or its Tailscale name
|
|
382
375
|
- `assist sessions nodes unlink <name>` - Remove a linked node
|
|
383
|
-
- `assist sessions nodes doctor [name] [--json]` -
|
|
384
|
-
- `assist sessions nodes logs <name> [-n, --lines <count>] [--json]` - Tail a linked node's `daemon.log`
|
|
385
|
-
- `assist sessions set-status <status>` - Report the current session's status (`running`/`waiting`) to the daemon
|
|
386
|
-
- `assist daemon run` - Run the sessions daemon in the foreground
|
|
387
|
-
- `assist daemon status` - Show daemon status, live sessions
|
|
376
|
+
- `assist sessions nodes doctor [name] [--json]` - Find where a link is broken and how to fix it
|
|
377
|
+
- `assist sessions nodes logs <name> [-n, --lines <count>] [--json]` - Tail a linked node's `daemon.log`
|
|
378
|
+
- `assist sessions set-status <status>` - Report the current session's status (`running`/`waiting`) to the daemon
|
|
379
|
+
- `assist daemon run` - Run the sessions daemon in the foreground
|
|
380
|
+
- `assist daemon status` - Show daemon status, live sessions and each link's state
|
|
388
381
|
- `assist daemon stop` - Stop the sessions daemon; running claude sessions resume on next start
|
|
389
382
|
- `assist daemon restart` - Restart the sessions daemon, resuming previously running claude sessions
|
|
390
|
-
- `assist daemon drain [--yes]` - Remove all sessions from the local daemon
|
|
383
|
+
- `assist daemon drain [--yes]` - Remove all sessions from the local daemon; a session holding unpushed work is stopped, not removed
|
|
391
384
|
|
|
392
385
|
### Session launchers
|
|
393
386
|
|
|
394
387
|
- `assist next [id] [--once]` - Alias for `backlog next [id]`; `--once` exits after the first completed item run
|
|
395
388
|
- `assist draft [description] [--once]` (alias: `feat`) - Launch Claude in `/draft` mode, chain into next on `/next` signal
|
|
396
389
|
- `assist bug [description] [--once]` - Launch Claude in `/bug` mode, chain into next on `/next` signal
|
|
397
|
-
- `assist refine [id] [--once] [--harness <claude|codex|pi>]` - Launch a coding harness in `/refine` mode
|
|
398
|
-
- `assist review-pr-comments [number] [--announce] [--resume-session <id>]` - Launch Claude in `/review-pr-comments` mode
|
|
399
|
-
- `assist fix-conflict [number] [--rebase] [--resume-session <id>]` - Launch Claude in `/fix-conflict` mode
|
|
400
|
-
- `assist signal next [id]` -
|
|
401
|
-
- `assist signal done [id]` -
|
|
390
|
+
- `assist refine [id] [--once] [--harness <claude|codex|pi>]` - Launch a coding harness in `/refine` mode (default `harness.engine`)
|
|
391
|
+
- `assist review-pr-comments [number] [--announce] [--resume-session <id>]` - Launch Claude in `/review-pr-comments` mode, on PR `[number]` when given; `--announce` announces the PR in Slack once every thread is processed
|
|
392
|
+
- `assist fix-conflict [number] [--rebase] [--resume-session <id>]` - Launch Claude in `/fix-conflict` mode, on PR `[number]` when given; `--rebase` rebases instead of merging
|
|
393
|
+
- `assist signal next [id]` - Signal the session to chain into `assist next`
|
|
394
|
+
- `assist signal done [id]` - Signal the session's initial task complete, surfacing backlog item `[id]` on its card
|
|
402
395
|
|
|
403
|
-
`draft`, `bug`, `refine`, `review-pr-comments`, `fix-conflict` and `backlog run` accept `--resume-session <id>` to resume an interrupted Claude session
|
|
396
|
+
`draft`, `bug`, `refine`, `review-pr-comments`, `fix-conflict` and `backlog run` accept `--resume-session <id>` to resume an interrupted Claude session.
|
|
404
397
|
|
|
405
398
|
## Sessions dashboard
|
|
406
399
|
|
|
@@ -408,6 +401,8 @@ Web sessions are owned by a long-lived daemon process, not the web server: the s
|
|
|
408
401
|
|
|
409
402
|
The topnav's **+** button (or Ctrl+N / Alt+N) opens the new-session dialog, which replaces the old draft / bug / prompt / design topnav buttons. Its mode selector picks `draft`, `bug`, `prompt` or `design`; in `prompt` mode a harness selector under it picks Claude, Codex or pi when those are exposed, and Up/Down moves between the two rows. `design` launches an interactive `claude` session with the vendored design system prompt appended via `--append-system-prompt`. Left/Right change the mode or harness, and Tab steps through a selector's options before moving on to the next control.
|
|
410
403
|
|
|
404
|
+
Alt+1 to Alt+5 select the Nth visible top-level tab (with Releases hidden, News is Alt+4), including while the terminal has focus; on macOS use Option. Ctrl+/ (Cmd+/ on macOS) or the menu's **Keyboard shortcuts** item opens a sheet listing every sessions-view shortcut.
|
|
405
|
+
|
|
411
406
|
Every live session card carries an **add-agent** button (👥) that starts a second agent inside that session's existing workspace rather than allocating a new one. While several agents share a workspace, only the last one to leave triggers teardown.
|
|
412
407
|
|
|
413
408
|
A `run:` entry in `assist.yml` flagged `server:` (with an optional display-only `port:`) is a singleton **dev server**. `server:` takes a group name — `server: api` and `server: web` are separate slots, so a repo that serves an API and a front end can keep both live at once; `server: true` normalises to the group `default`. At most one server may be live per group per normalised git remote, i.e. across a clone and all its sibling clones. Session cards for such a repo show a **▶ start** button; the daemon rejects a second server run for that remote and group, and the web UI turns the conflict into a "replace running server?" prompt. The serving card shows a `serving :<port>` chip and a **⏹ stop** button, and the slot frees whenever that session stops. Non-`server` runs are unconstrained.
|
|
@@ -416,12 +411,12 @@ A `run:` entry in `assist.yml` flagged `server:` (with an optional display-only
|
|
|
416
411
|
|
|
417
412
|
Each assist install is a **node** with its own daemon and web server. A node can link to other nodes, and its web UI then shows its own sessions merged with each linked node's, as `<node>:<id>` cards carrying a node badge. Links are flat: a node only exports its own sessions and log lines, so two nodes linked to each other show no duplicates. See [docs/multi-node-sessions.md](docs/multi-node-sessions.md).
|
|
418
413
|
|
|
419
|
-
- `assist sessions nodes [--json]` — this node and each link's state
|
|
414
|
+
- `assist sessions nodes [--json]` — this node and each link's state and peer version.
|
|
420
415
|
- `assist sessions nodes link <name> --tailscale <host> --port <port>` (or `<url>`) — link a peer by its Tailscale host name, or by any web server URL. `<name>` must match the peer's `sessions.nodeName`. See [Linking machines over Tailscale](#linking-machines-over-tailscale).
|
|
421
416
|
- `assist sessions nodes unlink <name>` — remove a link.
|
|
422
417
|
- `assist sessions nodes doctor [name] [--json]` — find where a link is broken and how to fix it.
|
|
423
|
-
- `assist sessions nodes logs <name> [-n, --lines <count>] [--json]` — tail a linked node's `daemon.log
|
|
424
|
-
- `sessions.linkVersionCheck` — reaction to a version mismatch with a linked node: `block` (default)
|
|
418
|
+
- `assist sessions nodes logs <name> [-n, --lines <count>] [--json]` — tail a linked node's `daemon.log`; naming this node reads the local log.
|
|
419
|
+
- `sessions.linkVersionCheck` — reaction to a version mismatch with a linked node: `block` (default) updates an older peer and holds the link until the versions match; `warn` proceeds anyway; `off` skips the check.
|
|
425
420
|
|
|
426
421
|
With more than one node, a machine picker appears in the top nav and a machine selector in the new-session dialog; the dialog's selector defaults to the top nav's choice, which is remembered per browser. Linked nodes' daemon lines appear in this node's `daemon.log` tagged `[<node>]`. Every launch forwarded over a link and every `?node=` panel request carries a `traceId`, logged as `trace=<id>` by both nodes. `GET /api/health` reports the node's name, version, protocol, daemon reachability and its links' states. The retired `sessions.windows*` keys are ignored.
|
|
427
422
|
|
|
@@ -445,14 +440,14 @@ A config still holding a retired ssh link (`ssh:` / `port:` / `localPort:`) fail
|
|
|
445
440
|
|
|
446
441
|
### Session config keys
|
|
447
442
|
|
|
448
|
-
- `sessions.nodeName` — this install's node label
|
|
449
|
-
- `sessions.tailscaleServe` —
|
|
450
|
-
- `sessions.includeCommittedChanges` —
|
|
451
|
-
- `sessions.topBar` —
|
|
452
|
-
- `sessions.floatWaiting` —
|
|
453
|
-
- `sessions.floatWaitingAfterMs` —
|
|
454
|
-
- `sessions.newSessionMode` —
|
|
455
|
-
- `sessions.maxLive` —
|
|
443
|
+
- `sessions.nodeName` — this install's node label. Defaults to the OS hostname, suffixed `-wsl` under WSL.
|
|
444
|
+
- `sessions.tailscaleServe` — expose the web server on the tailnet. Defaults to **true**.
|
|
445
|
+
- `sessions.includeCommittedChanges` — include the commits recorded against the session's backlog item, not just uncommitted work, in its change counts and diff. Defaults to **true**.
|
|
446
|
+
- `sessions.topBar` — show the session's details and actions in a top bar inside the terminal panel instead of on the card. Defaults to **true**.
|
|
447
|
+
- `sessions.floatWaiting` — float sessions waiting on input above the other cards. Defaults to **true**.
|
|
448
|
+
- `sessions.floatWaitingAfterMs` — how long a session must wait on input before it floats. Defaults to **5000**.
|
|
449
|
+
- `sessions.newSessionMode` — the mode pre-selected in the new session dialog: `draft`, `bug`, `prompt` or `design`. Defaults to **draft**.
|
|
450
|
+
- `sessions.maxLive` — the most live sessions one daemon holds at once. Defaults to **24**.
|
|
456
451
|
|
|
457
452
|
### Releases
|
|
458
453
|
|
|
@@ -508,17 +503,13 @@ assist config set next.excludeTypes Epic -g --repo
|
|
|
508
503
|
|
|
509
504
|
Concurrent sessions in one repo can be isolated with native git worktrees instead of keeping multiple physical clones: see [docs/parallel-work.md](docs/parallel-work.md). All of these flags **default off**:
|
|
510
505
|
|
|
511
|
-
- `worktree.enabled` (parallel work) — spill concurrent sessions into adjacent `<clone>-N` worktrees
|
|
512
|
-
- `worktree.watcher` —
|
|
513
|
-
- `worktree.trunk` (trunk-based) —
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
- `worktree.includeDrafts` — give draft, bug and refine sessions their own `<clone>-N`. They change no code, so by default they run in the clone's working copy at no worktree, dep-install or teardown cost.
|
|
518
|
-
|
|
519
|
-
A new worktree installs its deps per `worktree.install` (default `true`, auto-detecting pnpm/yarn/bun/npm at the root). A string is run as the install command instead, `false` skips it, and a list of paths relative to the worktree root — `assist config set worktree.install '[".","packages/ui"]' -g --repo` — runs the auto-detected install in each path in order. The first path that fails or has no `package.json` stops the rest; each outcome lands in `daemon.log`.
|
|
506
|
+
- `worktree.enabled` (parallel work) — spill concurrent sessions into adjacent `<clone>-N` worktrees instead of sharing the clone's working copy.
|
|
507
|
+
- `worktree.watcher` — keep a watcher session in the clone while a backlog run works in a worktree, so the clone stays pulled and rebuilt. Needs `worktree.enabled` and an `auto-build` run entry.
|
|
508
|
+
- `worktree.trunk` (trunk-based) — a worktree's branch tracks `origin/<trunk>` so commits land on the mainline, and jobs that commit (`backlog run`, PR checkouts) always run in a worktree, never the clone. Off, worktrees start off the remote default branch with no mainline tracking.
|
|
509
|
+
- `worktree.includeDrafts` — give draft, bug and refine sessions their own `<clone>-N` instead of the clone's working copy.
|
|
510
|
+
- `worktree.install` — how a new worktree installs its deps: `true` (default) auto-detects pnpm/yarn/bun/npm, a string is the install command, `false` skips it, and a list of paths installs in each in order.
|
|
520
511
|
|
|
521
|
-
Neither flag leaves permanent state on the clone
|
|
512
|
+
Neither flag leaves permanent state on the clone, so turning parallel work back off leaves the repo as it was.
|
|
522
513
|
|
|
523
514
|
## Iterating on assist itself
|
|
524
515
|
|
|
@@ -528,21 +519,21 @@ A restart kills every managed session's pty, which also kills any background tas
|
|
|
528
519
|
|
|
529
520
|
## Other config keys
|
|
530
521
|
|
|
531
|
-
- `harness.codexModel` —
|
|
532
|
-
- `slack.channel` — the Slack channel
|
|
533
|
-
- `prs.slack` — the Slack channel
|
|
534
|
-
- `prs.required` —
|
|
535
|
-
- `prs.promptJira` —
|
|
536
|
-
- `prs.promptGithub` —
|
|
537
|
-
- `prs.draft` —
|
|
538
|
-
- `readTime.wordsPerMinute` —
|
|
539
|
-
- `prs.readingWordsPerMinute` — the
|
|
540
|
-
- `commit.pull` —
|
|
541
|
-
- `commit.expectedBranch` —
|
|
542
|
-
- `branch.prefix` —
|
|
543
|
-
- `branch.defaultBranch` —
|
|
544
|
-
- `releases.streams` — the release promotion streams
|
|
545
|
-
- `cliHook.blockNpmRun` —
|
|
522
|
+
- `harness.codexModel` — LiteLLM model every non-review Codex launch uses. Unset, Codex uses its own configured provider.
|
|
523
|
+
- `slack.channel` — the Slack channel `assist slack post` and `/slack-post` target when given none.
|
|
524
|
+
- `prs.slack` — the Slack channel `/prs-slack` posts pull requests to.
|
|
525
|
+
- `prs.required` — cut a fresh branch when `assist backlog run` starts a story with no recorded branch. Defaults to `true`.
|
|
526
|
+
- `prs.promptJira` — have `assist prs raise --help` ask the user for a Jira key to resolve. Defaults to `false`.
|
|
527
|
+
- `prs.promptGithub` — have `assist prs raise --help` ask the user for a GitHub issue to resolve. Defaults to `false`.
|
|
528
|
+
- `prs.draft` — raise PRs as drafts. Defaults to `false`.
|
|
529
|
+
- `readTime.wordsPerMinute` — the prose reading speed `assist read-time` assumes. Defaults to `200`.
|
|
530
|
+
- `prs.readingWordsPerMinute` — the former name of `readTime.wordsPerMinute`, read only when that is unset.
|
|
531
|
+
- `commit.pull` — fast-forward before `assist draft`, `bug`, `refine`, `next` and `backlog run` start, aborting if that fails. Defaults to off.
|
|
532
|
+
- `commit.expectedBranch` — warn on `assist commit` when HEAD is on any other branch. Unset by default.
|
|
533
|
+
- `branch.prefix` — prefix for branch names from `assist branch`. Unset by default.
|
|
534
|
+
- `branch.defaultBranch` — the base branch for new branches. Defaults to the remote's default branch.
|
|
535
|
+
- `releases.streams` — the release promotion streams the [Releases page](#releases) draws.
|
|
536
|
+
- `cliHook.blockNpmRun` — deny `npm run` in favour of `assist run`. Defaults to `true`.
|
|
546
537
|
|
|
547
538
|
## Acceptance criteria outliner extension
|
|
548
539
|
|