pstack-claude is a free, open source version control & collaboration project written in JavaScript and released under MIT. It has 1,585 GitHub stars, 166 forks and 1 open issues, and was last pushed yesterday. On this registry it ranks #25 of 42 tracked projects in Version Control & Collaboration, with 5 head-to-head comparisons available.

What is pstack-claude?

pstack-claude is an MIT-licensed plugin port of Lauren Tan's opinionated Cursor pstack skill stack to Claude Code, Codex, Pi, GitHub Copilot, OpenCode, Gemini CLI, and Prime Agent, for developers who want rigorous, verified agent workflows outside Cursor.

What it is

pstack-claude is a JavaScript plugin that translates the skills and primitives of Lauren Tan's pstack — originally a Cursor skill stack — into other agent harnesses. It tracks upstream and also carries named policy forks, each declared in tools/forks.json. The centrepiece is poteto-mode: you tell it your goal and it invokes the correct workflow for the task, keeping code concise, simple and verified. It installs as a plugin marketplace package for Claude Code, Codex and Copilot, as a Pi extension, or as a shared skills-only install for other harnesses.

The concrete problem it solves is that agentic coding tools produce inconsistent, unverified results when a developer simply asks for a change. With poteto-mode, a bug report becomes a defined sequence: the agent reproduces the failure, uses the how and why skills to investigate, delegates the fix, then reruns the failing case, and if the fix crosses a function boundary it brings in architect before implementation. The output is the fix plus failing and passing evidence. Other playbooks cover planning, features, refactoring, performance issues, investigations, prototypes, PR maintenance, shipping, and longer projects, including project-specific customisations.

Key capabilities

  • A routing hook installed on Claude Code, Codex and GitHub Copilot that dispatches each request to the right workflow; Codex asks you to trust it through /hooks before it runs, and on Pi the extension injects the same routing instruction.
  • Delegation to specialised agents such as architect, arena, and swarm, dispatched in Claude Code through the plugin's pstack:effort- or pstack:poteto-agent- agents.
  • The setup-pstack skill, which picks default models from those your account lists, sets a reasoning effort per role (for example arena runners: opus @xhigh, fable @max), and can turn automatic routing off.
  • Verification steps built into the workflows — interrogate, tests, and measurements — so a task finishes with failing and passing evidence rather than an unverified diff.
  • A Pi extension that adds the subagent, question, and wake-up tools the skills use, plus /loop, with skills invoked via /skill: .
  • Named policy forks declared in tools/forks.json that track upstream while pinning this project's own policies.
  • A skills-only installation path documented in docs/reference.md for Prime Agent, OpenCode, Gemini CLI, or any harness.

Who uses it and how

  • Claude Code users run /plugin marketplace add michael-denyer/pstack-claude and /plugin install pstack@pstack-claude, then work through /pstack:setup-pstack and the playbooks.
  • Codex users install from the terminal and accept the routing hook through /hooks before it runs.
  • Pi users install via pi install git:github.com/michael-denyer/pstack-claude, gaining the extension's tools alongside the skills.
  • Copilot users share ~/.copilot between the Copilot CLI and the GitHub Copilot app, with the build tested on Copilot CLI 1.0.87 through 1.0.92.
  • Teams using Prime Agent, OpenCode, or Gemini CLI take the shared skills-only install for their harness.

Getting started

Run /plugin marketplace add michael-denyer/pstack-claude followed by /plugin install pstack@pstack-claude inside Claude Code, then open a session and ask poteto-mode to fix something.

How it compares

pstack-claude is a port rather than a fresh design: the original remains Lauren Tan's pstack inside Cursor's plugin repository, and this project exists to carry those same primitives to harnesses Cursor does not cover. For the gaps it does not fill — concurrency bugs and invariants that tests cannot reach — the facts point to a separate companion plugin, agent-formal-verify, which adds TLA+ model checking and Lean proofs.

When to use it — and when not

A self-hoster here operates no database, storage, or SMTP; the overhead is plugin configuration — trusting the routing hook on Codex, running setup-pstack to choose models and reasoning effort, and starting a new session after install. Do not pick it if you need non-interactive copilot -p sessions: on Copilot CLI 1.0.92 those list no plugin skills and a skill call returns "Skill not found", though interactive sessions, hooks, and agents are unaffected, and a later CLI version may keep only one plugin's context unless you add the standing instruction to ~/.copilot/copilot-instructions.md.

project readme (upstream, from github) — read inline

