My Pi
FreeNot checkedComposable pi coding agent with MCP, LSP, prompt presets, and local eval telemetry
About
Composable pi coding agent with MCP, LSP, prompt presets, and local eval telemetry
README
Semgrep built with vite+ tested with vitest
My curated Pi distribution: a ready-to-run coding-agent CLI with MCP, LSP, skills, recall, redaction, telemetry, team mode, prompt presets, and other handy extensions prewired.

Built on the
@earendil-works/pi-coding-agent
SDK. Use the full distribution directly, or install individual
@spences10/pi-* packages into your own Pi setup.
Quick start
pnpx my-pi@latest
# or: npx my-pi@latest / bunx my-pi@latest
Two ways to use my-pi
1. Run the full distribution
Use my-pi if you want the complete, opinionated setup:
pnpx my-pi@latest
This is its own CLI wrapper around Pi. Do not install the root package
with pi install npm:my-pi.
2. Install individual Pi packages
Most extensions in this repo are also published as normal Pi packages:
pi install npm:@spences10/pi-lsp
pi install npm:@spences10/pi-mcp
pi install npm:@spences10/pi-redact
Use this path if you already have your own Pi setup and only want selected features. Package READMEs are the source of truth for install instructions, commands, configuration, and runtime behavior.
What you get
- Pi-native CLI + SDK wrapper — interactive TUI, print mode, JSON mode, RPC mode, and programmatic runtime creation.
- Project-aware MCP tools — stdio and HTTP/streamable-HTTP servers
from
mcp.json, scoped so sensitive or noisy tools only load for the projects and orgs where they belong. - Project-aware skills — discover, enable, disable, import, and sync Pi-native skills, with different skill sets per project.
- LSP tools — diagnostics, hover, definitions, references, and document symbols via language servers.
- Context sidecar — local SQLite storage for oversized tool output, keeping long results searchable without flooding chat context.
- Guardrails — Svelte and coding-preference checks that block configured anti-patterns before agents write them.
- Prompt presets — base presets plus additive prompt layers with per-project persistence.
- Secret safety — redaction plus reminders to use secret-safe environment loading.
- Recall, telemetry, and observability — local support for prior-session lookup, evals, latency analysis, live event streams, and operational debugging.
- Git UI — interactive source-control staging and commit support.
- Team mode — peer coordination between independently opened Pi sessions using groups, artifacts, and durable mailboxes.
- Themes and TUI helpers — visual polish and shared modal primitives.
Requirements
- Node.js
>=24.15.0 - pnpm 11 for local development
- Pi authentication via
pi auth, provider environment variables, or supported OAuth flows
my-pi uses native node:sqlite through context, telemetry, and
observability packages. The CLI suppresses Node's expected
node:sqlite ExperimentalWarning; standalone package/API consumers
own their process warning policy until Node marks it stable.
Common usage
# full TUI
pnpx my-pi@latest
# one-shot print mode
pnpx my-pi@latest "summarize this repo"
pnpx my-pi@latest -P "explicit print mode"
# NDJSON events for scripts/agents
pnpx my-pi@latest --json "list all TODO comments"
# RPC mode for team/agent orchestration
pnpx my-pi@latest --mode rpc
# local live observability dashboard
pnpx my-pi@latest
# then run /observability in the TUI to open the browser dashboard
pnpx my-pi@latest observability
Pi handles model authentication natively. For provider-specific model examples, see the Pi docs and the relevant extension/package README.
Umans.ai is available as a built-in provider. Run /login, choose API
key auth, then choose Umans; select models like umans/umans-coder or
umans/umans-flash. The provider can also read UMANS_API_KEY and
can be disabled with --no-umans-provider.
OpenRouter Fusion is configured by default: my-pi injects a
non-Anthropic Fusion panel/judge only for openrouter/fusion.
Configure it in ~/.pi/agent/my-pi-settings.json under
openRouterFusion, e.g.
{"openRouterFusion":{"analysisModels":["deepseek/deepseek-v3.2"],"judgeModel":"~openai/gpt-latest","force":false}}.
Fusion is forced by default with tool_choice: "required"; set
force: false to let OpenRouter decide whether deliberation is
needed. Env vars MY_PI_FUSION_ANALYSIS_MODELS,
MY_PI_FUSION_JUDGE_MODEL, and MY_PI_FUSION_FORCE still work as
overrides. Disable with --no-openrouter-fusion-config.
Reusable Pi packages
Install the full distribution with pnpx my-pi@latest, or install
selected extensions into vanilla Pi:
# Bash/Zsh/Fish
pi install npm:@spences10/pi-{context,lsp,team-mode}
Full package list here:
| Package | Purpose |
|---|---|
| @spences10/pi-coding-preferences | Configurable coding-workflow guardrails |
| @spences10/pi-confirm-destructive | Destructive action confirmations |
| @spences10/pi-context | Scoped SQLite FTS overflow cache for oversized tool output |
| @spences10/pi-factory | Reusable software-factory control plane |
| @spences10/pi-git-ui | Interactive source-control staging UI |
| @spences10/pi-lsp | LSP-backed diagnostics and symbol tools |
| @spences10/pi-mcp | MCP server integration and /mcp |
| @spences10/pi-nopeek | nopeek reminder for secret-safe environment loading |
| @spences10/pi-observability | Live local event stream and browser dashboard |
| @spences10/pi-omnisearch | mcp-omnisearch reminder for verified web research |
| @spences10/pi-recall | pirecall reminder and background sync |
| @spences10/pi-redact | Output redaction and /redact-stats |
| @spences10/pi-harness | Ephemeral task harness runtime |
| @spences10/pi-skills | Skill management, import, and sync |
| @spences10/pi-sqlite-tools | mcp-sqlite-tools reminder for safer SQLite database work |
| @spences10/pi-svelte-guardrails | Svelte pattern guardrails |
| @spences10/pi-team-mode | Peer-session coordination and durable mailboxes |
| @spences10/pi-telemetry | Local SQLite telemetry and /telemetry |
| @spences10/pi-themes | Bundled theme pack for Pi |
Shared helper packages such as @spences10/pi-child-env,
@spences10/pi-project-trust, @spences10/pi-settings, and
@spences10/pi-tui-modal are published as dependencies and are not
packages to install via pi install.
Project structure
apps/
web/ Landing page for discovering my-pi and its packages
src/
index.ts CLI entry point
api.ts Programmatic API
extensions/ Root-only built-ins and distro wiring
packages/
pi-*/ Reusable Pi packages and shared support packages
.pi/
presets.json Optional project prompt presets
presets/*.md Optional project prompt preset files
mcp.json Project MCP server config
Install My Pi in Claude Desktop, Claude Code & Cursor
unyly install my-piInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add my-pi -- npx -y my-piFAQ
Is My Pi MCP free?
Yes, My Pi MCP is free — one-click install via Unyly at no cost.
Does My Pi need an API key?
No, My Pi runs without API keys or environment variables.
Is My Pi hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install My Pi in Claude Desktop, Claude Code or Cursor?
Open My Pi on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
by wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
by madhurprashPostgres
Query your database in natural language
by AnthropicPostgreSQL
Read-only database access with schema inspection.
by modelcontextprotocolCompare My Pi with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All data MCPs
