This repository is a GitHub Copilot plugin for the Copilot app and Copilot CLI. The repo root is the plugin.
It packages the Copilot parent from open-pstack. Skills stay shared. Copilot-only agents live in agents/ as *.agent.md files. Claude agents/*.md files are not here. Copilot loads every *.md and *.agent.md in the plugin agents directory.
Do not copy skills/ into ~/.agents/skills/ or ~/.copilot/skills/. Copilot loads plugin skills last. A home skill with the same name: silently wins, and the plugin copy is dropped.
The Copilot app and Copilot CLI share ~/.copilot/settings.json. Install once.
copilot plugin marketplace add balazstasi/pstack-copilot
copilot plugin install pstack@pstack-copilotThat writes extraKnownMarketplaces.pstack-copilot and enabledPlugins["pstack@pstack-copilot"].
In the Copilot app: Customize → Plugins, add marketplace balazstasi/pstack-copilot, then install pstack.
From a local clone instead:
copilot plugin marketplace add "$(pwd)"
copilot plugin install pstack@pstack-copilotIf an older pstack@open-pstack marketplace is still enabled, disable or uninstall it so two pstacks do not load:
copilot plugin uninstall pstack@open-pstack
copilot plugin marketplace remove open-pstackConfirm the loaded path:
copilot plugin listThe enabled plugin must load from this repo, not from ~/Projects/open-pstack.
Copilot skill order is first-found-wins. Plugin skills lose to ~/.agents/skills/ and ~/.copilot/skills/. If /how or /poteto-mode still looks like Cursor (composer models, disable-model-invocation), a home copy is winning.
Move colliding names out of the way. Keep the backup so Cursor or Grok can still use them:
mkdir -p ~/.agents/skills.bak-pstack-copilot
# example; move every name that also exists in this repo's skills/
mv ~/.agents/skills/poteto-mode ~/.agents/skills.bak-pstack-copilot/Then copilot skill list. pstack names should come from the plugin, not Custom skills.
Pick poteto-agent in the Copilot app agent picker (or type /agent). That file is sticky for the session. It loads poteto-mode before any work. There is no extra CLI latch.
Copilot CLI uses the plugin id:
copilot --agent pstack:poteto-agentpstack-terra and the other pstack-<stem> files are spawn lanes for task(). Do not pick them as the session agent.
A sessionStart hook submits /poteto-mode on a new default-agent session and injects a short mandate as additionalContext (resume and -p included). Copilot may ask you to trust that hook. The prompt hook does not fire on resume or -p. The same hook links every agents/*.agent.md into ~/.copilot/agents/ so the Copilot app picker and task() see file stems. It does not replace a regular file of the same name.
Before a panel, set these in ~/.copilot/settings.json so concurrency is at least the configured panel size (3 by default):
{
"subagents": {
"maxConcurrency": 3,
"maxDepth": 2
}
}Values below the panel size collapse arena, architect, and interrogate.
In Copilot CLI or the Copilot app:
/setup-pstack
Setup writes ~/.copilot/pstack-models.md and a bounded <!-- pstack:models:begin --> block at the end of ~/.copilot/copilot-instructions.md. It does not fold pstack into a repo-gated section of that file.
Copilot first-run defaults:
- feature / refactoring / how explorer →
copilot:gpt-5.6-luna@xhigh - swarm workers →
copilot:gpt-6-astra@low - judgment and prose →
copilot:grok-4.6@high - hardest / how explainer →
copilot:gpt-5.6-terra@high - bug-fix / perf / hillclimb →
copilot:gpt-5.6-sol@medium - panels → terra, sol, kimi (2 or 3 distinct families;
/setup-pstacksets the list) - why / reflect →
inherit-parent
copilot:gpt-5.6-sol@medium is Copilot Sol. codex:gpt-5.6-sol still means the Codex CLI. copilot:grok-4.6@high is Copilot Grok (pstack-grok). grok:grok-4.6 still means the Grok CLI. Setup never maps Fable to Terra or Grok CLI to Copilot Grok.
.
├── .github/plugin/marketplace.json # marketplace name pstack-copilot, source ./
├── .github/plugin/plugin.json # plugin name pstack, agents/, skills/, hooks/
├── agents/ # Copilot-only *.agent.md
├── hooks/ # sessionStart: /poteto-mode, mandate, agent links
└── skills/ # shared pstack skills, including setup-pstack and poteto-mode
cd skills/poteto-mode/scripts
bun test --parallel bootstrap orch watch-pr runner check-planFrom the repo root:
bun test hooks/session-start.test.tsMIT. See NOTICE.md, LICENSE, and LICENSE-cursor-team-kit.