Skip to content

CLI 参考

Context 自进化(L2)

apollo evolution show [--namespace context] [--since <date>] 查看经过脱敏、仅追加的本地调优审计;apollo evolution rollback [--namespace context] [--to <timestamp>] 将 context 参数恢复到上一次或指定时间点。~/.apollo/config.toml 中设置 [evolution] enabled = false 后,新会话使用内置 context 默认值。

命令用途
apollo / apollo chat启动交互式或单次编程会话。
apollo login <provider>验证并安全保存 provider 凭据。
apollo logout <provider>删除已保存的 provider 凭据。
apollo config查看配置。
apollo history list / show查看本地会话历史。
apollo resume <session-id>从最后一个持久化 turn 边界恢复。
apollo restore <session-id>回滚该会话修改过的文件。
apollo doctor [--strict]检查配置、凭据、原生包和沙箱状态。
apollo memory <action>管理长期记忆、pinned 上下文和本地搜索索引。
apollo plugin <action>安装、列出、诊断、启停或卸载本地插件。
apollo hook list列出内置 hooks。

apollo plugin install <本地目录> 会校验 manifest 与 bundle、展示权限,并仅在明确批准后安装。新建和恢复会话只会通过原生沙箱宿主激活已安装、已批准且 enabled 的插件。工具必须使用 plugin:<manifest-name>:<tool-name> 命名空间,返回内容会标记为 untrusted;disable 或 uninstall 会终止宿主并清除注册,enable 会在活动会话中恢复加载。可用 plugin list [--json]plugin doctor <name>plugin enable|disable <name>plugin uninstall <name> 管理。registry/GitHub spec、升级与 L4 热重载尚未实现。 | apollo version | 输出版本。 | | apollo help | 显示帮助。 |

常用模式包括 --no-tui--json--no-color。非交互运行不会加载项目配置,除非显式传入 --trust-project-config。危险沙箱绕过参数会被审计,并要求显式确认。

Memory

sh
apollo memory list [--scope workspace|project|both] [--tag <tag>] [--source user|agent|evolution|import] [--pinned] [--limit <n>] [--cursor <cursor>]
apollo memory get <id> [--scope workspace|project|both]
apollo memory add [content] [--id <id>] [--scope workspace|project] [--tag <tag>] [--source user|import] [--pinned]
apollo memory update <id> [content] [--tag <tag>] [--pinned] [--expected-updated-at <time>]
apollo memory delete <id> [--yes]
apollo memory pin <id>
apollo memory unpin <id>
apollo memory export [--scope workspace|project|both] > memory.json
apollo memory import memory.json [--scope workspace|project] [--strategy skip|overwrite|rename] [--dry-run]

globalworkspace 的别名;管道输入使用 --body-stdin,多个 tag 可用逗号分隔。列表按稳定的 (createdAt, id) cursor 分页;--json 始终输出单个带 schema 版本且无 ANSI 的 JSON 文档。Memory 返回码固定为:0 成功、2 校验失败或缺少确认、3 未找到、13 scope/授权拒绝。

删除在交互终端中必须确认;非 TTY、--json--no-tui 场景必须显式传入 --yes。所有输出都会先脱敏。

Pinned memory 以固定行数/token 预算进入每次 provider 请求。优先级为 session > project > workspace;重复正文只保留更窄 scope 的版本,再做确定性排序。正文转义后放进 <untrusted source="memory:pinned">,只作为建议数据,不能覆盖当前用户或 system 指令。pin 会立即刷新 prompt cache,unpin 或 delete 后下一次组合不再包含该正文。

使用 apollo restore <session-id> --dry-run 可预览回滚。每次 WriteEditMultiEdit 修改文件前都会生成会话级备份;如果文件在 Apollo 编辑后又被修改,restore 会拒绝覆盖。备份默认保留七天,总量限制为 500 MB。

Resume 会把未完成的 turn 标记为 aborted,并从新 turn 继续;不会重新执行中断的 provider 或工具调用。

本地 Memory 搜索与恢复

sh
apollo memory search <query> [--scope workspace|project|session] [--limit 10] [--tag tag] [--json]
apollo memory doctor [--strict] [--json]
apollo memory reindex [--check] [--force] [--batch-size 250] [--json]

搜索仅使用本地关键词,不会调用 embedding 或网络。索引候选始终通过带 scope 策略的事实服务回读,因此不会返回过期、已删除、幽灵或越权条目。memory doctor 只读;memory reindex --check 仅报告是否需要重建。实际重建使用跨进程锁,全部批次成功后才原子发布新 generation。--force 会重建健康索引并可清理陈旧锁,但不会抢占仍存活进程持有的锁。

Memory 归档使用版本化的 apollo.memory.export.v1 JSON 格式。Export 通过 ACL 读取指定 scope,只导出 attachment 引用而不复制二进制。Import 默认 skip,会报告全部冲突, 支持无写入的 --dry-run,并用 journal 在失败或中断后回滚。导入记录的 provenance 固定为 source: import;原始 provenance 仅作为不可信 importedFrom 信息保留,不能提升权限。 整个流程仅处理本地数据,不执行上传、分享、远端同步或 embedding。

Role 路由

Role 路由在受信任的全局 ~/.apollo/config.toml 中配置。Role 只负责选择显式 provider/model 候选链;失败分类、冷却、重试上限、时间/费用预算以及工具调用 turn sticky 仍统一由 FallbackRouter 执行。

toml
[router]
type = "role"

[router.default]
provider = "anthropic"
model = "claude-sonnet-4-5"

[router.roles.planner]
provider = "openai"
model = "gpt-4o-mini"
priority = 100

[router.roles.coder]
provider = "anthropic"
model = "claude-sonnet-4-5"
priority = 100

[router.roles.reviewer]
provider = "anthropic"
model = "claude-opus-4"
priority = 100

plannercoderreviewer hint 可来自显式输入、hook 元数据或内置 subagent 类型;显式 provider/model hint 对当前 turn 优先。一旦 provider 发出首个 tool-use chunk,该 provider 会保持 sticky 直到 turn 结束,重试不得跨 provider。

Provider plugin 注册后不会自动进入 role/fallback 候选池。必须在 role/fallback 配置中点名 opt-in,或仅为当前 turn 显式选择。v1 禁止把 plugin provider 设为 default。