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/mattdevy/pi-extensions/claude-mdgit clone --depth 1 https://github.com/MattDevy/pi-extensionsWhat 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.00870 | $0.00870 |
| Opus 5 | $0.00435 | $0.00435 |
| Sonnet 5 | $0.00174 | $0.00174 |
| Haiku 4.5 | $0.00087 | $0.00087 |
Grade A, and why
pi-extensions CLAUDE.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 2d 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 — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Commands
npm test # run all package tests (workspaces)
npm test -w packages/pi-continuous-learning -- src/foo.test.ts # single file
npm test -w packages/pi-continuous-learning -- -t "pattern" # by name pattern
npm run typecheck # type-check all packages
npm run lint # ESLint on all packages
npm run check # tests + lint + typecheck (mirrors CI)
npm run lint:mega # run MegaLinter locally (requires Docker)
npm run lint:mega:fix # run MegaLinter and auto-fix formatting
npm run build # compile all packages to dist/
Architecture
This is an npm workspaces monorepo. The pi-continuous-learning package lives under packages/pi-continuous-learning/. Its entry point (packages/pi-continuous-learning/src/index.ts) exports a default function that receives ExtensionAPI and registers hooks and commands.
Data flow
Pi session (extension) Background analyzer (pi-cl-analyze CLI)
────────────────────── ──────────────────────────────────────
Hooks observe session events → Reads observations.jsonl per project
writes to observations.jsonl Calls Haiku LLM to find patterns
Creates/updates instinct .md files
Before next agent start ←
high-confidence instincts injected into system prompt
feedback loop records which instincts were active
confidence adjusted by real outcomes
The analyzer runs as a separate background process (cron/launchd), never inside a Pi session.
Key modules
All source lives under packages/pi-continuous-learning/src/:
- Observers (
tool-observer.ts,session-observer.ts,prompt-observer.ts) — capture session events and writeobservations.jsonl - Instinct store (
instinct-store.ts,instinct-parser.ts,instinct-loader.ts) — CRUD for markdown instinct files (YAML frontmatter + body) - Injector (
instinct-injector.ts,active-instincts.ts) — selects high-confidence instincts and injects them into the system prompt before each agent start - Confidence (
confidence.ts,instinct-decay.ts) — scoring and TTL-based decay - CLI analyzer (
cli/analyze.ts) — standalone background process with lockfile guard, 5-minute global timeout, structured JSON logging - Commands (
src/commands/) — slash commands registered with Pi - Tools (
instinct-tools.ts) — LLM-callable tools for instinct CRUD - Prompts (
prompts/) — system and user prompts for the LLM analyzer, consolidation, and evolution passes
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.
- 2d ago First seen · 70 lines · 870 tokens per session scan A 9ca1bddc8bc5
pi-extensions CLAUDE.md is an instructions file published in the GitHub repository MattDevy/pi-extensions (130 stars, last pushed 9d ago), licensed MIT. It adds 870 tokens to every session, about $0.0043 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-30.
Other instructions, from other repositories
pi-extensions AGENTS.md
Instructions for narumiruna/pi-extensions, covering repository guidelines, documentation and communication, repository structure, commands and tooling and dependency safety.
kendex AGENTS.md
AGENTS.md instructions for vanillagreencom/kendex, covering kendex and code review rules.
kendex copilot-instructions.md
Copilot instructions for vanillagreencom/kendex, covering kendex, code review calibration, what to raise, what not to raise and reply contract (context for reading threads).
kendex skills-and-agents.instructions.md
Instructions for vanillagreencom/kendex, a project described as: Package manager for agents, skills, hooks, and extensions. Author once, install on every harness. QOL features included.
kendex tests.instructions.md
Instructions for vanillagreencom/kendex, a project described as: Package manager for agents, skills, hooks, and extensions. Author once, install on every harness. QOL features included.
kendex crates.instructions.md
Instructions for vanillagreencom/kendex: Rust workspace; repo convention runs cargo test and cargo clippy. Code that writes kendex.toml or kendex.settings.toml must never reformat content inside TOML string values — flag any line-oriented pass over TOML text that is not string-state-aware; this has corrupted user…