# My-Pi Coding-Agent

> Source: <https://github.com/spences10/my-pi>
> Published: 2026-06-26 19:05:36+00:00

My curated [Pi](https://pi.dev) 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](https://github.com/badlogic/pi-mono)
SDK. Use the full distribution directly, or install individual
`@spences10/pi-*`

packages into your own Pi setup.

```
pnpx my-pi@latest
# or: npx my-pi@latest / bunx my-pi@latest
```

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`

.

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.

**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**— local RPC teammate orchestration with tasks and mailboxes.** Themes and TUI helpers**— visual polish and shared modal primitives.

- 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.

```
# 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`

.

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` |

`@spences10/pi-confirm-destructive`

`@spences10/pi-context`

`@spences10/pi-git-ui`

`@spences10/pi-lsp`

`@spences10/pi-mcp`

`/mcp`

`@spences10/pi-nopeek`

`nopeek`

reminder for secret-safe environment loading`@spences10/pi-observability`

`@spences10/pi-omnisearch`

`mcp-omnisearch`

reminder for verified web research`@spences10/pi-recall`

`pirecall`

reminder and background sync`@spences10/pi-redact`

`/redact-stats`

`@spences10/pi-skills`

`@spences10/pi-sqlite-tools`

`mcp-sqlite-tools`

reminder for safer SQLite database work`@spences10/pi-svelte-guardrails`

`@spences10/pi-team-mode`

`@spences10/pi-telemetry`

`/telemetry`

`@spences10/pi-themes`

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`

.

```
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
```


