fstack installs natively in Claude Code, GitHub Copilot, Codex, Pi, and oh-my-pi, and through the skills CLI in any other agent. Start a new session after installing so your agent loads the skills.
/plugin install fstack --marketplace mastro993/fstack
On Claude Code older than 2.1.275
/plugin marketplace add mastro993/fstack
/plugin install fstack@fedemas
In Copilot CLI:
copilot plugin marketplace add mastro993/fstack
copilot plugin install fstack@fedemasIn VS Code, turn on the chat.plugins.enabled setting. VS Code then loads plugins installed with Copilot CLI; without the CLI, run Chat: Install Plugin from Source and enter https://github.com/mastro993/fstack.
codex plugin marketplace add mastro993/fstack
codex plugin add fstack@fedemaspi install git:github.com/mastro993/fstackAdd -l to install for the current project only. Pi ships without subagents, which ux-stress-test needs, so add a subagent package from the Pi package gallery before you run it.
omp plugin marketplace add mastro993/fstack
omp plugin install fstack@fedemasAdd --scope project to install for the current project only.
The skills CLI installs the skills into Cursor, OpenCode, Gemini CLI, Windsurf, and many more agents:
npx skills add mastro993/fstackIt asks which skills and agents you want, and installs into the current project unless you add -g. To skip the questions, name them:
npx skills add mastro993/fstack --skill pr-babysit --agent cursor -g -y| Skill | What it does |
|---|---|
| pr-babysit | Watches a pull request through CI and review. Your agent fixes failing checks, addresses or answers review comments (bots included), pushes, re-requests review, tells you when the PR is ready to merge, and keeps watching until it lands. |
| ux-stress-test | Five first-time-user personas try to reach first success in your web app in a real browser. Your agent ranks the friction they hit, fixes what you choose, and reruns the personas blind to prove the fixes, or opens issues for later. |
Your agent waits on GitHub without burning turns and reacts as things happen:
- π΄ Failing check: reads the failed log once, fixes the root cause, reruns infra flakes once, and stops after two failed attempts.
- π¬ Review comment: fixes what's clear, answers questions from the code, checks bot claims before acting on them, and asks you about design calls or pushback.
- π After a push: replies on each thread with the fix commit, re-requests review, and leaves resolving threads to the reviewer.
- π Base moved: when another PR lands and leaves this one conflicting or behind, merges the base in (never rebases or force-pushes), resolves the conflict, and asks you when both sides disagree.
- β Ready: tells you, then keeps watching until the PR is merged or closed, or you say stop. It never merges unless you asked.
Ask only to be told ("let me know when CI finishes") and it reports without touching anything.
Needs: an authenticated gh CLI, git, python3, and a checkout of the PR's branch to push fixes from.
Try it: ask your agent to "babysit PR #42" or "watch my PR and fix whatever CI or review throws at it".
The personas each break your app in their own way:
- β±οΈ Impatient: skims, clicks the biggest button, and quits at the first error.
- π€¨ Skeptic: wants to know what they're signing up for before handing over anything.
- π± Mobile: small screen, touch only, slow 3G.
- π Non-native: reads your copy literally.
- π¨ Breaker: submits junk, double-clicks, and goes back mid-flow.
Needs: subagents, Chrome, browser-use (uv tool install browser-use) or playwright-cli as a fallback, and the app's source code.
Try it: ask your agent to "stress-test the signup flow" or "run a UX stress test before launch".
MIT Β© Federico Mastrini
