AI Skill Hub 推荐使用:AI工作流助手 是一款优质的Agent工作流。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的Agent工作流解决方案,这是一个值得深入了解的选择。
AI工作流助手 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
AI工作流助手 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:npm 全局安装 npm install -g assist # 方式二:npx 直接运行(无需安装) npx assist --help # 方式三:项目依赖安装 npm install assist # 方式四:从源码运行 git clone https://github.com/staff0rd/assist cd assist npm install npm start
# 命令行使用
assist --help
# 基本用法
assist [options] <input>
# Node.js 代码中使用
const assist = require('assist');
const result = await assist.run(options);
console.log(result);
# assist 配置说明 # 查看配置选项 assist --config-example > config.yml # 常见配置项 # output_dir: ./output # log_level: info # workers: 4 # 环境变量(覆盖配置文件) export ASSIST_CONFIG="/path/to/config.yml"
A CLI tool for enforcing determinism in LLM development workflow automation.
See devlog for latest features.
npm install
You can install assist globally using npm:
npm install -g @staff0rd/assist
assist sync
npm run build
npm install -g . ```
After installation, the assist command will be available globally. You can also use the shorter ast alias.
- assist activity [--since <date>] - Chart GitHub commit activity per day (defaults to last 30 days) - assist init - Initialize project with VS Code and verify configurations - assist new vite - Initialize a new Vite React TypeScript project - assist new cli - Initialize a new tsup CLI project - assist sync - Copy command files to ~/.claude/commands - assist commit status - Show git status and diff - assist commit <message> - Commit staged changes with validation - assist commit <message> [files...] - Stage files and create a git commit with validation - assist prs - List pull requests for the current repository - assist prs create --title <title> --body <body> - Create a pull request via gh pr create - assist prs list-comments - List all comments on the current branch's pull request - assist prs fixed <comment-id> <sha> - Reply with commit link and resolve thread - assist prs wontfix <comment-id> <reason> - Reply with reason and resolve thread - assist prs comment <path> <line> <body> - Add a line comment to the pending review - assist review [number] [options] - 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 via gh 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). Findings whose lines fall outside the diff are skipped with a warning rather than being silently dropped by GitHub. Cached claude.md / codex.md / synthesis.md are reused when present; if any reviewer is re-run, the synthesis is invalidated. - [number] - Run gh pr checkout <number> first, then review that PR's branch. If the checkout fails (dirty working tree, unknown PR number), the review aborts - --no-prompt - Skip all confirmations - --submit - Default the submit prompt to yes (or auto-submit when combined with --no-prompt) - --force - Clear all cached files and re-run every phase - --refine - Skip posting; launch an interactive Claude session that walks through synthesis.md and edits it in place. A subsequent assist review reuses the refined file and posts only the surviving findings - --apply - Skip posting; launch an interactive Claude session that walks through each finding asking apply/skip. Applied findings are fixed in the working tree (unstaged) and removed from synthesis.md; skipped findings stay so a subsequent assist review posts them. Cannot be combined with --refine - --backlog - Skip posting; launch an interactive Claude session running /bug that files all findings (including already-raised) as a single bug backlog item with one phase per finding. synthesis.md is left untouched; --submit is ignored. Cannot be combined with --refine or --apply - --verbose - Disable the stacked-spinner UI and fall back to per-line log output. Non-TTY environments (CI) automatically use this mode - assist github commits <org> - Report commit activity across a GitHub organisation over the last 30 days: repos ranked by commits to their default branch, top committers, and a per-repo author breakdown (empty repos are skipped; commits with no linked GitHub account fall back to the raw author name) - --since <date> - Start of the window as YYYY-MM-DD instead of the default 30 days ago - --top <n> - Only report the top n repos by commit count; committers and the author breakdown then cover those repos only (also caps the per-repo author queries, which speeds up large orgs) - --json - Output all three views as structured JSON instead of tables - assist news - Start the news web UI showing latest RSS feed items (same as news web) - assist news add [url] - Add an RSS feed URL to the config - assist news web [-p, --port <number>] - Start a web view of the news feeds (default port 3001) 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_BACKLOG_DATABASE_URL environment variable or the backlog.databaseUrl key in assist.yml; the environment variable takes precedence. Without one, every assist backlog command exits with a setup message. (There is no SQLite/JSONL fallback.) Commands default to the current repository's items; pass --all-repos to span every repository.
The first backlog command in a repository that still has a local .assist/backlog.jsonl automatically migrates it into Postgres — but only as a one-time bootstrap into an empty origin. If Postgres has no items for the repo's origin yet, it runs git pull (best-effort) to fetch the latest committed copy, imports every item under the origin with fresh global IDs (rewriting links to other items), and verifies the result. If Postgres already has items for that origin (a prior run, another clone, or a pre-seeded database), the import is skipped to avoid creating duplicates. Either way the local .assist/backlog.jsonl and .assist/backlog.db are renamed to *.bak, so the migration never re-runs and a local copy is retained.
assist backlog [--dir <path>] - Open the backlog tab in the web dashboard (same as backlog web). --dir overrides the directory used to resolve the current repository's git originassist backlog init - Create an empty backlogassist backlog list [--status <type>] [-a, --all] [--all-repos] [-v] - List backlog items with status icons (alias: ls). Defaults to the current repository's todo/in-progress items; --all includes done/wontdo, --all-repos lists items across all repositories. Also available as the top-level shortcut assist list / assist ls with the same flagsassist 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; --position inserts at a 1-indexed position)assist backlog update-field <id> [--name <n>] [--desc <d>] [--type <t>] [--ac <criterion...>] - Update fields on a backlog itemassist backlog update-field <id> [--add-ac <text>] [--edit-ac <n> <text>] [--remove-ac <n>] - Granular acceptance-criteria edits using 1-based indices matching backlog show: --add-ac appends (repeatable), --edit-ac replaces criterion n in place, --remove-ac deletes criterion n and renumbers the rest (cannot be combined with the whole-list --ac)assist backlog update-phase <id> <phase> [--name <n>] [--task <t...>] [--manual-check <c...>] - Modify a plan phase (name, tasks, or manual checks)assist backlog update-phase <id> <phase> [--add-task <text>] [--edit-task <n> <text>] [--remove-task <n>] [--add-check <text>] [--edit-check <n> <text>] [--remove-check <n>] - Granular task and manual-check edits using 1-based indices matching backlog show: --add-* appends (repeatable), --edit-* replaces entry n in place, --remove-* deletes entry n and renumbers the rest (task ops cannot be combined with --task; check ops cannot be combined with --manual-check)assist backlog remove-phase <id> <phase> - Remove a plan phase from a backlog itemassist backlog next [id] [--once] - Pick and run the next backlog item, or open /draft if none remain; pass an id to run that item first, then continue chaining; --once exits after the first completed item run instead of prompting for anotherassist backlog refine [id] [--once] - Alias for refineassist 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 Claude; --resume-session <id> resumes an interrupted Claude session for the current phase (used by the sessions daemon when it restarts a running item)assist backlog export [file] - Export the entire backlog database (all tables, all repos) to a file, or stdout if omittedassist backlog import [file] - Restore the entire backlog database from a dump (file or stdin), faithfully replacing all data; prompts for confirmation (use -y, --yes to skip; required when reading from stdin)assist backlog move-repo <old-origin> [new-origin] - Retag all items from one origin to another after a repo rename; the new origin defaults to the current repo's remote, both accept URL or git@ forms, and a bare repo name works for the old origin when unambiguous. Prompts for confirmation (use -y, --yes to skip)assist backlog web [-p, --port <number>] [--no-open] - Open the backlog tab in the web dashboard (default port 3100); --no-open skips opening a browser on startupassist 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 to params config; supports pre array of commands to run first). If <name> is purely numeric and matches no configured command, it is treated as an alias for assist backlog run <name> and forwards --write/--no-write/-w.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 to assist.yml by default; pass --package-json to write to package.json scripts instead)assist verify hardcoded-colors - Check for hardcoded hex colors in src/ (supports hardcodedColors.ignore globs in config)assist verify comment-policy - Flag comments added on changed lines (staged + unstaged) unless they carry a justification marker; supports commentPolicy.markers and commentPolicy.ignore globs in configassist lint [-f, --fix] - Run lint checks for conventions not enforced by biomejs (use -f to 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 --apply to execute)assist refactor rename symbol <file> <oldName> <newName> - Rename a variable, function, class, or type across the project (dry-run by default, use --apply to execute)assist refactor extract <file> <functionName> <destination> - Extract a function and its private dependencies to a new file (dry-run by default, use --apply to 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 from allowed.cli-reads and allowed.cli-writes, also auto-approves read-only gh api calls). Supports compound commands (|, &&, ||, ;) by checking each sub-command independently.assist 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 by cli-hook (tool defaults to Bash)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:main for 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 issuemcp__claude_ai_Atlassian__getJiraIssue) for fetching Jira context, so the /jira slash command and Jira-key mentions go through MCP. These assist jira CLI commands remain for direct human use.assist 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 (use schema.table for 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 via screenshot.outputDir (default ./screenshots)assist handover archive [--suffix <s>] - Archive the current .assist/HANDOVER.md to .assist/handovers/archive/<ISO-ts>[-<suffix>].md. Prints the archive path; no-op when no handover existsassist handover summarise <jsonl> - Print a one-line summary of a session JSONL via claude -p --model haiku. Filters sdk-cli-only transcripts and sets a recursion-guard env var so the inner SessionStart hook short-circuitsassist handover load - SessionStart hook entry point: reads {cwd, session_id} from stdin, and only when .assist/HANDOVER.md exists archives it and emits { hookSpecificOutput: { hookEventName: "SessionStart", additionalContext }, systemMessage }. Emits nothing when no handover exists (use /recall to pull prior-session context on demand). Honors _CLAUDE_HOOK_SUMMARISE_RUNNING so nested invocations short-circuit silentlyassist mermaid export [file.md] - Render each fenced mermaid block to <stem>-<index>.svg via Kroki. With no file, scans *.md in 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 via mermaid.krokiUrl (default https://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 file (--ignore <glob>, repeatable, excludes extra files on top of complexity.ignore)assist 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 as sessions web)assist sessions web [-p, --port <number>] [--no-open] - Start the web dashboard with Sessions and Backlog tabs, xterm.js terminals with clickable http(s) links (default port 3100); --no-open skips opening a browser on startup; press Ctrl+R in the foreground terminal for an in-terminal restart menu (Restart daemon, Restart webserver, Restart both); Restart webserver re-execs the foreground process (passing --no-open so no browser pops on restart) so the connected browser auto-reconnectsassist 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 daemon run - Run the sessions daemon in the foreground (normally auto-spawned detached by assist sessions)assist daemon status - Show sessions daemon status, live sessions, and any stray daemon processes or stolen socketassist daemon stop - Stop the sessions daemon; running claude sessions resume on next startassist daemon restart - Restart the sessions daemon, resuming previously running claude sessionsWeb sessions are owned by a long-lived daemon process, not the web server: the server is a thin client that relays WebSocket traffic to the daemon over a local IPC socket (unix domain socket at ~/.assist/daemon/daemon.sock; named pipe \\.\pipe\assist-sessions-daemon on Windows). Restarting the web server leaves sessions running with scrollback intact. The daemon logs to ~/.assist/daemon/daemon.log (timestamped lines tagged with the daemon's pid, including why it spawned and which sessions it restored) and auto-exits once no sessions remain and no client has been connected for 60 seconds (it is respawned on demand by the web server). Daemon spawning is arbitrated by an O_EXCL lockfile so racing clients start at most one daemon; sessions are only restored after the daemon owns the IPC socket, and a daemon that loses ownership of daemon.pid shuts down its sessions and exits rather than running orphaned.
When iterating on assist itself: web server changes only need the assist sessions process restarted — sessions survive. Daemon/session-core changes need assist daemon restart to load the new code; this kills the PTYs, then claude sessions — including assist sessions that wrap claude, like assist draft — are auto-respawned via claude --resume with scrollback starting fresh, while run sessions (and assist sessions whose claude sessionId was never discovered) reappear as not-restored tiles that can be retried. - assist next [id] [--once] - Alias for backlog next [id]; --once exits after the first completed item run instead of prompting for another - assist draft [description] [--once] (alias: feat) - Launch Claude in /draft mode, chain into next on /next signal; an optional description is forwarded as /draft <description>; --once exits when the done signal arrives after the initial draft completes - assist bug [description] [--once] - Launch Claude in /bug mode, chain into next on /next signal; an optional description is forwarded as /bug <description>; --once exits when the done signal arrives after the initial bug report completes - assist refine [id] [--once] - Launch Claude in /refine mode to refine a backlog item; prompts for selection when no id given; --once exits when the done signal arrives after refinement completes - assist review-comments [number] - Launch Claude in /review-comments mode to process PR review comments (single session, no chaining); when a PR number is supplied, checks out that PR via gh pr checkout first - assist signal next [id] - Write a next signal to chain into assist next; when id is supplied, the parent launcher runs that backlog item directly - assist signal done [id] - Write a done signal marking the session's initial task complete; an optional id surfaces the backlog item the session created onto its session card; --once launch sessions exit when it arrives, plain sessions ignore it
When commit.pull is enabled in config, assist draft, assist bug, assist refine, assist next, and assist backlog run run git pull --ff-only before doing anything else; if the pull fails the command aborts. assist next pulls once per invocation, not per item in its loop.
assist是一个有用的LLM开发工作流自动化工具
该工具未明确声明开源协议,商业使用前请联系原作者确认授权范围,避免侵权风险。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
总体来看,AI工作流助手 是一款质量良好的Agent工作流,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | assist |
| 原始描述 | 开源AI工作流:A CLI tool for enforcing determinism in LLM development workflow automation.。⭐6 · TypeScript |
| Topics | LLM工作流自动化 |
| GitHub | https://github.com/staff0rd/assist |
| 语言 | TypeScript |
收录时间:2026-06-09 · 更新时间:2026-06-09 · License:未公布 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端