pstack-claude: Brings Cursor workflows to Claude Code and other agent harnesses
A Cursor pstack port for Claude Code and other agents, with poteto-mode routing and verification evidence.
GitHub michael-denyer/pstack-claude Updated 2026-11-03 Branch main Stars 3.8K Forks 347
TypeScript Agent workflows poteto-mode Claude Code TLA+ Lean

🧭 Decision Guide

Try it if you

  • You use Claude Code 2.1.292+ and want poteto-mode to route fixes, refactors, or investigations automatically.
    The README's “Install” and “Configure” sections require Claude Code 2.1.292+ and state that the SessionStart hook points the agent to poteto-mode.
  • Your issue involves concurrency bugs or invariants that tests cannot reach, and you need TLA+, Lean, or Kani workflows.
    The README introduction says /create-formal-verification-skill targets concurrency bugs and invariants, and lists TLA+, Lean, and Kani.
  • Your team switches between Codex, Pi, GitHub Copilot, and Muse and needs the same pstack skills.
    The README's “Install” section provides separate installation methods for Codex, Pi, GitHub Copilot, and Muse.
  • You want scripts to run locally and accept that content read by skills is sent to the model provider.
    The README's “Data handling” section says there is no server or telemetry, scripts run locally, and content read by skills is sent to the model provider.

Skip it if you

  • Your environment is older than Claude Code 2.1.292 and cannot meet the installation version listed in the README.
    The README's “Install” section explicitly says “Run in Claude Code 2.1.292 or later.”
  • You depend on plugin skill calls from Copilot 1.0.92 non-interactive copilot -p sessions.
    The README says that after Copilot 1.0.92 caches its computer-use experiment assignment, copilot -p lists no plugin skills and returns “Skill not found.”
  • You require OpenCode or Gemini CLI to route automatically to poteto-mode without naming it or adding a standing instruction.
    The README's “Configure” section says other harnesses have no hook and require requesting poteto-mode by name or adding a standing instruction.
  • Your organization prohibits sending session transcripts read by skills to a model provider.
    The README's “Data handling” section explicitly says that this content is sent to the model provider.

Requirements

  • Claude Code must be version 2.1.292 or later.
  • Codex requires trusting its hook through /hooks; Muse requires running muse plugins approve pstack.
  • The GitHub Copilot build has been tested on Copilot CLI 1.0.87 through 1.0.92.
  • OpenCode, Gemini CLI, Prime Agent, and skills-only Codex require using ~/.agents/skills/.
  • PR tools use GitHub CLI login; content read by skills is sent to the model provider.

First step (verbatim from README)

/plugin marketplace add michael-denyer/pstack-claude

Watch out

  • Claude Code does not auto-update third-party Marketplace installs; enable Enable auto-update in Marketplaces or run claude plugin update.
    The README's “Install” section states that third-party Marketplace auto-update is off by default and gives the manual update command.
  • Codex executes the routing hook only after the hook is trusted through /hooks.
    The README's “Configure” section says Codex runs the hook only after you trust it through /hooks.
  • Muse also requires muse plugins approve pstack; otherwise its SessionStart hook and agent definitions do not run.
    The Muse installation paragraph says these features run only after approval.
  • The shared-skills installation uses symlinks; updating requires running git pull in the clone and rerunning the for loop.
    The README's “Other harnesses” section gives the git pull and for-loop update process.

Alternatives

  • Cursor upstream pstack:Use it when you work directly in Cursor and want Lauren Tan's original Cursor skill stack rather than a port for other harnesses.
    The pstack description at the beginning of the README
  • agent-formal-verify:Use it when you need deeper formal-verification guidance than /create-formal-verification-skill, including TLA+ model checking, Lean proofs, and Kani for Rust.
    The formal-verification description at the beginning of the README

Not stated in the README

  • The specific model names, versions, and dependencies in the linked Models and dependencies section are not provided.
  • The README gives no workflow latency, token-consumption, or fix-success metrics.
  • The README does not specify exact compatibility versions for OpenCode, Gemini CLI, or Prime Agent.
  • The README does not provide the change scope between the five releases or release notes for 0.9.120.
  • The README does not describe maintenance ownership or response times for the 10 contributors.

💡 Deep Analysis

6
No I maintain code with concurrency bugs and state invariants that ordinary tests cannot cover. I want an agent to choose TLA+, Lean, or Kani and leave a repeatable project skill. Is pstack-claude suitable as a replacement for conventional testing?
For: A developer maintaining concurrency, state-machine, or protocol code who wants TLA+, Lean, or Kani to verify invariants beyond ordinary tests