pstack

Buy Me A Coffee

Lauren Tan's pstack is an opinionated Cursor skill stack that improves agent outcomes. This is a port for Claude Code, Codex, Pi, GitHub Copilot and other agent harnesses. It tracks upstream and also carries named policy forks, each declared in tools/forks.json.

Tell poteto-mode your goal and it will invoke the correct workflow for the task. It keeps your code concise, simple and verified.

For concurrency bugs and invariants that tests cannot reach, see the separate agent-formal-verify plugin, which adds TLA+ model checking and Lean proofs.

Install

Claude Code

Run in Claude Code:

/plugin marketplace add michael-denyer/pstack-claude
/plugin install pstack@pstack-claude

Codex

Run in your terminal:

codex plugin marketplace add michael-denyer/pstack-claude
codex plugin add pstack@pstack-claude

Pi

Run in your terminal:

pi install git:github.com/michael-denyer/pstack-claude

The package loads the skills and the pstack Pi extension, which adds the subagent, question, and wake-up tools the skills use, plus /loop and the routing instruction. Invoke a skill with /skill:.

GitHub Copilot

Run in your terminal:

copilot plugin marketplace add michael-denyer/pstack-claude
copilot plugin install pstack@pstack-claude

This installs pstack for the Copilot CLI and the GitHub Copilot app, which share ~/.copilot. Start a new session afterwards. Copilot ships no default pstack models, so the first skill that needs one runs setup-pstack to pick from the models your account lists, and later sessions reuse that choice.

The Copilot build is tested on Copilot CLI 1.0.87 through 1.0.92. On those versions the routing hook's context reaches the session alongside other plugins' session-start context. If a later version keeps only one plugin's context, setup-pstack offers a standing instruction for ~/.copilot/copilot-instructions.md instead. On 1.0.92, once the CLI caches its computer-use experiment assignment, copilot -p sessions list no plugin skills and a skill call returns "Skill not found". Interactive sessions, the hooks, and the agents are unaffected.

Run setup-pstack to change model defaults, set a reasoning effort per role (for example arena runners: opus @xhigh, fable @max, which Claude Code dispatches through the plugin's pstack:effort- or pstack:poteto-agent- agents; roles without a level keep the session's effort unless the sheet's default effort line names one), or turn automatic routing off. The plugin installs the routing hook on Claude Code, Codex, and GitHub Copilot; Codex asks you to trust it through /hooks before it runs. On Pi the extension injects the same routing instruction. In Claude Code and the Copilot CLI, use /pstack:setup-pstack.

For Prime Agent, OpenCode, Gemini CLI, or skills-only installs for any harness, see shared installation.

Getting started

Use poteto-mode to fix the search filter resetting when I change pages.

For a bug, it reproduces the failure, uses how and why to investigate, delegates the fix, then reruns the failing case. If the fix crosses a function boundary, it brings in architect before implementation. You receive the fix and the failing and passing evidence.

Other playbooks cover planning, features, refactoring, performance issues, investigations, prototypes, PR maintenance, shipping, and longer projects.

poteto-mode on Claude Code, Codex, and Pi turns a request into verified work. Choose a playbook, plan and delegate with architect, arena, or swarm, then review and verify with interrogate, tests, and measurements. Project playbooks customize the workflow, and setup-pstack configures the model and reasoning effort per role. Supporting skills include how, why, and unslop.

Details

Data handling

pstack has no server or telemetry. Anything its skills ask your agent to read, including session transcripts, goes to your model provider. Scripts run locally, and PR tools use your GitHub CLI login.

Contributing

Thanks for helping make this port better. Bug reports, documentation fixes, and runtime improvements are welcome. See CONTRIBUTING.md for the checks and where your change belongs. Report vulnerabilities privately as described in SECURITY.md.

To support maintenance of this port, buy the maintainer a coffee.

License

This port, including its modifications and additions, is also MIT-licensed, © 2026 Michael Denyer. Original pstack © 2026 Lauren Tan; imported cursor-team-kit skills © 2026 Cursor. See LICENSE-cursor-team-kit and NOTICE.md.

Frequently asked questions

Is pstack-claude free to use?

pstack-claude is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does pstack-claude do?

Claude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Poteto's pstack. Rigorous agent workflows with Cursor primitives translated for o

What is pstack-claude written in?

pstack-claude is primarily written in JavaScript. Its source is publicly available at https://github.com/michael-denyer/pstack-claude, and it has 1,585 GitHub stars.