gstack 是什么?

gstack 把 Claude Code 升级成虚拟工程团队:30+ 个 Markdown 写的 slash 命令覆盖 think → plan → build → review → test → ship → reflect 的完整开发流程,外加一个用 Bun + Playwright 编译出来的常驻 Chromium 守护进程,让 AI 代理在浏览器里点击、截图、QA。作者是 YC 总裁 Garry Tan,MIT 协议,开源免费。

⭐ 87,436 Stars 🍴 12,839 Forks TypeScript 作者: garrytan
来源:README + package.json 查看 GitHub 仓库 →

为什么值得关注

这是 Y Combinator 总裁 Garry Tan 把自己日常使用的 AI 编码工作流开源出来——他在 README 里给出了一个争议十足的数据:2026 年的人均代码产出约为 2013 年的 810 倍,靠的就是这套流程化、角色化的 Claude Code 增强层。和「再写一个 Claude Code 包装器」不同,gstack 的卖点是把软件工程过程本身做成了 skill 流水线:office-hours 像产品经理质询需求,plan-ceo-review 像 CEO 重审范围,plan-eng-review 锁架构,review/qa/cso 跑代码审查、浏览器 QA 与 OWASP+STRIDE 安全审计,ship 自动开 PR。23 个角色 + 8 个能力工具,全是 Markdown,无前端 UI,可以同时跑 10-15 个并行 sprint。仓库本身用了大量自我验证手段:实时 PTY E2E 测试、跨模型 benchmark、5 层 prompt injection 防御,工程感比绝大多数 AI agent 项目要硬。

来源:README + CHANGELOG

核心功能

Markdown 化的 23 个角色 slash 命令

/office-hours、/plan-ceo-review、/plan-eng-review、/plan-design-review、/plan-devex-review、/review、/investigate、/cso、/qa、/qa-only、/ship、/land-and-deploy、/canary、/benchmark、/retro、/learn、/autoplan 等命令以 Markdown SKILL.md 形式存在 ~/.claude/skills/gstack/,每个命令对应一个工程师角色,命令之间通过共享的设计文档(如 office-hours 写出的 design doc 被 plan-ceo-review 读取)形成显式的接力。

来源:README + 仓库 tree
Bun 编译的常驻 Chromium 守护进程(browse)

browse/ 模块用 bun build --compile 出一个 ~58MB 单文件二进制,启动一个 Bun.serve() HTTP 服务包裹 Playwright 控制的 Chromium。首次调用 ~3 秒冷启动,后续每条命令通过 localhost HTTP POST 走 ~100-200ms,cookie/tab/localStorage 在多次命令间保持,30 分钟空闲后自动关闭。这是 /qa、/browse、/design-review 能在 SPA 上跑得动的关键基建。

来源:ARCHITECTURE.md
Ref 系统:用可访问性树代替 CSS 选择器

snapshot -i 调用 Playwright page.accessibility.snapshot() 后给每个可交互元素分配 @e1/@e2 引用,AI 代理直接用 $B click @e3 操作页面。底层走 getByRole().nth() 的 Locator 而不是注入 data-ref 属性,能绕过 CSP、React 重渲染和 Shadow DOM 限制;导航后引用整体失效,resolveRef 还会异步 count() 检测 SPA 中的悬空引用,避免代理点错元素。

来源:ARCHITECTURE.md
5 层 Prompt Injection 防御

侧边栏 agent 暴露 Bash/Read/Glob/Grep/WebFetch 工具,是注入攻击的主要面。防御依次是:L1-L3 内容安全(datamarking、隐藏元素剥离、ARIA 正则、URL 黑名单 + 信任边界包装)、L4 ML 分类器(22MB 量化 BERT-small ONNX,本地无网;可选 721MB DeBERTa-v3 ensemble)、L4b Claude Haiku 转写检查、L5 系统提示词 canary token 跨流(text_delta/input_json_delta/工具参数/文件写入)泄漏检测、L6 verdict 组合器(要求两个分类器 ≥WARN 才 BLOCK,规避 Stack Overflow 误报)。

来源:ARCHITECTURE.md
Pair-agent + 双监听器隧道

pair-agent 让 Claude Code、OpenClaw、Hermes、Codex 等不同厂商的代理能在同一个浏览器里协作。本机用 setup-key 兑换 scoped token、各占独立 Tab;远程用 ngrok 隧道。安全上不依赖 header 推断,而是物理分离两个 HTTP 监听器(local 端口暴露 /health、/cookie-picker、/inspector 等,tunnel 端口仅暴露允许列表中的 /connect、/command、/sidebar-chat),从 socket 层面切断 root token 通过隧道泄漏的可能。

