gstack turns Codex from one generic assistant into a team of specialists you can summon on demand.
Eight opinionated workflow skills for Codex. Plan review, code review, shipping, browser automation, QA testing, cookie import, and retrospectives, all packaged as installable skills with a fast headless browser.
| Skill | Mode | What it does |
|---|---|---|
plan-ceo-review |
Founder / CEO | Rethink the problem. Find the 10-star product hiding inside the request. |
plan-eng-review |
Eng manager / tech lead | Lock in architecture, data flow, diagrams, edge cases, and tests. |
review |
Paranoid staff engineer | Find the bugs that pass CI but still explode in production. |
ship |
Release engineer | Sync main, run tests, push, and open a PR for ready branches. |
browse |
QA engineer | Give the agent eyes. It logs in, clicks through your app, and captures evidence. |
qa |
QA lead | Systematic QA testing with reports, health scores, screenshots, and regression tracking. |
setup-browser-cookies |
Session manager | Import cookies from your real browser into the headless session. |
retro |
Engineering manager | Team-aware retrospective with work patterns, praise, and growth areas. |
Without gstack:
- the agent takes your request literally
- review depth varies from run to run
- shipping turns into a long back-and-forth
- browser QA is still manual
- the model can write code but cannot see your app
With gstack:
- you can ask for founder taste, engineering rigor, or release discipline explicitly
- browser QA becomes scriptable and repeatable
- the same repo works for global and project-local Codex installs
- each workspace gets its own isolated browser session
Requirements: Codex, Git, and Bun v1.0+. The browse runtime compiles a native binary and works on macOS and Linux (x64 and arm64).
git clone https://github.com/garrytan/gstack.git ~/.codex/skills/gstack
cd ~/.codex/skills/gstack
./setupThen add a gstack section to your global AGENTS.md:
## gstack
- Prefer the `browse` skill from gstack for browser QA and dogfooding.
- Available skills: `plan-ceo-review`, `plan-eng-review`, `review`, `ship`, `browse`, `qa`, `setup-browser-cookies`, `retro`.
- If a gstack skill is missing or stale, run `cd ~/.codex/skills/gstack && ./setup`.mkdir -p .codex/skills
cp -Rf ~/.codex/skills/gstack .codex/skills/gstack
rm -rf .codex/skills/gstack/.git
cd .codex/skills/gstack
./setupThen add a project-level gstack section to AGENTS.md:
## gstack
- Prefer the `browse` skill from `.codex/skills/gstack` for browser QA and dogfooding.
- Available skills: `plan-ceo-review`, `plan-eng-review`, `review`, `ship`, `browse`, `qa`, `setup-browser-cookies`, `retro`.
- If a gstack skill is missing or stale, run `cd .codex/skills/gstack && ./setup`.Project-local installs commit real files to the repo, not a submodule. Teammates only need to run cd .codex/skills/gstack && ./setup once to build the browser binary and register sibling skill links.
- skill files in
~/.codex/skills/gstack/or./.codex/skills/gstack/ - sibling skill links such as
~/.codex/skills/browsepointing into the gstack directory browse/dist/browsecompiled binarynode_modules/for the browser runtime.context/retros/snapshots whenretrostores historical data in a project
Everything lives under .codex/. Nothing touches your global PATH or runs in the background permanently.
The simplest way to invoke gstack is to mention the skill by name in your request:
Use plan-ceo-review on this feature idea.
Use review on my current branch.
Use browse to test the signup flow on staging.
Use qa in quick mode against http://localhost:3000.
Typical flow:
- Use
plan-ceo-reviewto challenge the product shape. - Use
plan-eng-reviewto lock the buildable architecture. - Implement the change.
- Use
reviewto catch structural issues. - Use
shipwhen the branch is ready. - Use
browseorqato verify the live experience.
browse is the differentiator. It gives the agent a persistent headless Chromium session with:
- navigation and interaction commands
- accessibility snapshots with reusable refs
- console and network inspection
- screenshots and responsive captures
- cookie import from real browsers
That means the agent can verify a live flow instead of guessing from code.
See BROWSER.md for the full command reference and internals.
gstack works well in one Codex session. It scales even better when you run multiple isolated sessions or worktrees in parallel.
Conductor pairs especially well with this setup. Each workspace gets its own browser instance, cookies, tabs, and logs, so one session can run qa while another uses review or implements a feature.
bun install
bun test
bun run dev goto https://example.com
bun run buildThe browser CLI sources from browse/src/ and compiles to browse/dist/browse.
A skill is not showing up in Codex
Run:
cd ~/.codex/skills/gstack && ./setupFor project installs:
cd .codex/skills/gstack && ./setupbrowse cannot find the binary
Run:
cd ~/.codex/skills/gstack && bun install && bun run buildIf Bun is installed outside your shell PATH, call it explicitly with ~/.bun/bin/bun.
Refresh a project-local copy from the global install
for s in browse plan-ceo-review plan-eng-review review ship retro qa setup-browser-cookies; do rm -f .codex/skills/$s; done
rm -rf .codex/skills/gstack
cp -Rf ~/.codex/skills/gstack .codex/skills/gstack
rm -rf .codex/skills/gstack/.git
cd .codex/skills/gstack
./setupUpdate gstack
cd ~/.codex/skills/gstack
git fetch origin
git reset --hard origin/main
./setupIf the current project also vendors gstack, refresh the project copy after updating the global install.
Uninstall gstack
for s in browse plan-ceo-review plan-eng-review review ship retro qa setup-browser-cookies; do rm -f ~/.codex/skills/$s; done
rm -rf ~/.codex/skills/gstackIf a project also vendors gstack, remove .codex/skills/gstack and the matching AGENTS.md section from that repo.