Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/sshkeda/pi-council/agents-mdgit clone --depth 1 https://github.com/sshkeda/pi-councilWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00610 | $0.00610 |
| Opus 5 | $0.00305 | $0.00305 |
| Sonnet 5 | $0.00122 | $0.00122 |
| Haiku 4.5 | $0.00061 | $0.00061 |
Grade A, and why
pi-council AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.
pi-council agent notes
pi-council spawns independent pi --mode rpc member processes and collects their answers for comparison. Keep docs concise and avoid duplicating README prose here.
Main files
src/core/council.ts— run lifecycle, member orchestration, persistence, follow-ups, cancellation.src/core/member.ts— RPC process wrapper for onepimember.src/core/config.ts—~/.pi-council/config.jsonloading, validation, profile/model resolution.src/core/runs.tsandsrc/core/storage.ts— persisted run lookup and cleanup.src/core/types.ts— shared public types.extensions/pi-council/index.ts— pi extension tools and status widget.src/mcp/server.ts— MCP tool server.skills/pi-council/SKILL.md— skill instructions shown to pi agents.config.default.jsonandconfig.schema.json— user config template and schema.
Public tools
Pi extension:
spawn_council({ question, profile?, models?, label? })
council_followup({ message, type, runId?, memberIds? })
cancel_council({ runId?, memberIds? })
council_status({ runId? })
read_council_stream({ runId?, memberId })
MCP also exposes:
list_council_runs({})
read_council_results({ runId?, wait?, timeoutMs? })
cleanup_council_runs({ runId? | all? })
Runtime behavior
- Config is read from
~/.pi-council/config.json; there is no config CLI. - Profiles select model IDs from the top-level
modelsmap and may setsystemPrompt,thinking, andmemberTimeoutMs. - Deprecated top-level
systemPromptis still used as a fallback for profiles without one. - Model names are passed through unchanged; use concrete model IDs from the local pi install.
- Run artifacts are stored in
~/.pi-council/runs/<run-id>/. - Members are launched with
PI_COUNCIL_MEMBER=1; the extension must not register council tools in that environment.
Design rules
- Preserve model independence. Do not share one member's analysis with another unless the user explicitly sends a follow-up.
- Prompt neutrally. The council's value is disagreement, not confirmation of the orchestrator's opinion.
- Do not poll after spawning in interactive sessions; results are auto-delivered.
- Persist per-member results as soon as each member finishes.
- Avoid adding hard-coded model defaults in TypeScript; use
config.default.jsonfor templates.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 63 lines · 610 tokens per session scan A 55b1e67bcb43
pi-council AGENTS.md is an instructions file published in the GitHub repository sshkeda/pi-council (5 stars, last pushed 4mo ago), licensed MIT. It adds 610 tokens to every session, about $0.0030 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
dsh-TUI AGENTS.md
AGENTS.md instructions for ccch1mneyyy/dsh-TUI, covering agents.md, 仓库布局, 命令, 上游边界与契约 and 约定与红线.
golembot CLAUDE.md
Instructions for 0xranx/golembot, covering golembot — project conventions for claude code, architecture hard constraints, things you must never do, interface change rules and file responsibility boundaries.
sortie copilot-instructions.md
Instructions for sortie-ai/sortie, covering sortie coding & review standards, 1. layered imports (downward only; violation is critical), 2. concurrency safety, 3. workspace path safety (critical: security boundary) and 4. persistence (sqlite).
copperhead CLAUDE.md
Instructions for copperheadhq/copperhead, covering claude.md, what this repo is, sources of truth, workflow (openspec) and architecture (per spec.md §2).
pi-ask AGENTS.md
Instructions for eko24ive/pi-ask, covering agents.md, project scope, project goals, tech stack and commands.
amp-acp AGENTS.md
Instructions for tao12345666333/amp-acp, covering agents.md, commands, architecture and code style.