Pi Agent
Use this skill when the user wants to operate Pi or build on top of Pi. Pi is a minimal terminal coding harness extended through TypeScript extensions, skills, prompt templates, themes, packages, custom models/providers, SDK integrations, RPC mode, JSON event streams, and TUI components.
First Decision
Pick the reference before answering or coding:
| User intent |
Read |
| What Pi is, docs map, install methods |
references/overview.md |
| Install, authenticate, first run |
references/quickstart.md |
| Day-to-day CLI usage, commands, modes, flags, project trust |
references/usage.md |
| Provider auth, API keys, cloud provider setup |
references/providers.md |
| Custom model entries, local models, proxies, compat flags |
references/models.md |
Local llama.cpp router, /llama, model download/load |
references/llama-cpp.md |
| Settings keys and defaults |
references/settings.md |
PI_* and other environment variables |
references/environment-variables.md |
| Extension development, custom tools, events, commands |
references/extensions.md |
| Custom provider implementation, OAuth, custom streaming |
references/custom-provider.md |
| Embed Pi in Node/TypeScript |
references/sdk.md |
| Integrate from another process/language |
references/rpc.md |
| Consume JSONL event output |
references/json.md |
| Build terminal UI components |
references/tui.md |
| Package extensions/skills/prompts/themes |
references/packages.md |
| Delegate to subagents, chains, parallel runs, orchestration |
references/pi-subagents.md |
| Connect MCP servers, MCP tool discovery/config |
references/pi-mcp-adapter.md |
| Interactive interview forms, structured user input |
references/pi-interview.md |
| Web search, URL/PDF/repo fetching, video understanding |
references/pi-web-access.md |
| Author Pi skills |
references/skills.md |
| Prompt templates or themes |
references/prompt-templates.md, references/themes.md |
| Sessions, branching, compaction, parsing JSONL |
references/sessions.md, references/compaction.md, references/session-format.md |
| Security, sandboxing, trust |
references/security.md, references/containerization.md |
| Keyboard or terminal issues |
references/keybindings.md, references/terminal-setup.md, references/tmux.md, references/windows.md, references/termux.md, references/shell-aliases.md |
| Working on Pi itself |
references/development.md |
Build-On-Pi Defaults
Prefer the SDK for Node/TypeScript apps that need type safety, direct state access, in-process custom tools/extensions, or custom resource loading. Use createAgentSession() for a single stable session; use createAgentSessionRuntime() when the app must replace sessions through new/resume/fork/clone/import flows. Auth and model lookup go through ModelRuntime.create().
Prefer RPC mode when the client is not Node.js, needs process isolation, or wants a language-agnostic JSONL protocol. Start with pi --mode rpc --no-session for stateless subprocess integration, then add session flags when persistence matters. Split records on \n only — Node readline is not protocol-compliant.
Prefer JSON mode for one-shot command-line pipelines that only need streamed events, not bidirectional control: pi --mode json "prompt".
Use extensions for Pi-native behavior: custom tools, command handlers, event hooks, provider registration, custom compaction, path protection, project trust policy, UI prompts, widgets, and TUI components.
Use packages when sharing or installing reusable extensions, skills, prompt templates, or themes across machines or projects.
Safety Defaults
Pi is local and not sandboxed by default. Treat extensions, packages, skills, shell commands, and project-local .pi resources as code with the permissions of the Pi process. Project trust only guards which project inputs load — it is not a sandbox. For untrusted repos or unattended automation, isolate with Docker, OpenShell, Gondolin, a VM, or a remote sandbox.
Do not store secrets in project files. Prefer env vars, ~/.pi/agent/auth.json, OAuth via /login, or command-backed secret lookups in models.json/provider config.
Common Commands
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
pi
pi -p "Summarize this codebase"
pi --mode json "List files"
pi --mode rpc --no-session
pi --provider anthropic --model claude-sonnet-4-5
pi --model sonnet:high "Solve this complex problem"
pi --tools read,grep,find,ls -p "Review this repository"
pi install npm:pi-subagents
pi update --all
Source Coverage
These references summarize the Pi documentation at https://pi.dev/docs/latest and every docs page found under it as of this skill version, plus the package pages for pi-subagents, pi-mcp-adapter, pi-interview, and pi-web-access at https://pi.dev/packages/. Package details were cross-checked against the published npm READMEs (pi-web-access 0.14.0, pi-mcp-adapter 2.15.0, pi-subagents 0.37.0, pi-interview 0.9.0). When exact API behavior matters, prefer the cited reference page and inspect installed TypeScript definitions under node_modules/@earendil-works/pi-coding-agent/dist/ and node_modules/@earendil-works/pi-ai/dist/.
Source: K-Dense-AI/scientific-agent-skills → skills/pi-agent/SKILL.md
1---2name: pi-agent3description: Build with and use Pi, the minimal terminal coding harness. Use for installing Pi, configuring providers/models/settings/environment variables, creating Pi skills/extensions/packages/themes/prompt templates, embedding Pi through the SDK, integrating over RPC or JSON event streams, parsing sessions, running local models through the llama.cpp router, developing custom Pi providers and TUI components, or using ecosystem packages such as pi-subagents (delegation/orchestration), pi-mcp-adapter (MCP servers), pi-interview (interactive forms), and pi-web-access (web search, fetching, video understanding).4---5
6
7# Pi Agent
8
9Use this skill when the user wants to operate Pi or build on top of Pi. Pi is a minimal terminal coding harness extended through TypeScript extensions, skills, prompt templates, themes, packages, custom models/providers, SDK integrations, RPC mode, JSON event streams, and TUI components.
10
11## First Decision
12
13Pick the reference before answering or coding:
14
15| User intent | Read |
16|---|---|
17| What Pi is, docs map, install methods | `references/overview.md` |
18| Install, authenticate, first run | `references/quickstart.md` |
19| Day-to-day CLI usage, commands, modes, flags, project trust | `references/usage.md` |
20| Provider auth, API keys, cloud provider setup | `references/providers.md` |
21| Custom model entries, local models, proxies, compat flags | `references/models.md` |
22| Local llama.cpp router, `/llama`, model download/load | `references/llama-cpp.md` |
23| Settings keys and defaults | `references/settings.md` |
24| `PI_*` and other environment variables | `references/environment-variables.md` |
25| Extension development, custom tools, events, commands | `references/extensions.md` |
26| Custom provider implementation, OAuth, custom streaming | `references/custom-provider.md` |
27| Embed Pi in Node/TypeScript | `references/sdk.md` |
28| Integrate from another process/language | `references/rpc.md` |
29| Consume JSONL event output | `references/json.md` |
30| Build terminal UI components | `references/tui.md` |
31| Package extensions/skills/prompts/themes | `references/packages.md` |
32| Delegate to subagents, chains, parallel runs, orchestration | `references/pi-subagents.md` |
33| Connect MCP servers, MCP tool discovery/config | `references/pi-mcp-adapter.md` |
34| Interactive interview forms, structured user input | `references/pi-interview.md` |
35| Web search, URL/PDF/repo fetching, video understanding | `references/pi-web-access.md` |
36| Author Pi skills | `references/skills.md` |
37| Prompt templates or themes | `references/prompt-templates.md`, `references/themes.md` |
38| Sessions, branching, compaction, parsing JSONL | `references/sessions.md`, `references/compaction.md`, `references/session-format.md` |
39| Security, sandboxing, trust | `references/security.md`, `references/containerization.md` |
40| Keyboard or terminal issues | `references/keybindings.md`, `references/terminal-setup.md`, `references/tmux.md`, `references/windows.md`, `references/termux.md`, `references/shell-aliases.md` |
41| Working on Pi itself | `references/development.md` |
42
43## Build-On-Pi Defaults
44
45Prefer the SDK for Node/TypeScript apps that need type safety, direct state access, in-process custom tools/extensions, or custom resource loading. Use `createAgentSession()` for a single stable session; use `createAgentSessionRuntime()` when the app must replace sessions through new/resume/fork/clone/import flows. Auth and model lookup go through `ModelRuntime.create()`.
46
47Prefer RPC mode when the client is not Node.js, needs process isolation, or wants a language-agnostic JSONL protocol. Start with `pi --mode rpc --no-session` for stateless subprocess integration, then add session flags when persistence matters. Split records on `\n` only — Node `readline` is not protocol-compliant.
48
49Prefer JSON mode for one-shot command-line pipelines that only need streamed events, not bidirectional control: `pi --mode json "prompt"`.
50
51Use extensions for Pi-native behavior: custom tools, command handlers, event hooks, provider registration, custom compaction, path protection, project trust policy, UI prompts, widgets, and TUI components.
52
53Use packages when sharing or installing reusable extensions, skills, prompt templates, or themes across machines or projects.
54
55## Safety Defaults
56
57Pi is local and not sandboxed by default. Treat extensions, packages, skills, shell commands, and project-local `.pi` resources as code with the permissions of the Pi process. Project trust only guards which project inputs load — it is not a sandbox. For untrusted repos or unattended automation, isolate with Docker, OpenShell, Gondolin, a VM, or a remote sandbox.
58
59Do not store secrets in project files. Prefer env vars, `~/.pi/agent/auth.json`, OAuth via `/login`, or command-backed secret lookups in `models.json`/provider config.
60
61## Common Commands
62
63```bash
64npm install -g --ignore-scripts @earendil-works/pi-coding-agent
65pi
66pi -p "Summarize this codebase"
67pi --mode json "List files"
68pi --mode rpc --no-session
69pi --provider anthropic --model claude-sonnet-4-5
70pi --model sonnet:high "Solve this complex problem"
71pi --tools read,grep,find,ls -p "Review this repository"
72pi install npm:pi-subagents
73pi update --all
74```
75
76## Source Coverage
77
78These references summarize the Pi documentation at `https://pi.dev/docs/latest` and every docs page found under it as of this skill version, plus the package pages for `pi-subagents`, `pi-mcp-adapter`, `pi-interview`, and `pi-web-access` at `https://pi.dev/packages/`. Package details were cross-checked against the published npm READMEs (`pi-web-access` 0.14.0, `pi-mcp-adapter` 2.15.0, `pi-subagents` 0.37.0, `pi-interview` 0.9.0). When exact API behavior matters, prefer the cited reference page and inspect installed TypeScript definitions under `node_modules/@earendil-works/pi-coding-agent/dist/` and `node_modules/@earendil-works/pi-ai/dist/`.
79
80---
81
82**Source:** [`K-Dense-AI/scientific-agent-skills`](https://github.com/K-Dense-AI/scientific-agent-skills) → `skills/pi-agent/SKILL.md`