AACWorkflow Docs

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命令描述
AntigravityagyGoogle 的编程智能体
Claude CodeclaudeAnthropic 的编程智能体
CodeBuddycodebuddyTencent 的编程智能体
CodexcodexOpenAI 的编程智能体
CopilotcopilotGitHub 的编程智能体
Cursor Agentcursor-agentCursor 编程智能体
HermeshermesNous Research 编程智能体
KimikimiMoonshot 编程智能体
Kiro CLIkiro-cliKiro ACP 编程智能体
OpenCodeopencode商业编程智能体
OpenClawopenclaw商业编程智能体
PipiInflection 编程智能体
QoderqodercliAlibaba 的编程智能体
TraetraecliByteDance 的编程智能体

至少需要一个。守护进程把每个检测到的 CLI 注册为可用运行时。

工作原理

  1. 启动时,守护进程检测已安装的 AI CLI,为每个监看工作区的每个智能体注册一个运行时
  2. 以可配置间隔(默认 30 秒)轮询服务器以获取分配的任务
  3. 任务到达时,创建隔离工作目录、启动智能体 CLI、流式传输结果回传
  4. 定期发送心跳(默认 15 秒)让服务器知道守护进程活着
  5. 关闭时,注销所有运行时

配置

守护进程行为通过 flag 或环境变量配置:

SettingFlagEnv VariableDefault
Poll interval--poll-intervalAACWORKFLOW_DAEMON_POLL_INTERVAL30s
Heartbeat interval--heartbeat-intervalAACWORKFLOW_DAEMON_HEARTBEAT_INTERVAL15s
Agent timeout--agent-timeoutAACWORKFLOW_AGENT_TIMEOUT0(不限制,由看门狗兜底)
Codex app-server handshake timeout--codex-handshake-timeoutAACWORKFLOW_CODEX_HANDSHAKE_TIMEOUT30s
Max concurrent tasks--max-concurrent-tasksAACWORKFLOW_DAEMON_MAX_CONCURRENT_TASKS20
Daemon ID--daemon-idAACWORKFLOW_DAEMON_IDhostname
Device name--device-nameAACWORKFLOW_DAEMON_DEVICE_NAMEhostname
Runtime name--runtime-nameAACWORKFLOW_AGENT_RUNTIME_NAMELocal Agent
Workspaces rootAACWORKFLOW_WORKSPACES_ROOT~/aacworkflow_workspaces

智能体特定覆盖:

变量描述
AACWORKFLOW_CLAUDE_PATHclaude 二进制的自定义路径
AACWORKFLOW_CLAUDE_MODEL覆盖使用的 Claude 模型
AACWORKFLOW_CODEX_PATHcodex 二进制的自定义路径
AACWORKFLOW_CODEX_MODEL覆盖使用的 Codex 模型
AACWORKFLOW_OPENCODE_PATHopencode 二进制的自定义路径
AACWORKFLOW_OPENCODE_MODEL覆盖使用的 OpenCode 模型
AACWORKFLOW_OPENCLAW_PATHopenclaw 二进制的自定义路径
AACWORKFLOW_OPENCLAW_MODEL覆盖使用的 OpenClaw 模型
AACWORKFLOW_HERMES_PATHhermes 二进制的自定义路径
AACWORKFLOW_HERMES_MODEL覆盖使用的 Hermes 模型
AACWORKFLOW_PI_PATHpi 二进制的自定义路径
AACWORKFLOW_PI_MODEL覆盖使用的 Pi 模型
AACWORKFLOW_CURSOR_PATHcursor-agent 二进制的自定义路径
AACWORKFLOW_CURSOR_MODEL覆盖使用的 Cursor 模型
AACWORKFLOW_KIMI_PATHkimi 二进制的自定义路径
AACWORKFLOW_KIMI_MODEL覆盖使用的 Kimi 模型
AACWORKFLOW_KIRO_PATHkiro-cli 二进制的自定义路径
AACWORKFLOW_KIRO_MODEL覆盖使用的 Kiro 模型
AACWORKFLOW_COPILOT_PATHcopilot 二进制的自定义路径
AACWORKFLOW_COPILOT_MODEL覆盖使用的 Copilot 模型
AACWORKFLOW_CODEBUDDY_PATHcodebuddy 二进制的自定义路径
AACWORKFLOW_CODEBUDDY_MODEL覆盖使用的 CodeBuddy 模型
AACWORKFLOW_ANTIGRAVITY_PATHagy 二进制的自定义路径
AACWORKFLOW_ANTIGRAVITY_MODEL覆盖使用的 Antigravity 模型
AACWORKFLOW_QODER_PATHqodercli 二进制的自定义路径
AACWORKFLOW_QODER_MODEL覆盖使用的 Qoder 模型
AACWORKFLOW_TRAECLI_PATHtraecli 二进制的自定义路径
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-prefixslug 创建后只读,不暴露在 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-ed295a54545d

Flags:--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

有效状态:backlogtodoin_progressin_reviewdoneblockedcancelled

评论

# 列表评论
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 json

runs 的表格输出默认显示 task UUID 短前缀;需要完整 task UUID 时使用 --full-idrun-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-15

Flags:--title--description--status--icon--lead--start-date--due-date。日期传空字符串(如 --start-date "")可清除。

变更状态

aacworkflow project status <id> in_progress

有效状态:plannedin_progresspausedcompletedcancelled

删除 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