gsd-2 是什么?

GSD 2(gsd-build/gsd-2,npm 包名 gsd-pi)把上一代 Get Shit Done 的 Claude Code Slash Command 提示词框架,重写成基于 Pi SDK 的独立命令行 Coding Agent:用 TypeScript + Rust N-API 实现 .gsd/ 磁盘状态机驱动的 /gsd auto 自治循环,配合 git worktree 隔离、子任务级 fresh context、崩溃恢复、成本台账与 MCP 服务端,做长跨度规范驱动开发。面向已经习惯 Claude Code / Codex / OpenRouter 的开发者,是 Cursor / Aider / Cline / Claude Code 的开源 CLI 替代方案,可走 OpenRouter / Ollama / DashScope 自部署。

⭐ 5,816 Stars 🍴 603 Forks TypeScript 作者: gsd-build
来源:README + dep-package.json + ARCHITECTURE.md 查看 GitHub 仓库 →

为什么值得关注

GSD 一代靠几页 Markdown 提示词在 Claude Code 社区刷出热度,但「LLM 自己 Loop 自己」的玩法天然有上限:上下文越塞越脏、崩了从头再来、没有成本观测。v2 把这套规范工作流从「靠 LLM 守纪律」改成「TypeScript 程序强制执行」——每个 task 拿一个全新 200k 上下文窗口、worktree 隔离每个 milestone、卡住自动 retry+forensics、超预算自动暂停。这种「规范驱动 + 程序化控制」的路线,在 2025 年下半年 Claude Code、Codex、Aider 都在卷自治长任务的当下抢了一个具体生态位。配合 v2.78 的 slice-cadence worktree 合并、UnitContextManifest v2、Auto Pipeline 组件统一、24 个内置扩展,仓库从 v1 的「提示词库」彻底变成一个有自己 Pi SDK、Rust 引擎和 MCP 服务端的 Agent 平台,对想自部署、私有化或者免费替代 Claude Code 订阅的团队来说是一个值得评估的选项。

来源:README v2.78 章节 + What Changed From v1 表格

核心功能

auto 模式状态机(/gsd auto)

auto.ts + auto-dispatch.ts + auto-stuck-detection.ts 实现的文件驱动状态机:读取 .gsd/STATE.md 决定下一步 unit,启新 agent session 注入 plan/summary/decisions 等 artifact,跑完写盘→再读盘。包含 soft/idle/hard 三档 timeout、滑动窗口 stuck 检测、artifact 缺失最多 3 次重试后暂停而不死循环。

来源:ARCHITECTURE.md Key Modules + README §How It Works
Milestone → Slice → Task 三级工作分解

硬性约束「一个 task 必须装得进一个 context window」,否则拆成两个。每个 slice 是一个可演示的纵向能力,每个 milestone 是可发布的版本。.gsd/ 下面 PROJECT.md / ROADMAP.md / DECISIONS.md / KNOWLEDGE.md / Mxxx-RESEARCH.md / Sxx-PLAN.md / Txx-PLAN.md / Txx-SUMMARY.md 各司其职。

来源:README §How It Works + Context Engineering 表
git worktree 隔离 + slice-cadence squash

git.isolation 可设 none/branch/worktree。worktree 模式每个 milestone 独立目录,slice 顺序提交不切换分支,milestone 完成后 squash-merge 到 main。v2.78 新增 git.collapse_cadence: slice 让每个验证通过的 slice 立刻 squash 进 main,并配 milestone_resquash 把 slice commit 再合成单 milestone commit。worktree-orphaned / worktree-unmerged-exit 等 telemetry 进入 /gsd forensics。

来源:README v2.78 Worktree Lifecycle 章节 + auto-worktree.ts 模块
复杂度分类 + 动态模型路由 + 预算压力降级

complexity-classifier.ts 用启发式(亚毫秒、不调 LLM)把 unit 分成 light/standard/heavy 三档,model-router.ts 配 model-cost-table.ts 在已配置的 provider 里挑性价比最高的模型,routing-history.ts 记录历史结果做自适应。budget_ceiling 触发 50%/75%/90% 三档预算压力,自动把工作下沉到便宜模型档位。token_profile=budget 据称可省 40-60%。

