CLI 参考
AACWorkflow CLI 和智能体守护进程的完整命令参考。
aacworkflow CLI 把你的本机连接到 AACWorkflow。它处理认证、工作区管理、issue 追踪,并运行在你本地执行 AI 任务的智能体守护进程。
认证
浏览器登录
aacworkflow login打开浏览器进行 OAuth 认证,创建 90 天个人访问令牌,自动配置你的工作区。
令牌登录
aacworkflow login --token <mul_...>使用个人访问令牌直接认证。对无人值守环境有用。传 --token= 空值来交互式输入(令牌不会进入 shell 历史)。
检查状态
aacworkflow auth status显示当前服务器、用户和令牌有效性。
登出
aacworkflow auth logout删除保存的认证令牌。
智能体守护进程
守护进程是本地智能体运行时。它检测你机器上可用的 AI CLI,向 AACWorkflow 服务器注册它们,在智能体被分配工作时执行任务。
启动
aacworkflow daemon start默认后台运行,日志输出到 ~/.aacworkflow/daemon.log。
前台运行(对调试有用):
aacworkflow daemon start --foreground停止
aacworkflow daemon stop状态
aacworkflow daemon status
aacworkflow daemon status --output json显示 PID、运行时间、检测到的智能体和监看的工作区。
日志
aacworkflow daemon logs # 最后 50 行
aacworkflow daemon logs -f # 跟踪 (tail -f)
aacworkflow daemon logs -n 100 # 最后 100 行支持的智能体
守护进程自动检测你 PATH 中的这些 AI CLI:
| CLI | 命令 | 描述 |
|---|---|---|
| Antigravity | agy | Google 的编程智能体 |
| Claude Code | claude | Anthropic 的编程智能体 |
| CodeBuddy | codebuddy | Tencent 的编程智能体 |
| Codex | codex | OpenAI 的编程智能体 |
| Copilot | copilot | GitHub 的编程智能体 |
| Cursor Agent | cursor-agent | Cursor 编程智能体 |
| Hermes | hermes | Nous Research 编程智能体 |
| Kimi | kimi | Moonshot 编程智能体 |
| Kiro CLI | kiro-cli | Kiro ACP 编程智能体 |
| OpenCode | opencode | 商业编程智能体 |
| OpenClaw | openclaw | 商业编程智能体 |
| Pi | pi | Inflection 编程智能体 |
| Qoder | qodercli | Alibaba 的编程智能体 |
| Trae | traecli | ByteDance 的编程智能体 |
至少需要一个。守护进程把每个检测到的 CLI 注册为可用运行时。
工作原理
- 启动时,守护进程检测已安装的 AI CLI,为每个监看工作区的每个智能体注册一个运行时
- 以可配置间隔(默认 30 秒)轮询服务器以获取分配的任务
- 任务到达时,创建隔离工作目录、启动智能体 CLI、流式传输结果回传
- 定期发送心跳(默认 15 秒)让服务器知道守护进程活着
- 关闭时,注销所有运行时
配置
守护进程行为通过 flag 或环境变量配置:
| Setting | Flag | Env Variable | Default |
|---|---|---|---|
| Poll interval | --poll-interval | AACWORKFLOW_DAEMON_POLL_INTERVAL | 30s |
| Heartbeat interval | --heartbeat-interval | AACWORKFLOW_DAEMON_HEARTBEAT_INTERVAL | 15s |
| Agent timeout | --agent-timeout | AACWORKFLOW_AGENT_TIMEOUT | 0(不限制,由看门狗兜底) |
| Codex app-server handshake timeout | --codex-handshake-timeout | AACWORKFLOW_CODEX_HANDSHAKE_TIMEOUT | 30s |
| Max concurrent tasks | --max-concurrent-tasks | AACWORKFLOW_DAEMON_MAX_CONCURRENT_TASKS | 20 |
| Daemon ID | --daemon-id | AACWORKFLOW_DAEMON_ID | hostname |
| Device name | --device-name | AACWORKFLOW_DAEMON_DEVICE_NAME | hostname |
| Runtime name | --runtime-name | AACWORKFLOW_AGENT_RUNTIME_NAME | Local Agent |
| Workspaces root | — | AACWORKFLOW_WORKSPACES_ROOT | ~/aacworkflow_workspaces |
智能体特定覆盖:
| 变量 | 描述 |
|---|---|
AACWORKFLOW_CLAUDE_PATH | claude 二进制的自定义路径 |
AACWORKFLOW_CLAUDE_MODEL | 覆盖使用的 Claude 模型 |
AACWORKFLOW_CODEX_PATH | codex 二进制的自定义路径 |
AACWORKFLOW_CODEX_MODEL | 覆盖使用的 Codex 模型 |
AACWORKFLOW_OPENCODE_PATH | opencode 二进制的自定义路径 |
AACWORKFLOW_OPENCODE_MODEL | 覆盖使用的 OpenCode 模型 |
AACWORKFLOW_OPENCLAW_PATH | openclaw 二进制的自定义路径 |
AACWORKFLOW_OPENCLAW_MODEL | 覆盖使用的 OpenClaw 模型 |
AACWORKFLOW_HERMES_PATH | hermes 二进制的自定义路径 |
AACWORKFLOW_HERMES_MODEL | 覆盖使用的 Hermes 模型 |
AACWORKFLOW_PI_PATH | pi 二进制的自定义路径 |
AACWORKFLOW_PI_MODEL | 覆盖使用的 Pi 模型 |
AACWORKFLOW_CURSOR_PATH | cursor-agent 二进制的自定义路径 |
AACWORKFLOW_CURSOR_MODEL | 覆盖使用的 Cursor 模型 |
AACWORKFLOW_KIMI_PATH | kimi 二进制的自定义路径 |
AACWORKFLOW_KIMI_MODEL | 覆盖使用的 Kimi 模型 |
AACWORKFLOW_KIRO_PATH | kiro-cli 二进制的自定义路径 |
AACWORKFLOW_KIRO_MODEL | 覆盖使用的 Kiro 模型 |
AACWORKFLOW_COPILOT_PATH | copilot 二进制的自定义路径 |
AACWORKFLOW_COPILOT_MODEL | 覆盖使用的 Copilot 模型 |
AACWORKFLOW_CODEBUDDY_PATH | codebuddy 二进制的自定义路径 |
AACWORKFLOW_CODEBUDDY_MODEL | 覆盖使用的 CodeBuddy 模型 |
AACWORKFLOW_ANTIGRAVITY_PATH | agy 二进制的自定义路径 |
AACWORKFLOW_ANTIGRAVITY_MODEL | 覆盖使用的 Antigravity 模型 |
AACWORKFLOW_QODER_PATH | qodercli 二进制的自定义路径 |
AACWORKFLOW_QODER_MODEL | 覆盖使用的 Qoder 模型 |
AACWORKFLOW_TRAECLI_PATH | traecli 二进制的自定义路径 |
AACWORKFLOW_TRAECLI_MODEL | 覆盖使用的 Trae 模型 |
配置文件
配置文件让你在同一台机器上运行多个守护进程——比如一个用于生产,一个用于 staging。
# 设置 staging 配置文件
aacworkflow setup --profile staging
# 启动其守护进程
aacworkflow daemon start --profile staging
# 默认配置文件单独运行
aacworkflow daemon start每个配置文件得到自己的配置目录(~/.aacworkflow/profiles/<name>/)、守护进程状态、健康端口和工作区根。
工作区
列表工作区
aacworkflow workspace list监看的工作区用 * 标记。守护进程只处理监看工作区的任务。
监看 / 取消监看
aacworkflow workspace watch <workspace-id>
aacworkflow workspace unwatch <workspace-id>获取详情
aacworkflow workspace get <workspace-id>
aacworkflow workspace get <workspace-id> --output json列表成员
aacworkflow workspace member list <workspace-id>邀请成员
按邮箱邀请成员加入 workspace。被邀请人会收到一条待接受(pending)的邀请,接受后才真正加入——不是即时添加。workspace 参数可选,接受完整 UUID、slug 或短 UUID 前缀(≥4 位十六进制),省略时用当前默认 workspace(--workspace-id / AACWORKFLOW_WORKSPACE_ID / profile 默认)。
aacworkflow workspace member invite alice@example.com
aacworkflow workspace member invite alice@example.com <workspace-id> --role admin
aacworkflow workspace member invite alice@example.com --output json--role 默认 member,可传 admin;不允许邀请 owner。目前只支持邮箱标识(不做用户名/工号解析)。若该邮箱已是成员或已有待接受邀请,服务端返回 409 并给出对应提示。
更新工作区
需要 admin 或 owner 权限。所有字段都是部分更新(PATCH 语义):未传的字段保持不变。
aacworkflow workspace update <workspace-id> --name "Acme Eng"
aacworkflow workspace update <workspace-id> \
--description "Engineering team workspace" \
--issue-prefix ENG长文本走 stdin(保留换行/反斜杠):
cat <<'CTX' | aacworkflow workspace update <workspace-id> --context-stdin
我们是一支 5 人 AI-native 团队。
工作语言:中文 + 英文混合。
CTX可编辑字段:--name、--description / --description-stdin、--context / --context-stdin、--issue-prefix。slug 创建后只读,不暴露在 CLI。--description 与 --description-stdin(以及 context 同名对)互斥。未传任何字段 flag 时命令拒绝执行,避免空 PATCH 触发无意义的 workspace 更新事件。--issue-prefix "" 也会被拒绝:当前后端在 prefix 为空时静默跳过该字段,CLI 在本地拦下避免"看似成功的 no-op"。
Issue
列表 Issue
aacworkflow issue list
aacworkflow issue list --status in_progress
aacworkflow issue list --priority urgent --assignee "Agent Name"
aacworkflow issue list --assignee-id 5fb87ac7-23b5-4a7a-81fa-ed295a54545d
aacworkflow issue list --full-id
aacworkflow issue list --limit 20 --output json表格输出默认显示可直接复制到后续命令的 issue KEY(例如 AAC-123);需要完整 UUID 时使用 --full-id。可用过滤:--status、--priority、--assignee / --assignee-id、--project、--limit。在重名 workspace 下用 --assignee-id <uuid> 可以精确锁定一个成员或 agent。
获取 Issue
aacworkflow issue get AAC-123
aacworkflow issue get <uuid>
aacworkflow issue get <id> --output json<id> 同时接受 issue key(aacworkflow issue list 表格里直接显示,例如 AAC-123)和完整 UUID(给 list 加 --full-id 可显示)。同样的规则适用于下面 update / assign / status / comment / subscriber / runs 等接受 <id> 的命令。
创建 Issue
aacworkflow issue create --title "Fix login bug" --description "..." --priority high --assignee "Lambda"
aacworkflow issue create --title "Fix login bug" --assignee-id 5fb87ac7-23b5-4a7a-81fa-ed295a54545dFlags:--title(必需)、--description、--status、--priority、--assignee / --assignee-id、--parent、--project、--due-date。脚本里如果已经拿到了 UUID(例如来自 aacworkflow workspace member list --output json),传 --assignee-id <uuid>(与 --assignee 互斥)以精确锁定。
更新 Issue
aacworkflow issue update <id> --title "New title" --priority urgent分配 Issue
aacworkflow issue assign <id> --to "Lambda"
aacworkflow issue assign <id> --to-id 5fb87ac7-23b5-4a7a-81fa-ed295a54545d
aacworkflow issue assign <id> --unassign--to-id <uuid>(与 --to 互斥)按 UUID 精确分配;适合重名 workspace 下脚本化场景。
变更状态
aacworkflow issue status <id> in_progress有效状态:backlog、todo、in_progress、in_review、done、blocked、cancelled。
评论
# 列表评论
aacworkflow issue comment list <issue-id>
# 添加评论
aacworkflow issue comment add <issue-id> --content "Looks good, merging now"
# 回复特定评论
aacworkflow issue comment add <issue-id> --parent <comment-id> --content "Thanks!"
# 删除评论
aacworkflow issue comment delete <comment-id>执行历史
# 列表 issue 的所有执行运行
aacworkflow issue runs <issue-id>
aacworkflow issue runs <issue-id> --full-id
aacworkflow issue runs <issue-id> --output json
# 查看特定执行运行的消息
aacworkflow issue run-messages <task-id>
aacworkflow issue run-messages <short-task-id> --issue <issue-id>
aacworkflow issue run-messages <task-id> --output json
# 增量获取(仅给定序列号后的消息)
aacworkflow issue run-messages <task-id> --since 42 --output jsonruns 的表格输出默认显示 task UUID 短前缀;需要完整 task UUID 时使用 --full-id。run-messages 可直接接受完整 task UUID;从 runs 表格复制短前缀时需要同时传 --issue <issue-id>,CLI 只会在该 issue 的 runs 内解析。
Project
Project 组织相关 issue(如冲刺、epic、工作流)。每个 project 属于一个工作区,可选有一个负责人(成员或智能体)。
列表 Project
aacworkflow project list
aacworkflow project list --status in_progress
aacworkflow project list --output json可用过滤:--status。
获取 Project
aacworkflow project get <id>
aacworkflow project get <id> --output json创建 Project
aacworkflow project create --title "2026 Week 16 Sprint" --icon "🏃" --lead "Lambda"Flags:--title(必需)、--description、--status、--icon、--lead、--start-date、--due-date。日期是日历日(YYYY-MM-DD)。
更新 Project
aacworkflow project update <id> --title "New title" --status in_progress
aacworkflow project update <id> --lead "Lambda"
aacworkflow project update <id> --due-date 2026-04-15Flags:--title、--description、--status、--icon、--lead、--start-date、--due-date。日期传空字符串(如 --start-date "")可清除。
变更状态
aacworkflow project status <id> in_progress有效状态:planned、in_progress、paused、completed、cancelled。
删除 Project
aacworkflow project delete <id>关联 Issue 到 Project
用 issue create / issue update 的 --project flag 把 issue 附到 project,或用 issue list 按 project 过滤:
aacworkflow issue create --title "Login bug" --project <project-id>
aacworkflow issue update <issue-id> --project <project-id>
aacworkflow issue list --project <project-id>配置
查看配置
aacworkflow config show显示配置文件路径、服务器 URL、应用 URL 和默认工作区。
设置值
aacworkflow config set server_url wss://api.example.com/ws
aacworkflow config set app_url https://app.example.com
aacworkflow config set workspace_id <workspace-id>其他命令
aacworkflow version # 显示 CLI 版本和提交哈希
aacworkflow update # 更新到最新版本
aacworkflow agent list # 列表当前工作区的智能体输出格式
大多数命令支持 --output 的两种格式:
table—— 人类可读表格(list 命令的默认格式)json—— 结构化 JSON(对脚本和自动化有用)
aacworkflow issue list --output json
aacworkflow daemon status --output json