Goose CLI 命令速查表 - Block/Linux 基金会 AAIF 代理全参数
Goose 是 Linux 基金会 AAIF 旗下的通用型终端 AI 代理(Rust,Apache-2.0),面向需要一个能在本地操作文件、执行命令、接入 15+ 模型提供商与 70+ MCP 扩展的通才 Agent 的开发者与运维。相比专注编码的代理,Goose 定位更宽,适合把日常自动化与跨工具复杂工作流交给同一个 Agent;本表帮你掌握交互会话、一次性运行、扩展管理与故障诊断(goose doctor)。
会话与运行 5
goose sessiongoose session --name feat/logingoose session --resumegoose run "重构 utils 模块"goose run --stdin配置与认证 5
goose configuregoose configure extensionsexport GOOSE_PROVIDER=anthropicexport GOOSE_MODEL=claude-sonnetexport ANTHROPIC_API_KEY=sk-ant-...扩展(MCP)管理 5
goose extensions listgoose extensions add <name>goose extensions remove <name>goose session -e <ext>goose configure extensions食谱(Recipe)与诊断 5
goose cook recipe.yamlgoose doctorgoose logsgoose updategoose completion bash服务与调试 5
goose server startgoose server stopgoose server statusgoose sessions listgoose chat全局标志位 5
goose run -v "任务"goose session --session-id <id>goose run --profile prodgoose configure --helpgoose --version命令示例
给这次会话起名字,方便日后按名恢复
goose session --name feat/login未命名会话只能靠 --resume 恢复最近一个;同时开多个会话时,命名是唯一能把某个会话准确找回来的办法。
一次性任务开详细日志,便于回看每一步
goose run -v "refactor the utils module"goose run 是不进交互的一次性执行,-v 把逐轮过程打出来。任务结果不对时先加上 -v 重跑一次,比事后翻日志更快定位。
在当前 shell 里切好 provider 与模型,再临时挂一个扩展开会话
export GOOSE_PROVIDER=anthropic
export GOOSE_MODEL=claude-sonnet
export ANTHROPIC_API_KEY=sk-ant-...
goose session -e <ext>环境变量只对之后启动的进程生效;-e 挂的扩展仅本次会话可用,退出后不会写进扩展清单。
用 recipe 跑固定的多步工作流
goose cook recipe.yamlrecipe 是 recipe 与步骤的声明式描述,适合写进仓库当团队共用流程。执行出问题先跑 goose doctor 看环境,再跑 goose logs 看这次到底走到哪一步。
常见坑与注意事项
- export ANTHROPIC_API_KEY=sk-ant-... 会把明文密钥留在当前 shell 历史里,生产机上更不要手敲;密钥统一走 goose configure 写入受限权限的配置文件。
- goose extensions remove 是真的把扩展卸掉,不是停用;依赖它的 recipe 和会话会随之失败,删之前先用 goose extensions list 确认没有 workflow 正在用。
- goose session 与 goose run 都可能在工作区里改文件,跑之前先确认工作区干净、有可回滚的提交,别在唯一的未推送副本上试。
- goose server start 起的是常驻服务,会长期持有你的 provider 凭据并占用端口;用完记得 goose server stop,状态用 goose server status 确认。
- goose logs 会记录完整提示词、文件内容和 API 返回,分享日志给别人之前先脱敏;goose update 会替换本地二进制,正在跑的会话应先正常退出。
提示
- Goose 现归 Linux Foundation AAIF,Rust + Apache-2.0,15+ provider 与 70+ MCP 扩展,企业采用上升,适合做"通用桌面代理"占位。
- 把常用流程写成 recipe.yaml 用
goose cook跑,比每次手敲提示词更可复现,也便于团队共享。 - provider/model 走环境变量(GOOSE_PROVIDER/GOOSE_MODEL)或 profile,便于在 prod/dev 间切换而不改命令。
- 环境异常先
goose doctor再goose logs,大多数配置/扩展问题能自助定位。
常见问题
goose session 和 goose chat 有什么区别,该怎么选?
goose session 启动的是完整的交互式会话,代理可以读写工作区文件、执行命令、并按需挂载扩展;goose chat 则直接进入偏纯对话的模式,适合只想聊、不想让它动文件的时候。默认启动就是 goose session,需要纯问答时用 goose chat。
怎样让一个多步任务可以被反复执行,而不是每次手敲一遍提示词?
把步骤写成 recipe.yaml 描述文件,再用 goose cook recipe.yaml 执行。同一个 recipe 可以反复跑、可以提交进仓库共享,比在提示词里反复描述流程可靠得多。
同一套命令怎么在 dev 和 prod 之间切换模型?
两条路:一条是用 export GOOSE_PROVIDER 与 export GOOSE_MODEL 改当前 shell 的默认 provider 与模型;另一条是给命令加 --profile,例如 goose run --profile prod,走 profile 里的那套配置。环境变量必须在启动 Goose 之前就 export 到当前 shell,事后改不会影响已开着的会话。
只想在这一次会话里多挂一个扩展,不想改全局配置,怎么做?
用 goose session -e 加扩展名,本会话内生效,退出即失效。日常维护扩展清单仍然走 goose extensions add / remove,或者进 goose configure extensions 交互配置。
上次那个会话怎么找回来继续?
goose sessions list 列出全部历史会话(带会话 ID),goose session --resume 直接恢复最近一次会话;知道确切 ID 时用 goose session --session-id 加 ID 精确续接。恢复错误的 ID 会把新任务接到旧上下文上,所以先 list 再挑。
由 巧匠 维护
公开更新于 2026年8月21日,内容持续校对官方文档。