来源:ARCHITECTURE.md
SKILL.md 模板系统:文档与代码强一致

SKILL.md.tmpl 包含人写的工作流提示,构建时 gen-skill-docs.ts 从 commands.ts、snapshot.ts 等源文件提取命令注册表、参数说明、preamble、设计/QA/测试方法学等占位符填充进去,生成最终 SKILL.md 提交进仓库。CI 通过 gen:skill-docs --dry-run 加 git diff --exit-code 阻止文档漂移,从结构上保证文档列出的命令一定存在。

来源:ARCHITECTURE.md + package.json
跨 10 个 AI host 的统一 setup

hosts/ 目录下针对 claude、codex、cursor、factory、gbrain、hermes、kiro、openclaw、opencode、slate 各写一个 TypeScript 配置,./setup --host 自动把 skill 软链接到 ~/.codex/skills/、~/.cursor/skills/ 等对应目录。新增一个 host 只需要新增一个 .ts 文件,不需要改核心逻辑。

来源:tree (hosts/) + README
实时 PTY 测试 + 跨模型 benchmark

v1.15.0.0 引入 654 行的 test/helpers/claude-pty-runner.ts,基于 Bun.spawn({terminal:}) 直接驱动真实 claude 二进制并解析渲染后的终端帧,用来测 AskUserQuestion 格式合规、计划模式 UI 检测、tool-budget 回归等以前结构上无法覆盖的行为。bin/gstack-model-benchmark 还能把同一个提示词跑过 Claude/GPT (via Codex CLI)/Gemini,对比延迟、token、成本,并可选 LLM-judge 评分。

来源:CHANGELOG + README

技术架构

整体是「Markdown 控制层 + Bun 二进制执行层」两层架构。控制层是 30+ 个独立目录(office-hours/、plan-ceo-review/、qa/ 等),每个目录里一个 SKILL.md 描述工作流、AskUserQuestion 模板和共享 preamble;Claude Code 在用户调用 slash 命令时直接读取这些 Markdown,等于把「工程 SOP」以提示词形式喂给 LLM。执行层主要是 browse/、design/、make-pdf/ 三个 Bun 项目,每个都用 bun build --compile 出独立二进制;其中 browse 最复杂——CLI(cli.ts)通过 .gstack/browse.json 状态文件找到守护进程端口和 bearer token,HTTP POST 到 Bun.serve() 服务,服务再用 Playwright 走 CDP 控制 Chromium,命令分 READ/WRITE/META 三类做 dispatch;ref 系统、3 个 50K 容量的环形缓冲日志、5 层 prompt injection 防御都集中在这里。版本一致性靠 git rev-parse HEAD 写入二进制的 .version 文件,CLI 调用时若发现版本漂移就 kill 旧 server 重启。设计上有几个明显的「不做」:不上 WebSocket、不用 MCP、不做多用户、不做 Linux/Windows 系统密钥库解密——团队明确把这些标成 intentionally not here,工程取舍清晰,不是常见的「先做了再说」。整体偏过度工程的部分主要在测试基建(PTY harness、3 层 eval tier、跨模型 benchmark)和安全(双监听器、ML 分类器、canary token、salted hash 攻击日志),但考虑到产品本身就是给 AI 代理用的高权限工具,这些复杂度有合理依据,不算设计冗余。

来源:ARCHITECTURE.md + tree + package.json

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) playwright ^1.58.2(浏览器自动化)playwright ^1.… puppeteer-core ^24.40.0(备用 CDP 客户端)puppeteer-core… @huggingface/transformers ^4.1.0(本地 ONNX 推理:注入分类器)@huggingface/t… @ngrok/ngrok ^1.7.0(pair-agent 远程隧道)@ngrok/ngrok ^… @anthropic-ai/claude-agent-sdk 0.2.117(侧边栏子代理)@anthropic-ai/… Markdown 化的 23 个角色 slash 命令Markdown 化的 23 个… Bun 编译的常驻 Chromium 守护进程(browse)Bun 编译的常驻 Chrom… Ref 系统:用可访问性树代替 CSS 选择器Ref 系统:用可访问性… 5 层 Prompt Injection 防御5 层 Prompt Injecti… Pair-agent + 双监听器隧道Pair-agent + 双监听… SKILL.md 模板系统:文档与代码强一致SKILL.md 模板系统:… 跨 10 个 AI host 的统一 setup跨 10 个 AI host 的… 实时 PTY 测试 + 跨模型 benchmark实时 PTY 测试 + 跨模… gstack 项目本体 核心功能 关键依赖

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

技术栈

