@staff0rd/assist
v0.220.0
Published
A CLI tool for enforcing determinism in LLM development workflow automation.
Readme
assist
A CLI tool for enforcing determinism in LLM development workflow automation.
See devlog for latest features.
Installation
You can install assist globally using npm:
npm install -g @staff0rd/assist
assist syncUpdating
assist updateLocal Development
# Clone the repository
git clone [email protected]:staff0rd/assist.git
cd assist
# Install dependencies
npm install
# Build the project
npm run build
# Install globally
npm install -g .After installation, the assist command will be available globally. You can also use the shorter ast alias.
Claude Commands
/add-command- Add a new run command to assist.yml/bug- File a bug with reproduction steps, expected and actual behavior/comment- Add pending review comments to the current PR/commit- Commit only relevant files from the session/devlog- Generate devlog entry for the next unversioned day/draft- Draft a new backlog item with LLM-assisted questioning/forward-comments- Split a coarse PR comment (e.g. from Slack) into per-line review comments on the current branch's PR, attributed to the original reviewer/pr- Raise a PR with a concise description/refactor- Run refactoring checks for code quality/prompts- Analyze denied tool calls and suggest settings changes to auto-allow recurring prompts/refine- Refine an existing backlog item through conversation/restructure- Analyze and restructure tightly-coupled files/review-comments- Process PR review comments one by one/jira- View a Jira work item/journal- Append a journal entry summarising recent work, decisions, and notable observations/next [id]- Signal completion and chain into the next backlog item; pass anidto run a specific item directly (falls back to the picker if the id is missing, done, won't-do, or blocked)/standup- Summarise recent journal entries as a standup update/sync- Sync commands and settings to ~/.claude/test-cover- Incrementally increase test coverage by identifying and testing uncovered files/test-review- Review existing tests for quality, coverage gaps, and adherence to conventions/inspect- Run .NET code inspections on changed files/screenshot- Capture a screenshot of a running application window/raven- Query and manage RavenDB connections and collections/seq- Query Seq logs from a URL or filter expression/sql- Query a MSSQL database via assist sql/verify- Run all verification commands in parallel/verify-new- Add a new verify:* run command to assist.yml/transcript-format- Format meeting transcripts from VTT files/transcript-summarise- Summarise transcripts missing summaries/voice-setup- Download required voice models (VAD, STT)/voice-start- Start the voice interaction daemon/voice-stop- Stop the voice interaction daemon/voice-status- Check voice daemon status/voice-logs- Show recent voice daemon logs
CLI Commands
assist activity [--since <date>]- Chart GitHub commit activity per day (defaults to last 30 days)assist init- Initialize project with VS Code and verify configurationsassist new vite- Initialize a new Vite React TypeScript projectassist new cli- Initialize a new tsup CLI projectassist sync- Copy command files to~/.claude/commandsassist commit status- Show git status and diffassist commit <message>- Commit staged changes with validationassist commit <message> [files...]- Stage files and create a git commit with validationassist prs- List pull requests for the current repositoryassist prs list-comments- List all comments on the current branch's pull requestassist prs fixed <comment-id> <sha>- Reply with commit link and resolve threadassist prs wontfix <comment-id> <reason>- Reply with reason and resolve threadassist prs comment <path> <line> <body>- Add a line comment to the pending reviewassist review [sha] [--no-prompt] [--submit] [--force] [--refine] [--apply] [--verbose]- Run Claude and Codex in parallel to review the open PR for the current branch. The diff is fetched from GitHub (base SHA → head SHA viagh pr diff), so stale local base branches don't pollute the review; fails fast if no PR is open. By default, prompts before posting line-bound comments and then prompts again to submit the pending review (defaulting to no). Cachedclaude.md/codex.md/synthesis.mdare reused when present; if any reviewer is re-run, the synthesis is invalidated.--no-promptskips all confirmations.--submitdefaults the submit prompt to yes (or auto-submits when combined with--no-prompt).--forceclears all cached files and re-runs every phase.--refineskips posting and instead launches an interactive Claude session that walks throughsynthesis.mdand edits it in place; a subsequentassist review(no flag) reuses the refined file and posts only the surviving findings.--applyskips posting and instead launches an interactive Claude session that walks through each remaining finding asking apply/skip; applied findings have their code fix made in the working tree (unstaged) and are removed fromsynthesis.md, while skipped findings stay so a subsequentassist reviewposts them.--applycannot be combined with--refine.--verbosedisables the stacked-spinner UI and falls back to per-line log output (per-tool lines, starting/done lines); non-TTY environments (CI) automatically fall back to verbose-style output. Pass a commit<sha>to review that commit's diff (sha^..sha) instead; the review files land under.assist/reviews/<shortSha>/, no GitHub lookup or posting happens, and--refine/--apply/--submitare rejected.assist news- Start the news web UI showing latest RSS feed items (same asnews web)assist news add [url]- Add an RSS feed URL to the configassist news web [-p, --port <number>]- Start a web view of the news feeds (default port 3001)assist backlog [--dir <path>]- Open the backlog tab in the web dashboard (same asbacklog web).--diroverrides the directory for backlog file discoveryassist backlog init- Create an empty backlogassist backlog list [--status <type>] [-v]- List all backlog items with status iconsassist backlog add- Add a new backlog item interactively (prompts for type: story/bug)assist backlog add --name <n> --type <t> --desc <d> --ac <criterion...>- Add a backlog item from CLI options (used by/draft)assist backlog add-phase <id> <name> --task <t...> [--manual-check <c...>] [--position <pos>]- Add a phase (appends by default;--positioninserts at a 1-indexed position)assist backlog update <id> [--name <n>] [--desc <d>] [--type <t>] [--ac <criterion...>]- Update fields on a backlog itemassist backlog update-phase <id> <phase> [--name <n>] [--task <t...>] [--manual-check <c...>]- Modify a plan phase (name, tasks, or manual checks)assist backlog remove-phase <id> <phase>- Remove a plan phase from a backlog itemassist backlog next- Pick and run the next backlog item, or open/draftif none remainassist backlog start <id>- Set a backlog item to in-progressassist backlog stop- Revert all in-progress backlog items to todo and reset their phase to 1assist backlog done <id>- Set a backlog item to doneassist backlog wontdo <id> [reason]- Set a backlog item to won't doassist backlog delete <id>- Delete a backlog itemassist backlog show <id>- Display full detail for a backlog item (alias:view)assist backlog plan <id>- Display the phased plan for a backlog itemassist backlog comment <id> <text>- Add a comment to a backlog itemassist backlog comments <id>- List comments and summaries for a backlog itemassist backlog delete-comment <id> <comment-id>- Delete a comment from a backlog item (summaries cannot be deleted)assist backlog phase-done <id> <phase> <summary>- Signal that a plan phase is complete with a summary (used by orchestrator)assist backlog rewind <id> <phase> --reason <reason>- Rewind a backlog item to an earlier phase, setting status to in-progressassist backlog run <id>- Run a backlog item's plan phase-by-phase with Claudeassist backlog web [-p, --port <number>]- Open the backlog tab in the web dashboard (default port 3100)assist roam auth- Authenticate with Roam via OAuth (opens browser, saves tokens to ~/.assist.yml)assist roam show-claude-code-icon- Forward Claude Code hook activity to Roam local APIassist run <name> [params...]- Run a configured command from assist.yml (positional params are matched toparamsconfig; supportsprearray of commands to run first)assist run add- Add a new run configuration to assist.yml and create a Claude command fileassist run link <path> --prefix <prefix>- Link run configurations from another project's assist.ymlassist run remove <name>- Remove a run configuration from assist.yml and delete its Claude command fileassist config set <key> <value>- Set a config value (e.g. commit.push true)assist config get <key>- Get a config valueassist config list- List all config valuesassist verify- Run all verify:* commands in parallel (from run configs in assist.yml and scripts in package.json)assist verify all- Run all checks, ignoring diff-based filtersassist verify init- Add verify scripts to a project (writes toassist.ymlby default; pass--package-jsonto write topackage.jsonscripts instead)assist verify hardcoded-colors- Check for hardcoded hex colors in src/ (supportshardcodedColors.ignoreglobs in config)assist lint [-f, --fix]- Run lint checks for conventions not enforced by biomejs (use-fto auto-fix)assist lint init- Initialize Biome with standard linter configassist refactor check [pattern]- Check for files that exceed the maximum line countassist refactor ignore <file>- Add a file to the refactor ignore listassist refactor rename file <source> <destination>- Rename/move a TypeScript file and update all imports (dry-run by default, use--applyto execute)assist refactor rename symbol <file> <oldName> <newName>- Rename a variable, function, class, or type across the project (dry-run by default, use--applyto execute)assist refactor extract <file> <functionName> <destination>- Extract a function and its private dependencies to a new file (dry-run by default, use--applyto execute)assist refactor restructure [pattern]- Analyze import graph and restructure tightly-coupled files into nested directoriesassist devlog list- Group git commits by dateassist devlog next- Show commits for the day after the last versioned entryassist devlog repos- Show which github.com/staff0rd repos are missing devlog entriesassist devlog skip <date>- Add a date to the skip listassist devlog version- Show current repo name and version infoassist cli-hook- PreToolUse hook for auto-approving CLI commands (reads fromallowed.cli-readsandallowed.cli-writes, also auto-approves read-onlygh apicalls). Supports compound commands (|,&&,||,;) by checking each sub-command independentlyassist cli-hook add <cli>- Discover a CLI's commands and auto-permit read-only onesassist cli-hook check <command> [--tool <tool>]- Check whether a command would be auto-approved bycli-hook(tool defaults toBash)assist cli-hook deny- List all deny rulesassist cli-hook deny add <pattern> <message>- Add a deny rule for a command patternassist cli-hook deny remove <pattern>- Remove a deny rule by patternassist update- Update assist to the latest version and sync commandsassist vscode init- Add VS Code configuration filesassist deploy init- Initialize Netlify project and configure deploymentassist deploy redirect- Add trailing slash redirect script to index.htmlassist notify- Show desktop notification from JSON stdin (supports macOS, Windows, WSL)assist status-line- Format Claude Code status line from JSON stdinassist dotnet inspect [sln]- Run JetBrains inspections on changed .cs files to find dead codeassist dotnet inspect [sln] --scope all- Inspect the full solutionassist dotnet inspect [sln] --scope base:<ref>- Inspect all .cs files changed since diverging from a base ref (e.g.--scope base:mainfor a full PR)assist dotnet inspect [sln] --scope commit:<ref>- Inspect .cs files changed in a specific commitassist dotnet inspect [sln] --only <ids...>- Show only the specified issue type IDs (e.g.--only CommentedCode)assist dotnet inspect [sln] --suppress <ids...>- Suppress specific issue type IDs on the command lineassist dotnet inspect [sln] --roslyn- Use Roslyn analyzers via msbuild instead of JetBrainsassist dotnet inspect [sln] --swea- Enable solution-wide error analysis (slower but more thorough)assist dotnet check-locks- Check if build output files are locked by a debuggerassist dotnet deps <csproj>- Show .csproj project dependency tree and solution membershipassist dotnet in-sln <csproj>- Check whether a .csproj is referenced by any .sln fileassist jira auth- Authenticate with Jira via API token (saves site/email to ~/.assist/jira.json)assist jira ac <issue-key>- Print acceptance criteria for a Jira issueassist jira view <issue-key>- Print the title and description of a Jira issueassist ravendb auth add- Add a new RavenDB connection (prompts for name, URL, database, op:// secret reference)assist ravendb auth list- List configured RavenDB connectionsassist ravendb auth remove <name>- Remove a configured connectionassist ravendb set-connection <name>- Set the default connection for query/collections commandsassist ravendb query [connection] [collection]- Query a RavenDB collection (outputs JSON to stdout)assist ravendb query [connection] [collection] --page-size <n> --sort <field> --query <lucene> --limit <n>- Query with optionsassist ravendb collections [connection]- List collections and document counts in a databaseassist seq auth add- Add a new Seq connection (prompts for name, URL, API token)assist seq auth list- List configured Seq connectionsassist seq auth remove <name>- Remove a configured connectionassist seq set-connection <name>- Set the default Seq connectionassist seq query <filter>- Query Seq events with a filter expressionassist seq query <filter> -c <connection>- Query using a specific connectionassist seq query <filter> --json- Output raw JSONassist seq query <filter> -n <count>- Fetch a specific number of events (default 50)assist seq query <filter> --from <date>- Start of query window (UTC date or relative e.g. 5m, 1h, 2d)assist seq query <filter> --to <date>- End of query window (UTC date or relative e.g. 5m, 1h, 2d)assist sql auth add- Add a new MSSQL connection (prompts for name, server, port, user, password, database)assist sql auth list- List configured SQL connectionsassist sql auth remove <name>- Remove a configured connectionassist sql set-connection <name>- Set the default SQL connectionassist sql query "<sql>" [connection]- Execute a read-only SQL statement and print results in table format (rejects INSERT/UPDATE/DELETE/DROP/CREATE/ALTER/TRUNCATE/MERGE/GRANT/REVOKE/EXEC)assist sql mutate "<sql>" [connection]- Execute a mutating SQL statement and print rows affected (rejects non-mutating statements like pure SELECTs)assist sql tables [connection]- List tables in the connected database (via INFORMATION_SCHEMA.TABLES)assist sql columns <table> [connection]- List columns for a table (useschema.tablefor non-default schema; via INFORMATION_SCHEMA.COLUMNS)assist screenshot <process>- Capture a screenshot of a running application window (e.g.assist screenshot notepad). Output directory is configurable viascreenshot.outputDir(default./screenshots)assist mermaid export [file.md]- Render each fenced mermaid block to<stem>-<index>.svgvia Kroki. With no file, scans*.mdin the current directory (non-recursive). Use--out <dir>to override the output directory. Use--index <n>to render only the nth mermaid block (1-based; requires a file argument). Endpoint is configurable viamermaid.krokiUrl(defaulthttps://kroki.io).assist prompts- Show top 10 denied tool calls by frequency with count and repo breakdownassist coverage- Print global statement coverage percentageassist complexity <pattern>- Analyze a file (all metrics if single match, maintainability if multiple)assist complexity cyclomatic [pattern]- Calculate cyclomatic complexity per functionassist complexity halstead [pattern]- Calculate Halstead metrics per functionassist complexity maintainability [pattern]- Calculate maintainability index per fileassist complexity sloc [pattern]- Count source lines of code per fileassist transcript configure- Configure transcript directoriesassist transcript format- Convert VTT files to formatted markdown transcriptsassist transcript summarise- List transcripts that do not have summariesassist voice setup- Download required voice models (VAD, STT)assist voice start- Start the voice daemon (always-on, listens for wake word)assist voice start --foreground- Start in foreground for debuggingassist voice stop- Stop the voice daemonassist voice status- Check voice daemon status and recent eventsassist voice devices- List available audio input devicesassist voice logs [-n <count>]- Show recent voice daemon log entriesassist sessions- Start the web dashboard (same assessions web)assist sessions web [-p, --port <number>]- Start the web dashboard with Sessions and Backlog tabs, xterm.js terminals (default port 3100)assist sessions summarise [-f, --force] [-n, --limit <count>]- Generate one-line summaries for unsummarised Claude sessions (force re-generates all; limit caps how many to process)assist next- Alias forbacklog next -wassist draft(alias:feat) - Launch Claude in/draftmode, chain into next on/nextsignalassist bug- Launch Claude in/bugmode, chain into next on/nextsignalassist refine [id]- Launch Claude in/refinemode to refine a backlog item; prompts for selection when no id givenassist signal next [id]- Write a next signal to chain intoassist next; whenidis supplied, the parent launcher runs that backlog item directly