来源:README §Token Optimization + ARCHITECTURE.md Key Modules
崩溃恢复 + 单写者状态 + atomic .gsd/ 写入

session-lock.ts 用 proper-lockfile 做 OS 级独占锁,crash-recovery.ts 检测残留 lock 后从 session 文件合成 recovery briefing。v2.78 强化了 file-lock 真锁定、appendFile 锁包裹、TOCTOU ancestry guard、`.git/index.lock` 5 分钟陈旧后才强删、worktree 状态写入与 forensics 联动。Auto state machine 把 deterministic policy error 标记为 non-retriable(#4973),避免无谓重试。

来源:README v2.78 Reliability & Safety + crash-recovery.ts/session-lock.ts
Pi SDK Workspace + Rust 原生引擎

package.json 是 npm workspaces,packages/ 下含 pi-tui、pi-ai、pi-agent-core、pi-coding-agent、native、daemon、mcp-server、rpc-client 八个内部包,extensions/ 单独切出第一个外置扩展(google-search)。native/crates/{ast,engine,grep} 用 Rust + N-API 实现 grep(ripgrep)、glob(gitignore-aware)、ast-grep、libgit2 git read、syntect 高亮、HTML→Markdown 等性能敏感操作,跨 darwin-arm64/x64、linux-arm64/x64-gnu、win32-x64-msvc 五平台预编译分发。

来源:dep-package.json workspaces + native/Cargo.toml + tree.txt
20+ Provider + 内置 24 扩展 + 5 子 agent

通过 Pi SDK 接 Anthropic、OpenAI、Google、OpenRouter、GitHub Copilot、Bedrock、Azure OpenAI、Vertex、Groq、Cerebras、Mistral、xAI、HuggingFace、Vercel AI Gateway、Ollama、DashScope 等 20+ provider,支持 OAuth(Claude Max / Copilot / Codex)和 API key 双路径。每个 phase 可单独配模型 + fallback 链。扩展含 Browser Tools(Playwright)、Context7、Background Shell、LSP、Voice、cmux、GitHub Sync 等。子 agent:scout/researcher/worker/javascript-pro/typescript-pro。

来源:README §Use Any Model / §Bundled Tools / §Bundled Agents
headless 模式 + MCP server + VS Code 扩展

gsd headless 适配 CI/cron,0/1/2 三类退出码,崩溃指数退避自动重启;gsd headless query 不调 LLM,~50ms 输出 JSON 状态。同时通过 packages/mcp-server 把 plan / dispatch / question / state 等核心工具暴露成 MCP 服务,让外部 IDE 集成。vscode-extension 提供 chat participant、sidebar dashboard、SCM provider、worktree 控制。

来源:README §Headless mode + packages/mcp-server + vscode-extension/ tree

技术架构

整体是 daemon-less 但 state-on-disk 的 client-server-less 架构:CLI 二进制 gsd 通过两段式 loader(先设 PI_PACKAGE_DIR 再 dynamic-import cli.ts)启动一个 Pi SDK 内嵌的 Interactive 会话,所有持久化状态都在仓库本地 .gsd/ 目录,跨 session 不依赖任何内存。auto 模式的派发管线是声明式表(auto-dispatch.ts):读盘→定 unit type→复杂度分类→预算压力调节→路由历史校正→选模型→拼 dispatch prompt(含 plan/summary/decisions/roadmap 等 inline artifact)→新 agent session→执行→快照 metric→校验 artifact→落盘→回到第一步。Rust 原生引擎通过 N-API 接到 Node 层,跨 darwin/linux/win 五平台预编译。Pi SDK 走 lazy provider loading,冷启动只载真正用到的 LLM SDK。模块化在 src/auto-*.ts 切得相当细:state.ts、session.ts、idempotency.ts、stuck-detection.ts、worktree.ts、recovery.ts、timers.ts、verification.ts、prompts.ts 各管一档,配合 metrics.ts/git-service.ts/preferences*.ts 形成 30+ 文件的 auto 子系统。这种切分对功能扩展友好,但模块边界有大量「半状态半工具函数」交叉,对新人理解曲线明显偏陡。设计上有过度工程嫌疑的部分:单个仓库同时维护 8 个 internal package + 24 个 extension + Rust workspace + VS Code extension + Web/Studio + Docker,复杂度已接近一个小型平台。设计不足的部分:.gsd/ 里仍是大量 Markdown + JSON + SQLite 混合存储,schema 漂移风险只能靠运行时 migration 和 v2.78 的 CI guards 兜底;token_profile 节省 40-60% 的说法 README 没给基准,需要使用者自己验证。

来源:README §Architecture + ARCHITECTURE.md Dispatch Pipeline + tree.txt

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) @anthropic-ai/sdk ^0.90 / @anthropic-ai/vertex-sdk / @anthropic-ai/claude-agent-sdk(opt)@anthropic-ai/… @google/genai / openai ^6 / @mistralai/mistralai / @aws-sdk/client-bedrock-runtime@google/genai… @modelcontextprotocol/sdk ^1.27(MCP 服务端 + 客户端)@modelcontextp… playwright ^1.58(Browser Tools 扩展) + sharp + photon-node(图像)playwright ^1.… proper-lockfile(session 锁)+ chokidar(fs watch)+ sql.js(SQLite WASM)proper-lockfil… auto 模式状态机(/gsd auto)auto 模式状态机(/gs… Milestone → Slice → Task 三级工作分解Milestone → Slice… git worktree 隔离 + slice-cadence squashgit worktree 隔离 +… 复杂度分类 + 动态模型路由 + 预算压力降级复杂度分类 + 动态模型… 崩溃恢复 + 单写者状态 + atomic .gsd/ 写入崩溃恢复 + 单写者状态… Pi SDK Workspace + Rust 原生引擎Pi SDK Workspace +… 20+ Provider + 内置 24 扩展 + 5 子 agent20+ Provider + 内置… headless 模式 + MCP server + VS Code 扩展headless 模式 + MCP… gsd-2 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言TypeScript 5.4(核心 + extensions),Rust 2021(native engine),少量 Python 工具脚本框架Pi SDK(@gsd/pi-coding-agent / pi-agent-core / pi-ai / pi-tui,以 workspace 形式内置);@modelcontextprotocol/sdk 做 MCP;Playwright 做浏览器自动化;@anthropic-ai/claude-agent-sdk 作可选依赖;TUI 自研
@anthropic-ai/sdk ^0.90 / @anthropic…@google/genai / openai ^6 / @mistral…@modelcontextprotocol/sdk ^1.27(MCP …playwright ^1.58(Browser Tools 扩展) +…proper-lockfile(session 锁)+ chokidar…@sinclair/typebox + ajv(schema 校验,Un…
npm 10.9 workspaces,Node 22+(推荐 24 LTS);Rust workspace + N-API 预编译为 @gsd-build/engine-{platform} 五个 optionalDependencies;esbuild + tsc 双链;c8 跑 40% statements/lines 覆盖率门槛;自带 CI/CD 三阶段 promotion(Dev → Test → Prod)和 docker:build-runtime(ghcr.io/gsd-build/gsd-pi);npm 主包名 gsd-pi,目前版本 v2.78.1
来源:dep-package.json + native/Cargo.toml + ARCHITECTURE.md

快速上手

# 安装(需要 Node 22+,推荐 24 LTS) npm install -g gsd-pi # 进入交互式会话,登录 LLM provider gsd /login # 选择模型 /model # 在项目目录里启动 cd your-project gsd # 单步模式:每完成一个 unit 暂停一次 /gsd # 或者全自动:拆分 → 计划 → 执行 → 验证 → 提交 → 推进 /gsd auto # 双终端工作流:另开一个窗口边跑边引导 gsd /gsd discuss # 讨论架构决策 /gsd status # 看进度 /gsd queue # 排下一个 milestone # Headless 模式:CI / cron / 脚本 gsd headless --timeout 600000 gsd headless new-milestone --context spec.md --auto gsd headless next gsd headless query # 50ms JSON 快照,不调 LLM # 从 GSD v1 .planning 迁移到 .gsd /gsd migrate # 升级 gsd update
来源:README

使用场景

1. 想免费替代 Claude Code 订阅、用 OpenRouter / Ollama / DashScope 等更便宜或本地 provider 跑长跨度自动开发的国内开发者,可以用 GSD 2 自部署 + 自带 budget_ceiling 控成本。 2. 已经用 Claude Code 但受不了「LLM 自己 Loop 自己」上下文污染、希望每个 task 拿干净 200k 窗口、并且要 git worktree 隔离 + 自动 squash 的资深用户。 3. 在 CI 里跑长任务做夜间自动重构 / 文档同步 / 安全扫描 / 大规模批量改动的团队,用 gsd headless 配 remote-questions 把人工决策路由到 Slack / Discord。 4. 多人协作仓库希望强制 milestone 唯一名 + .gsd/ 部分 artifact 入库共享上下文的团队(unique_milestone_ids: true)。

来源:README §Headless / §Working in teams + 综合分析

优势与局限

优势

  • 把 Spec-Driven Development 工作流真正程序化:context、git、cost、stuck、verification、replan 全部由 TypeScript 主动控制,而不是发给 LLM 一段提示词后听天由命,从根上解决了 v1「LLM 自律不可靠」的问题。
  • 可观测性优于多数同类 Agent CLI:per-unit token/cost 台账、phase/slice/model 维度拆分、cost 预测、Ctrl+Alt+G dashboard,milestone 完成自动生成 self-contained HTML 报告(含 SVG DAG),真正可用于团队复盘和审计。
  • 工程基础设施扎实:8 个内部 npm workspace + 5 平台 Rust 原生引擎预编译 + MCP server + VS Code 扩展 + headless + Docker 镜像,CI 三阶段 promotion + secret-scan hook + c8 40% 覆盖率门槛,不是「demo 级」开源项目。
  • Provider 中立度高:20+ 内置 provider、per-phase 模型 + fallback 链、OAuth 与 API key 双路径、Ollama 与 DashScope 一等公民,国内开发者能用智谱/通义/MiniMax/DeepSeek 等通过 OpenRouter 入口跑通。
  • 升级演进历史清晰:CHANGELOG 维护到 v2.78,每个 minor 版的设计决策(ADR-001~013)都在 docs/dev/ 沉淀;从 v1 到 v2 的架构对比表也写得很坦诚,工程团队的设计判断质量在线。
  • 扩展点设计前瞻:Extensions Framework 已支持 install/update/uninstall/validate 全生命周期 + 拓扑加载顺序 + cmux 解耦,为第三方扩展生态留好接口;UnitContextManifest v2 把 dispatch 也改成 typed manifest + CI schema guard。

局限

  • 可维护性:单仓库同时维护 8 internal package + 24 extension + Rust workspace + VS Code 扩展 + Studio Web + Docker,src/auto-*.ts 已切到 30+ 文件,「半状态半工具函数」边界对新贡献者非常陡峭,README v2.78 一个版本就涉及 #4641~#4979 等数十个 issue 的修复,反衬出系统体量带来的回归面积。
  • 稳定性:v2 仍在密集迭代(v2.78 才刚发,CHANGELOG 里 v2.70~v2.78 全是 hardening 与 bug fix),README 自陈仍在补 atomic write、TOCTOU、worktree orphan、empty-turn recovery、validate-milestone 等关键路径的安全网,「锁真的锁」是 v2.78 才修;自动模式跑长任务的可靠性应当假设要踩坑。
  • 可扩展性:Extensions Framework 刚拆出第一个外置扩展(google-search),Skills 在 v2.77 才上 9 个 gap-closing 包,扩展生态仍处于「内置 24 个 + 第三方接近零」状态,三方愿不愿意基于 ExtensionLoadWarning / 拓扑序写扩展还要观察。
  • 可测试性:c8 覆盖率门槛 statements/lines 40%、branches/functions 20%,对一个状态机 + IO 重的系统偏低;测试体系分 test:unit / integration / packages / smoke / live / live-regression / browser-tools / native 多套,本地完整跑成本高,CI 三阶段 promotion 也对应这点。
  • 性能与成本观测:token_profile budget 节省 40-60% 的说法 README 没给可复现 benchmark,需要使用者按自己 workload 验证;预算压力降级 50/75/90% 三档若 fallback 模型质量差很多,可能出现「省钱但任务失败重跑反而更贵」的反效果。
  • ToS 与商务风险:README 自己警告 Claude Max / Copilot / Gemini OAuth 跨工具使用可能违反 provider 条款(Google 已有账号被封案例),项目本身又把 OAuth 当一等公民推荐——使用者需要自己拿捏;同时仓库挂着 $GSD Solana 代币与 Dexscreener 链接,把工程项目和 meme coin 绑在一起,企业用户和合规敏感场景需要格外评估。
  • 数据存储设计模糊:.gsd/ 同时混着 Markdown、JSON、JSONL、SQLite(gsd.db)、lock 文件、worktree 副本,状态来源真理跨多种形态,schema 漂移只能靠 v2.78 引入的 CI schema guard 和运行时 migration 兜底;DB 直写已经被 hooks 拦截(v2.73 #3674),但「文件优先 + DB 镜像」的双轨长期维护成本不低。
来源:README v2.78 全文 + ARCHITECTURE.md + dep-package.json + 综合分析

最新版本

GitHub Releases 页面无 release 记录(API 返回空数组)。仓库通过 npm 持续发版,package.json 当前 version 为 2.78.1,README v2.78 章节列出本版本主要变更:1) Worktree Lifecycle & Forensics——新增 git.collapse_cadence: slice/milestone 偏好与 worktree-created/merged/orphaned/auto-exit 等 journal 事件,/gsd forensics 新增 worktree section;2) Auto Pipeline & Component System——unified component 模型,UnitContextManifest v2(#4924, #4934)+ CI schema guard,Composer migration phase 3,Milestone scope classifier + pipeline variants;3) Extensions Framework——install/update/uninstall/list/info/validate 全生命周期,Kahn 拓扑加载序,cmux↔gsd 解耦,第一个外置扩展 @gsd-extensions/google-search 落地;4) Models, Agent, UX——支持 GPT-5.5 Codex 含 xhigh thinking level,权限粒度选择器,Headless auto 默认 bypassPermissions(#4657),skillFilter 系统提示词;5) Reliability & Safety——大规模 git-safety 修复、atomic .gsd/ 写入真正生效、compaction 修复(#4665)、Write-gate 修复(#4950)、Auto state machine 多处 hardening。

来源:GitHub Releases API + dep-package.json version + README §What's New in v2.78

总结评价

GSD 2 是 2025 年下半年「规范驱动 + 程序化控制」一派开源 Coding Agent 里完成度较高的一个,把 v1 那种「靠 LLM 看懂提示词」的玩法,彻底改写成由 TypeScript 程序硬控的状态机加 git worktree 加成本台账,整体设计判断扎实、ADR 链条清晰、provider 中立、headless 与 MCP 都齐备,是 Cursor / Aider / Cline / Claude Code 之外一个值得评估的 CLI 替代方案,尤其适合想自部署、走 OpenRouter / Ollama / DashScope 路径压成本、并希望自动化夜跑长任务的国内开发者和团队。但务实地说,这个项目目前不适合所有人:如果你只是偶尔写写 Slash Command,v1 那套 Markdown 提示词其实够用且零迁移成本;如果你的 workload 是短交互 / 单文件改动,GSD 2 完整的 Plan→Slice→Task 三级分解+worktree 隔离反而是过度设计、上手成本远高于直接用 Claude Code;如果你企业法务对 OAuth ToS、AGPL 衍生、$GSD 代币这类信号敏感,建议先固定到稳定 tag、走 API key 而非 OAuth、并把 git.isolation 设成 worktree 隔离脏状态;想真正发挥它的价值,至少要把 budget_ceiling、verification_commands、git.collapse_cadence、token_profile 四个偏好按自己工作流配清楚,再用 gsd headless query 做监控接入,否则只会得到一个「能跑但说不清省没省钱」的黑盒。先看 docs/dev/ADR-009/010/013,再决定要不要把它纳入主力工作流。

来源:综合分析
透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-04-28 01:26. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件