No, not as a replacement for conventional testing. It is suitable for adding a formal-verification workflow for high-risk properties, not for proving that an entire system is defect-free.

  • /create-formal-verification-skill selects a riskiest property from the code, matches an appropriate tool, and leaves a project skill that later agents can rerun.
  • The README positions TLA+, Lean, and Kani for concurrency bugs and invariants that ordinary tests cannot reach.
  • The separate agent-formal-verify plugin provides TLA+ model checking, Lean proofs, and Kani for Rust, showing that formal verification is a specialized workflow rather than a general test framework.
  • Conclusions depend on property selection, model boundaries, tool support, and the correctness of the code abstraction; formal verification is not equivalent to proving the whole system bug-free.
  • README opening: “For concurrency bugs and invariants that tests cannot reach”
  • README opening: “/create-formal-verification-skill picks the riskiest property ... and leaves a project skill the next agent reruns”
  • README opening: “guided TLA+ model checking, Lean proofs, and Kani for Rust”
  • Project insight / usage limitations: “formal verification is not equivalent to proving the whole system bug-free”
Not stated in the README:The README does not say whether your specific language, concurrency model, and codebase size can be effectively abstracted by TLA+, Lean, or Kani.;It does not specify the model boundaries, proof coverage, or runtime produced by a generated verification skill.
Yes I maintain a project in Claude Code 2.1.292+ and want an agent to reproduce a search-filter bug, investigate it, implement the fix, and provide passing evidence. Is pstack-claude suitable?
For: An individual developer using Claude Code 2.1.292 or later who wants bug fixes to go through reproduction and regression verification

Yes. Claude Code is explicitly supported, and poteto-mode matches the requested bug-fixing flow of reproduction, investigation, implementation, and re-verification.

  • The README requires Claude Code 2.1.292 or later and provides a native marketplace installation path.
  • Cursor skill names are translated before installation, avoiding runtime mapping, extra tokens, and possible invocation mistakes.
  • The bug playbook uses how and why; if the fix crosses a function boundary, it brings in architect before implementation.
  • A SessionStart hook points the task to poteto-mode, but third-party marketplaces do not auto-update by default, so updates must be enabled or run manually.
  • Install / Claude Code: “Run in Claude Code 2.1.292 or later”
  • Built for Claude Code: “translates upstream's Cursor skills for Claude Code before installation”
  • Getting started: “it reproduces the failure, uses how and why to investigate, delegates the fix, then reruns the failing case”
  • Install / Claude Code: “auto-update off for third-party marketplaces”
/plugin marketplace add michael-denyer/pstack-claude
Not stated in the README:The README does not specify real-world latency or success rates for your particular test framework, build system, or model quota.;It does not state whether the SessionStart hook can conflict with your existing Claude Code plugins.
It depends I use Copilot CLI 1.0.87–1.0.92 and want the Copilot CLI and GitHub Copilot app to share `~/.copilot`. Our automation also calls non-interactive `copilot -p`. Is pstack suitable for immediate adoption?
For: A team member working with Copilot CLI 1.0.87–1.0.92 who needs the Copilot CLI and Copilot app to share pstack configuration

It depends. Interactive Copilot usage matches the documented support, but automation relying on copilot -p should not be assumed to work immediately.

  • The README says the plugin installs for both the Copilot CLI and Copilot app, which share ~/.copilot; a new session is required afterward.
  • Copilot CLI 1.0.87–1.0.92 is the tested range, and those versions normally pass routing-hook context into the session.
  • The README specifically reports that on 1.0.92, after the computer-use experiment assignment is cached, copilot -p may show no plugin skills and return Skill not found; interactive sessions, hooks, and agents remain unaffected.
  • Copilot ships without default pstack models, so the first skill requiring one runs setup-pstack to choose from account-listed models.
  • Install / GitHub Copilot: “This installs pstack for the Copilot CLI and the GitHub Copilot app, which share ~/.copilot”
  • Install / GitHub Copilot: “tested on Copilot CLI 1.0.87 through 1.0.92”
  • Install / GitHub Copilot: “copilot -p sessions list no plugin skills and a skill call returns ‘Skill not found’”
  • Install / GitHub Copilot: “Copilot ships no default pstack models”
copilot plugin marketplace add michael-denyer/pstack-claude
Not stated in the README:The README does not say whether Copilot CLI versions after 1.0.92 fix the `copilot -p` Skill not found issue.;It does not state whether the models listed by an account meet the reasoning needs of every pstack role or organizational compliance requirements.
Yes I use Muse and want `/poteto-mode`, but our team requires explicit approval of a plugin's SessionStart hook and agent definitions before they enter team sessions. Do pstack-claude's installation and session behavior fit this constraint?
For: A developer using Muse who requires explicit approval before a plugin's SessionStart hook and agent definitions enter team sessions

Yes. Muse separates plugin installation from approval of hooks and agent definitions, which matches an explicit-authorization requirement.

  • The README first requires cloning the repository and running muse plugins install ./plugins/pstack to install the native plugin bundle.
  • It then requires muse plugins approve pstack; Muse runs the SessionStart hook and agent definitions only after approval.
  • After starting a new session, skills can be invoked with /, for example /poteto-mode, and Muse lists user-invocable skills.
  • Automatic routing depends on approval status. After installation alone, you should not assume that poteto-mode will automatically take over at session start.
  • Install / Muse: “muse plugins install ./plugins/pstack”
  • Install / Muse: “muse plugins approve pstack”
  • Install / Muse: “Muse runs only after approval”
  • Install / Muse: “Invoke a skill with / (for example /poteto-mode)”
