gstack turns Claude Code (and other coding agents) into a virtual engineering team: a CEO who rethinks the product, an eng manager who locks architecture, a designer who catches AI slop, a reviewer who finds production bugs, a QA lead who opens a real browser, a security officer who runs OWASP + STRIDE audits, and a release engineer who ships the PR. All slash commands, all Markdown, all free, MIT license.
I'm Garry Tan, President & CEO of Y Combinator. This is the open source software factory I use every day, and I'm sharing it because these tools should be available to everyone. The story, the productivity numbers and how I run ten sprints at once are in Why gstack.
Fork it. Improve it. Make it yours. And if you want to hate on free open source software — you're welcome to, but I'd rather you just try it first.
Who this is for: - Founders and CEOs — especially technical ones who still want to ship - First-time Claude Code users — structured roles instead of a blank prompt - Tech leads and staff engineers — rigorous review, QA, and release automation on every PR
/office-hours and describe what you're building. It pushes back on your framing and writes a design doc the other skills read./review on any branch with changes. It finds the bugs that pass CI but break in production, and fixes the obvious ones./qa on your staging URL, or on an isolated local API, CLI, job or webhook. It opens a real browser, reproduces bugs and fixes them.Stop there. You'll know if this is for you. When you want the whole sprint, /autoplan reviews a plan end to end and /ship runs tests, review and the PR.
Requirements: Claude Code, Git, Bun v1.4.2+ (the tested version; setup refuses Bun older than 1.3.3, which would let compiled tools read a project's .env), and Node.js on Windows. Recommended on macOS: the Aside browser (macOS 15+), which the browser skills, /make-pdf and /diagram drive first with your real logged-in sessions; without it, ./setup builds gstack's own bundled browser. /cso needs a native toolchain as well; setup says so and leaves it unavailable when the toolchain is absent. Timing, the /cso prerequisites and the hooks setup registers: docs/install.md.
Open Claude Code and paste this. Claude does the rest.
Install gstack: run
git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setupthen add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing and never use mcp__claude-in-chrome__* tools. Claude Code lists the installed skills itself, so the section needs no skill list. Then ask the user if they also want to add gstack to the current project so teammates get it.
From inside your repo, paste this. Switches you to team mode, bootstraps the repo so teammates get gstack automatically, and commits the change:
(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"
No vendored files in your repo, no version drift, no manual upgrades. Every Claude Code session starts with a fast auto-update check (throttled to once/hour, network-failure-safe, completely silent). Team mode follows the stable channel: the twice-weekly tagged release (Monday and Thursday, at most once every 72 hours, plus verified security and regression fixes), not every merge to main. gstack-config set update_channel main follows every merge instead; see docs/releases.md.
Swap required for optional if you'd rather nudge teammates than block them.
Team mode's required hook runs on Node.js, so every teammate needs Node.js on PATH (details). To remove gstack later: docs/uninstall.md.
gstack runs on more agents than Claude. Bare ./setup installs for Claude
Code only (run inside OpenClaw, Hermes or a Dot, it also registers gstack's
skills with that harness: docs/hosts.md).
Pick another agent with --host <name>, or install for every agent setup
detects on this machine with --host auto:
git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/gstack
cd ~/gstack && ./setup --host auto # or: ./setup --host codex
./setup --status # one row per install: host, tier, scope, version, path
An explicit --host X installs for X only and never changes another agent's
install. /gstack-upgrade refreshes every install it registered, one row per
host, and says which ones failed.
Tiers: full is certified by a real workflow run (see Certify your host); experimental installs and passes the conformance tests but has no certification run yet; instruction-only installs nothing: setup prints what to copy.
| Agent | Tier | Install | First invocation | Safety skills | Outside review needs | Repair |
|---|---|---|---|---|---|---|
| Claude Code | full | --host claude (default) |
/office-hours |
enforced (hooks block) | Codex CLI, signed in | ./setup --host claude |
| OpenAI Codex CLI | experimental | --host codex → ${CODEX_HOME:-~/.codex}/skills/gstack-*/ |
ask for gstack-office-hours |
advisory, not blocked | Claude Code CLI, signed in | ./setup --host codex |
| OpenCode | experimental | --host opencode → ~/.config/opencode/skills/gstack-*/ + /gstack-* commands |
/gstack-office-hours |
advisory, not blocked | Codex CLI, signed in | ./setup --host opencode |
| Cursor | experimental | --host cursor → ~/.cursor/skills/gstack-*/ |
ask for gstack-office-hours |
advisory, not blocked | Codex CLI, signed in | ./setup --host cursor |
| Factory Droid | experimental | --host factory → ~/.factory/skills/gstack-*/ |
ask for gstack-office-hours |
advisory, not blocked | Codex CLI, signed in | ./setup --host factory |
| Kiro | experimental | --host kiro → ~/.kiro/skills/gstack-*/ |
ask for gstack-office-hours |
advisory, not blocked | Codex CLI, signed in | ./setup --host kiro |
| GitHub Copilot CLI | experimental | --host copilot → ~/.copilot/skills/gstack-*/ |
/gstack-office-hours |
advisory, not blocked | Codex CLI, signed in | ./setup --host copilot |
| Antigravity CLI | experimental | --host agy (or --host antigravity) → ~/.gemini/antigravity-cli/skills/gstack-*/ |
/gstack-office-hours |
advisory, not blocked | Codex CLI, signed in | ./setup --host agy |
| Slate | instruction-only | --host slate (points at the Claude install; Slate reads .claude/skills) |
/office-hours via the Claude install |
advisory, not blocked | — | ./setup --host claude |
| OpenClaw | experimental | --host openclaw (five task skills and one gstack router skill in OpenClaw's skills folder; automatic when setup runs inside OpenClaw; ACP route in docs/OPENCLAW.md) |
ask for the task; the agent opens the matching task skill or the gstack router |
advisory, not blocked | — | ./setup --host openclaw |
| Hermes | experimental | --host hermes (every skill in $HERMES_HOME/skills/gstack; automatic when setup runs inside Hermes) |
ask for the task, or /gstack-review |
advisory, not blocked | — | ./setup --host hermes |
| GBrain (mod) | instruction-only | --host gbrain (brain-aware variants ship from the GBrain repo) |
— | advisory, not blocked | — | — |
Per-host notes (agent harnesses, Copilot, Antigravity, OpenClaw and ClawHub, the Codex behavioral profile and model tiers, outside-review providers, the design binary's models) are in docs/hosts.md. Any rules-reading agent (Zed, Amp, Jules) can use the 2KB agents digest with no install. Adding a host: docs/ADDING_A_HOST.md.
You: I want to build a daily briefing app for my calendar.
You: /office-hours
Claude: [asks about the pain — specific examples, not hypotheticals]
You: Multiple Google calendars, events with stale info, wrong locations.
Prep takes forever and the results aren't good enough...
Claude: I'm going to push back on the framing. You said "daily briefing
app." But what you actually described is a personal chief of
staff AI.
[extracts 5 capabilities you didn't realize you were describing]
[challenges 4 premises — you agree, disagree, or adjust]
[generates 3 implementation approaches with effort estimates]
RECOMMENDATION: Ship the narrowest wedge tomorrow, learn from
real usage. The full vision is a 3-month project — start with
the daily briefing that actually works.
[writes design doc → feeds into downstream skills automatically]
You: /plan-ceo-review
[reads the design doc, challenges scope, runs 10-section review]
You: /plan-eng-review
[ASCII diagrams for data flow, state machines, error paths]
[test matrix, failure modes, security concerns]
You: Approve plan. Exit plan mode.
[writes 2,400 lines across 11 files. ~8 minutes.]
You: /review
[AUTO-FIXED] 2 issues. [ASK] Race condition → you approve fix.
You: /qa https://staging.myapp.com
[opens real browser, clicks through flows, finds and fixes a bug]
You: /ship
Tests: 42 → 51 (+9 new). PR: github.com/you/app/pull/42
You said "daily briefing app." The agent said "you're building a chief of staff AI" — because it listened to your pain, not your feature request. Eight commands, end to end. That is not a copilot. That is a team.
gstack is a process, not a collection of tools. The skills run in the order a sprint
| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|