语言TypeScript(核心)+ Bash 脚本 + Markdown SKILL.md框架Bun runtime(>=1.0.0)+ Playwright + 自研 Bun.serve HTTP 服务
playwright ^1.58.2(浏览器自动化)puppeteer-core ^24.40.0(备用 CDP 客户端)@huggingface/transformers ^4.1.0(本地 …@ngrok/ngrok ^1.7.0(pair-agent 远程隧道)@anthropic-ai/claude-agent-sdk 0.2.1…marked ^18.0.2(Markdown 解析,make-pdf 用)
本地开发:bun run server + bun test;分发:bun build --compile 出 ~58MB 单二进制,无 node_modules;Chrome 扩展(manifest.json)+ 可选 Supabase(telemetry / community pulse + GBrain)+ ngrok 隧道;CI 用 GitHub Actions(actionlint / evals / version-gate / skill-docs gates)+ GitLab CI 双轨
来源:package.json + README + .github/workflows + tree

快速上手

# 方式一:Claude Code 内一键安装(推荐) # 在 Claude Code 里粘贴这段提示词,让 Claude 自己执行: Install gstack: run `git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup` then add a gstack section to CLAUDE.md ... # 方式二:直接在终端跑(适用于其它 AI 代理 host) git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/gstack cd ~/gstack && ./setup # 指定 host(codex / cursor / factory / openclaw / opencode / slate / kiro / hermes / gbrain) ./setup --host codex # 团队模式:仓库内自动同步给所有协作者 (cd ~/.claude/skills/gstack && ./setup --team) && \ ~/.claude/skills/gstack/bin/gstack-team-init required && \ git add .claude/ CLAUDE.md && \ git commit -m 'require gstack for AI-assisted work' # 卸载 ~/.claude/skills/gstack/bin/gstack-uninstall # 依赖:Claude Code、Git、Bun >= 1.0、Node.js(仅 Windows 需要)
来源:README

使用场景

1. 个人开发者 / 独立创业者想用 Claude Code 提高产出但缺一套「想 → 评估 → 设计 → 写 → 审 → 测 → 发布」的固化流程,gstack 直接给出 23 个角色 slash 命令把 SOP 写死。2. 技术 Lead 或 Staff Engineer 在团队里推 AI 辅助开发,需要每个 PR 都过 review/qa/cso,gstack 的 ship、land-and-deploy、canary 提供 PR 级强制审查与上线后监控。3. 多项目并行的 AI 重度用户配合 Conductor 等多会话工具同时跑 10-15 个 sprint 时,gstack 的角色化命令避免 10 个 agent 变成 10 个混乱来源。4. 跨 AI 工具用户(同时用 Claude Code、Codex CLI、Cursor、OpenClaw 等)希望同一套工作流跨工具复用,gstack 通过 hosts/ 系统把 skill 软链接到各自的 skill 目录。私有化 / 本地部署场景:所有逻辑在本地跑,唯一可选的远程依赖是 Supabase(仅 telemetry,默认关闭)和 ngrok 隧道(仅 pair-agent 远程协作)。

来源:README + ARCHITECTURE

优势与局限

优势

  • 工作流颗粒度极细:23 个角色命令覆盖完整 sprint,命令之间用真实文档(design doc / 测试计划)做接力而不是临时上下文,复用性比一次性 prompt 工程强得多。
  • 真实可观测的浏览器自动化:browse 守护进程让 /qa 能在真实 SPA 里点击、截图、等待网络空闲;ref 系统用可访问性树而不是 CSS 选择器,绕过了大部分前端框架的反爬动态变化。
  • 纵深的安全设计:5 层 prompt injection 防御、双监听器架构、bearer token + scoped token、按 socket 物理隔离 ngrok 隧道,对一个高权限 AI 工具来说工程级别明显高于同类产品。
  • 文档与代码严格同步:SKILL.md 由 SKILL.md.tmpl + 源码生成器构建,CI 用 gen:skill-docs --dry-run 加 git diff --exit-code 阻止漂移,比纯手写文档可靠。
  • 测试基建很硬:基于 Bun PTY 直接驱动真实 claude 二进制的 E2E 测试、3 个 50K 环形缓冲日志、tool-budget 回归断言、跨模型 benchmark,体现出作者把「AI 写出来的代码也得通过工程纪律」作为底线。
  • MIT 全开源 + 多 host 支持:完全免费,10 个 AI 编码代理(Claude Code/Codex/Cursor/OpenClaw/Slate/Hermes/Kiro/Factory/OpenCode/GBrain)都能装,新增 host 只改一个 TS 配置文件。

局限

  • 可维护性:内容耦合于 Claude Code 行为——23 个 SKILL.md 大量依赖 Claude Code 当前的 AskUserQuestion 渲染、计划模式、Skill 加载机制,Anthropic 一旦调整这些行为,所有 skill 的语义可能集体失效,CHANGELOG 里 plan-ceo-review preamble 体积压缩 43% 等大规模回写就是这种压力的体现。
  • 可扩展性:跨 host 的兼容性是表面层——hosts/*.ts 主要做软链接路径与 skill 描述格式适配,但 Codex 的 Skill 校验规则、OpenClaw 的 ACP 协议、Cursor 的 prompt 注入位置都不一样,README 里专门提示遇到 Codex 报 Skipped loading skill(s) 时必须手动 git pull && setup --host codex,可见跨 host 隔阂没消除。
  • 可测试性:核心 skill 的语义验证仍贵——只有 3 个 gate-tier + 3 个 periodic-tier 的 PTY 测试覆盖关键路径,单次 periodic 跑一次 ~$3-$8 真实 LLM 调用,不可能每次 PR 都跑全;多数 SKILL.md 行为变动只能靠人工 evals。
  • 稳定性:Chromium 守护进程是单点——browser.on(disconnected) 后服务直接退出靠 CLI 重启,对长 QA 会话来说会丢失浏览器内 localStorage / 已登录状态;状态文件 .gstack/browse.json 用 mode 0o600 atomic write 但 Windows 上 PID 检测被作者明确标成 unreliable in Bun binaries,跨平台稳定性偏弱。
  • 性能:ML 分类器与 transformers 依赖——@huggingface/transformers v4 + onnxruntime-node 不能从 Bun compile 的临时解压目录加载(README/ARCHITECTURE 都明确写了),所以注入分类器只能跑在侧边栏 agent 进程里,CLI 二进制无法享受同等防护,安全能力在不同入口不一致。
  • 过度依赖单一作者:仓库由 garrytan 个人长期主导(README 里坦言 AI wrote most of it),CHANGELOG 频繁出现大规模重写(一次 -11.6K LoC 的 preamble 压缩),如果作者停手社区接管的复杂度会很高,新人贡献者要先理解整套 SKILL.md 模板系统的隐式约定。
  • 营销说辞过载:README 头部用大量篇幅强调「2026 年是 2013 年生产力的 810 倍」,会让部分理性读者对项目「工程严肃性 vs 个人品牌叙事」的比例产生疑虑——不过实际代码确实有料,阅读时需要把营销和工程分开看。
来源:ARCHITECTURE + CHANGELOG + tree + 综合分析

最新版本

VERSION 文件标注 1.15.0.0(2026-04-26),CHANGELOG 主题为「Real-PTY 测试基建」:新增 654 行 test/helpers/claude-pty-runner.ts 直接基于 Bun.spawn({terminal:}) 驱动真实 claude 二进制,新增 6 个真实 PTY E2E 测试(AskUserQuestion 格式合规、plan-design UI 检测、tool-budget 回归、plan-ceo 模式路由、ship 幂等性、autoplan 阶段链)+ 23 个单元测试;18 个 preamble 解析器整体压缩,每次 skill 调用减少 ~196K tokens(-25%),plan-ceo-review preamble 体积从 54KB 降到 31KB。GitHub Releases 接口返回空数组,作者通过 VERSION 文件 + CHANGELOG.md 管理版本,不走 GitHub Releases 流程。

来源:VERSION + CHANGELOG.md + GitHub Releases API

总结评价

gstack 不是又一个 Claude Code 包装器,它把「如何用 AI 高效写软件」这个问题做成了一条带审计、带回归、带跨模型对照的工程流水线。23 个角色命令的接力设计 + 一个工程级浏览器守护进程 + 五层 prompt injection 防御,在 AI 工程辅助类项目里是少见的硬核组合,作者把自己每天用的 SOP 直接 MIT 开源了。建议这样使用:已经在用 Claude Code 的开发者先装上跑 /office-hours + /review + /qa 三件套体验整套质感,再决定是否切换到 team 模式给整个仓库强制 gstack;多项目并行的 AI 重度用户配合 Conductor 把并行 sprint 数推到 10-15 个时收益最大;技术 Lead 想给团队推 AI 辅助开发的工程纪律,可以拿 ship/cso/canary 当 PR 检查器。哪些情况建议先别用:项目是一次性脚本或玩具 demo(流程开销大于收益);团队还没用 Claude Code(gstack 不能凭空替代基础工具);对作者营销话术敏感的人(README 头部生产力数字争议较大,但代码本身确实硬)。短期最值得关注的演进方向是测试基建从 6 个 PTY 测试扩展到全 skill 覆盖,以及 hosts/ 适配层从软链接走向真正的协议适配。

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

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