git clone https://github.com/michael-denyer/pstack-claude
Not stated in the README:The README does not say whether Muse approval can be scoped by project, user, or organization.;It does not describe ordering when the approved hook conflicts with an existing team SessionStart extension.
Yes I use the OpenCode CLI, which does not support a routing hook and can only read skills from `~/.agents/skills/`. Can I still use `poteto-mode`, and what will not happen automatically after installation?
For: A developer using OpenCode, Gemini CLI, or Prime Agent who can load skills only through the shared `~/.agents/skills/` directory

Yes, with a limitation: you get the shared-skill capabilities, but not automatic task routing through a routing hook.

  • The README lists OpenCode CLI, the OpenCode desktop app, Gemini CLI, and Prime Agent as supported shared-installation targets that read skills from ~/.agents/skills/.
  • It provides a complete command sequence to clone the repository, create the directory, and symlink each skill; updates require git pull in the clone and rerunning the link loop.
  • These harnesses have no routing hook, so you must explicitly request poteto-mode or add a standing instruction to the harness instruction file.
  • The symlinks depend on the local clone path; deleting or moving the clone breaks them. This fits users willing to manage the local skill directory, not users expecting a plugin to take over sessions automatically.
  • Other harnesses: “OpenCode ... Gemini CLI, Prime Agent ... read skills from ~/.agents/skills/”
  • Other harnesses: “These installs have no routing hook, so ask for poteto-mode by name or add a standing instruction”
  • Other harnesses: “To update, run git pull in the clone, then run the for loop again”
  • User experience / common pitfalls: “deleting the clone or changing the directory will make ... links fail”
git clone https://github.com/michael-denyer/pstack-claude
Not stated in the README:The README does not detail how slash commands, agent delegation, and model selection differ among OpenCode, Gemini CLI, and Prime Agent.;It does not specify precedence or collision behavior when a shared skill has the same name as an existing skill.
It depends I use the Codex CLI for fixes, planning, and PR maintenance, and want session start to route tasks automatically to `poteto-mode`. Our process requires explicit hook approval. Is this project suitable?
For: An engineer using the Codex CLI who needs unified workflows for fixes, planning, and PR maintenance after trusting hooks

It depends. It fits a Codex environment that accepts explicit /hooks trust, but not one that requires every session to work with zero approval.

  • The README provides Codex marketplace commands and lists playbooks for planning, PR maintenance, shipping, and longer projects.
  • Codex runs the routing hook only after it has been trusted through /hooks; without that step, automatic routing will not behave as intended.
  • poteto-mode accepts the user goal and selects a workflow, making it a common entry point for several engineering task types.
  • Code and session content still go to the configured model provider. The project has no server or telemetry, but that does not remove data-governance requirements in the Codex path.
  • Install / Codex: “codex plugin marketplace add michael-denyer/pstack-claude”
  • Configure: “Codex runs the hook only after you trust it through /hooks”
  • Getting started: “Other playbooks cover planning, features, refactoring, performance issues, investigations, prototypes, PR maintenance, shipping, and longer projects”
  • Data handling: “pstack has no server or telemetry”
codex plugin marketplace add michael-denyer/pstack-claude
Not stated in the README:The README does not specify a required Codex version or whether `/hooks` trust can be centrally managed by organizational policy.;It does not quantify the additional model calls or cost introduced by automatic routing compared with invoking a skill directly.

✨ Highlights

  • poteto-mode selects pstack workflows and reruns failing cases
  • create-formal-verification-skill supports TLA+, Lean, and Kani verification
  • Supports Claude Code, Codex, Pi, Copilot, and Muse
  • The project has 3,801 stars, 347 forks, and 10 contributors

🔧 Engineering

  • A SessionStart hook routes Claude Code tasks to poteto-mode
  • The bug workflow uses how and why investigations and returns failing and passing evidence
  • setup-pstack changes routing, model defaults, and per-role reasoning effort
  • There is no server or telemetry; scripts run locally and PR tools use GitHub CLI login

⚠️ Risks

  • Claude Code 2.1.292 or later is required for installation
  • On Copilot 1.0.92, copilot -p may report plugin skills as unavailable
  • Third-party Marketplace auto-update is disabled by default and must be enabled manually
  • OpenCode and Gemini CLI have no routing hook and require manually invoking poteto-mode

👥 For who?

  • Teams using Claude Code 2.1.292+ that want to reuse Cursor pstack
  • Developers needing TLA+, Lean, or Kani for invariants beyond test coverage
  • Multi-harness environments using Codex, Pi, Copilot, or Muse