██████╗ ███████╗████████╗ █████╗ ██████╗██╗ ██╗
██╔══██╗██╔════╝╚══██╔══╝██╔══██╗██╔════╝██║ ██╔╝
██████╔╝███████╗ ██║ ███████║██║ █████╔╝
██╔═══╝ ╚════██║ ██║ ██╔══██║██║ ██╔═██╗
██║ ███████║ ██║ ██║ ██║╚██████╗██║ ██╗
╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
This is a native plugin for Oh-My-Pi but has support for Pi and Claude Code.
All skills follow the do-* namespace, from my Do-Skills repo. You might hate it 😬.
pstack is a Cursor plugin by Lauren Tan (@poteto). See Curor's repo for more info.
- The pstack guide — original numbered product tutorial (setup through recipes, plus images).
pi skill use skills/do-*. omp skills are /skill:do-…. claude skills are /pstack:do-*. /poteto-mode stays unprefixed on omp, becuase it is a native plugin.
pstack also ships a dormant benny automation pack. Benny triages Slack issue reports, then reproduces and fixes confirmed bugs with real UI evidence. Its files are not slash skills. Sibling skills/ at the package root is the only skill tree; do not add a second one.
Setup starts at automations/benny/FOR_AGENTS.md. That README records the Cursor Automations host vs what omp can run.
GitHub install. No clone required.
omp plugin marketplace add edheltzel/Do-Pstack
omp plugin install pstack@pstack
This checkout: omp plugin link ./
pi install git:github.com/edheltzel/Do-Pstack
This checkout: pi install ./
claude plugin marketplace add /absolute/path/to/Do-Pstack
claude plugin install pstack@pstack
claude plugin marketplace add edheltzel/Do-Pstack
claude plugin install pstack@pstack
This session only: claude --plugin-dir ./
Claude slash skills are namespaced: /pstack:do-how, /pstack:do-poteto-mode. Validate the layout with claude plugin validate .. Sticky /poteto-mode is omp-only; on Claude run /pstack:do-poteto-mode.
- On omp:
/poteto-mode— enable sticky Poteto Mode for this conversation. Optional task arguments are passed through; this also sends/skill:do-poteto-mode. - Do your thing as usual. Just with pstack's flow and skills
/poteto-modeis persistent in omp with you execute/newor when you resume a conversation.
/poteto-mode off(aliases:disable,stop)
/poteto-mode is off by default
please note: omp's TUI shows 🍠 poteto: ✓ on when enabled.
| Command | What it does |
|---|---|
/poteto-mode |
omp factory: enable sticky Poteto Mode for this conversation. Also sends /skill:do-poteto-mode. |
/poteto-mode off |
Disable this omp conversation. Aliases: disable, stop. |
That is the live omp extension command. It stays unprefixed. There is no worktree command. No hooks/ tree. No src/ tree. No Cursor marketplace APIs. Do not ship commands/poteto-mode.md.
- On omp, enable sends
/skill:do-poteto-mode. The/skill:do-poteto-modeinput hook also persists enabled. - Stored as a custom
pstack-modeentry on that conversation’s session jsonl. Last{enabled}wins. Missing means off. session_startre-reads the jsonl.new_session//newstarts off. Resume of an on conversation stays on.- When on, a prompt needle prepends “Pstack Poteto Mode is on…”
- The TUI status reads
🍠 poteto: ✓ onwhen on. - Off aliases:
off,disable,stop.
Official skills come from the Cursor pstack folder in cursor/plugins:
npm run sync
Same command: node scripts/pstack.mjs sync.
Dry-run: npm run sync -- --dry-run.
That pulls pstack/skills/<name> from cursor/plugins into the existing skills/do-* tree (YAML name gets the do- prefix). It does not create a second skill tree or install into agent skill directories.
I just follow omp's license but i think I need to do that? omp is also MIT (license).