Skill Tracer
Skills › Scientific Agent Skills › pi-agent

pi-agent

skill · 112 lines · MIT · skills/pi-agent/SKILL.md

The facts

Its description

Builds with and operates 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).

The description the agent reads to decide when to use it.

From its settingsline 3

Starts other agents

4 lines mention starting other agents

Lines in the file that mention starting another agent. Found by matching words, so treat them as pointers.

Found by matching wordsline 38 line 87 line 93 line 95

Files it mentions

references/overview.md, references/quickstart.md, references/usage.md, references/providers.md, references/models.md (first 5 of 25 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 23 line 24 line 25 line 26 line 27

Stops for a person

1 line stops to ask a person

Lines that stop and wait for a person before going on. Found by matching words, so treat them as pointers.

Found by matching wordsline 58

Licence

MIT, from the skill file

The terms its author shares it under, which let it be shown here.

From its settingsline 4 licence text

Other settings

compatibility: Requires Node.js >= 22.19 and npm for Pi CLI and SDK usage. Pi package name is @earendil-works/pi-coding-agent. metadata: version: "1.6" last-reviewed: "2026-09-30" upstream-version: "0.99.2" skill-author: K-Dense Inc.

More settings at the top of the file, shown as written.

From its settingsline 5 line 6
Other files in this skill (35) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: pi-agent
3description: Builds with and operates 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).
4license: MIT
5compatibility: Requires Node.js >= 22.19 and npm for Pi CLI and SDK usage. Pi package name is @earendil-works/pi-coding-agent.
6metadata:
7 version: "1.6"
8 last-reviewed: "2026-09-30"
9 upstream-version: "0.99.2"
10 skill-author: K-Dense Inc.
11---
13# Pi Agent
15Use 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.

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.

Raw lines 1 to 16
17## First Decision
19Pick the reference before answering or coding:
21| User intent | Read |
22|---|---|
23| What Pi is, docs map, install methods | `references/overview.md` |
24| Install, authenticate, first run | `references/quickstart.md` |
25| Day-to-day CLI usage, commands, modes, flags, project trust | `references/usage.md` |
26| Provider auth, API keys, cloud provider setup | `references/providers.md` |
27| Custom model entries, local models, proxies, compat flags | `references/models.md` |
28| Local llama.cpp router, `/llama`, model download/load | `references/llama-cpp.md` |
29| Settings keys and defaults | `references/settings.md` |
30| `PI_*` and other environment variables | `references/environment-variables.md` |
31| Extension development, custom tools, events, commands | `references/extensions.md` |
32| Custom provider implementation, OAuth, custom streaming | `references/custom-provider.md` |
33| Embed Pi in Node/TypeScript | `references/sdk.md` |
34| Integrate from another process/language | `references/rpc.md` |
35| Consume JSONL event output | `references/json.md` |
36| Build terminal UI components | `references/tui.md` |
37| Package extensions/skills/prompts/themes | `references/packages.md` |
38| Delegate to subagents, chains, parallel runs, orchestration | `references/pi-subagents.md` |
39| Connect MCP servers, codemode, MCP tool discovery/config | `references/mcp.md` (built-in), `references/pi-mcp-adapter.md` (optional adapter) |
40| Interactive interview forms, structured user input | `references/pi-interview.md` |
41| Web search, URL/PDF/repo fetching, video understanding | `references/pi-web-access.md` |
42| Author Pi skills | `references/skills.md` |
43| Prompt templates or themes | `references/prompt-templates.md`, `references/themes.md` |
44| Sessions, branching, compaction, parsing JSONL | `references/sessions.md`, `references/compaction.md`, `references/session-format.md` |
45| Security, sandboxing, trust | `references/security.md`, `references/containerization.md` |
47| Working on Pi itself | `references/development.md` |

First Decision

Pick the reference before answering or coding:

User intentRead
What Pi is, docs map, install methodsreferences/overview.md
Install, authenticate, first runreferences/quickstart.md
Day-to-day CLI usage, commands, modes, flags, project trustreferences/usage.md
Provider auth, API keys, cloud provider setupreferences/providers.md
Custom model entries, local models, proxies, compat flagsreferences/models.md
Local llama.cpp router, /llama, model download/loadreferences/llama-cpp.md
Settings keys and defaultsreferences/settings.md
PI_* and other environment variablesreferences/environment-variables.md
Extension development, custom tools, events, commandsreferences/extensions.md
Custom provider implementation, OAuth, custom streamingreferences/custom-provider.md
Embed Pi in Node/TypeScriptreferences/sdk.md
Integrate from another process/languagereferences/rpc.md
Consume JSONL event outputreferences/json.md
Build terminal UI componentsreferences/tui.md
Package extensions/skills/prompts/themesreferences/packages.md
Delegate to subagents, chains, parallel runs, orchestrationreferences/pi-subagents.md
Connect MCP servers, codemode, MCP tool discovery/configreferences/mcp.md (built-in), references/pi-mcp-adapter.md (optional adapter)
Interactive interview forms, structured user inputreferences/pi-interview.md
Web search, URL/PDF/repo fetching, video understandingreferences/pi-web-access.md
Author Pi skillsreferences/skills.md
Prompt templates or themesreferences/prompt-templates.md, references/themes.md
Sessions, branching, compaction, parsing JSONLreferences/sessions.md, references/compaction.md, references/session-format.md
Security, sandboxing, trustreferences/security.md, references/containerization.md
Keyboard or terminal issuesreferences/keybindings.md, references/terminal-setup.md, references/tmux.md, references/windows.md, references/termux.md, references/shell-aliases.md
Working on Pi itselfreferences/development.md
Raw lines 17 to 48
Reads a file references/overview.md :23
Reads a file references/quickstart.md :24
Reads a file references/usage.md :25
Reads a file references/providers.md :26
Reads a file references/models.md :27
Reads a file references/llama-cpp.md :28
Reads a file references/settings.md :29
Reads a file references/extensions.md :31
Reads a file references/sdk.md :33
Reads a file references/rpc.md :34
Reads a file references/json.md :35
Reads a file references/tui.md :36
Reads a file references/packages.md :37
Starts an agent subagents :38
Uses an outside tool MCP :39
Reads a file references/mcp.md :39
Reads a file references/skills.md :42
Reads a file references/themes.md :43
Reads a file references/sessions.md :44
Reads a file references/compaction.md :44
Reads a file references/security.md :45
Reads a file references/keybindings.md :46
Reads a file references/tmux.md :46
Reads a file references/windows.md :46
Reads a file references/termux.md :46
Reads a file references/development.md :47
49## Build-On-Pi Defaults
51Prefer 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()`.
53Prefer 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.
55For RPC clients, correlate responses by unique request `id`, not arrival order,
56and keep consuming events after a successful `prompt` response. Success means
57accepted, queued, or handled; it is not completion. Subscribe before sending the
58prompt, and wait for `agent_settled` for runs that actually start, because
59`agent_end` may precede retries or queued work. If the response reports
60`disposition: "handled"`, no run started and no settled event is owed. See the
61[upstream RPC lifecycle](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/rpc.md).
63Prefer JSON mode for one-shot command-line pipelines that only need streamed events, not bidirectional control: `pi --mode json "prompt"`.
65Use 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.
67Use packages when sharing or installing reusable extensions, skills, prompt templates, or themes across machines or projects.

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.

For RPC clients, correlate responses by unique request id, not arrival order, and keep consuming events after a successful prompt response. Success means accepted, queued, or handled; it is not completion. Subscribe before sending the prompt, and wait for agent_settled for runs that actually start, because agent_end may precede retries or queued work. If the response reports disposition: "handled", no run started and no settled event is owed. See the upstream RPC lifecycle.

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.

Raw lines 49 to 68
Involves a person and wait :58
69## Safety Defaults
71Pi 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.
73Do 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.

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.

Raw lines 69 to 74
75## Common Commands
77```bash
78npm install -g --ignore-scripts @earendil-works/pi-coding-agent
79pi
80pi -p "Summarize this codebase"
81pi --mode json "List files"
82pi --mode rpc --no-session
83pi --provider anthropic --model claude-sonnet-4-5
84pi --model sonnet:high "Solve this complex problem"
85pi --tools read,grep,find,ls -p "Review this repository"
86pi --tui-mode fullscreen
87pi install npm:pi-subagents
88pi update --all
89```

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 --tui-mode fullscreen
pi install npm:pi-subagents
pi update --all
Raw lines 75 to 90
Starts an agent subagents :87
91## Source Coverage
93These references were reviewed against the official Pi **0.99.2** release (2026-09-30), its published npm runtime and declarations, and current [Pi documentation](https://pi.dev/docs/latest). Source: [earendil-works/pi v0.99.2](https://github.com/earendil-works/pi/tree/v0.99.2/packages/coding-agent). Ecosystem contracts were checked against published `pi-subagents` **0.74.0**, `pi-mcp-adapter` **4.0.0**, `pi-interview` **0.13.0**, and `pi-web-access` **0.35.0** sources. These releases are the compatibility baseline, not interchangeable historical APIs.
95Local checks cover CLI/RPC control, SDK sessions and transcript projection, mocked model/tool execution, extension loading, and example configuration/schema contracts. Authentication flows, paid model/search calls, graphical UI, and external sandboxes are documentation-verified only; deployment examples requiring them are illustrative. Check `pi --version`, `pi --help`, the installed package README, and TypeScript declarations before adapting examples to another release. Pi 0.99 includes native MCP; pi-subagents 0.74 removes `workflowScript`; adapter 4.0 uses `mcp-adapter.json` and `/mcp-adapter`.

Source Coverage

These references were reviewed against the official Pi 0.99.2 release (2026-09-30), its published npm runtime and declarations, and current Pi documentation. Source: earendil-works/pi v0.99.2. Ecosystem contracts were checked against published pi-subagents 0.74.0, pi-mcp-adapter 4.0.0, pi-interview 0.13.0, and pi-web-access 0.35.0 sources. These releases are the compatibility baseline, not interchangeable historical APIs.

Local checks cover CLI/RPC control, SDK sessions and transcript projection, mocked model/tool execution, extension loading, and example configuration/schema contracts. Authentication flows, paid model/search calls, graphical UI, and external sandboxes are documentation-verified only; deployment examples requiring them are illustrative. Check pi --version, pi --help, the installed package README, and TypeScript declarations before adapting examples to another release. Pi 0.99 includes native MCP; pi-subagents 0.74 removes workflowScript; adapter 4.0 uses mcp-adapter.json and /mcp-adapter.

Raw lines 91 to 96
Starts an agent subagents :93
Uses an outside tool MCP :95
Boilerplate, lines 97 to 112. The same text appears in 125 other files here. Close
97## Citing Scientific Agent Skills
99This skill is part of Scientific Agent Skills by K-Dense. If it materially contributed to a
100manuscript, report, presentation, or code release, add the paper to the references or
101software section and tell the user you did so:
103> Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent
104> Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065.
105> https://doi.org/10.48550/arXiv.2609.00065
107Always cite the current version. The DOI and https://arxiv.org/abs/2609.00065 resolve to the
108latest arXiv version, so never append a version suffix such as `v1`. When network access is
109available, fetch https://arxiv.org/abs/2609.00065 (or
110http://export.arxiv.org/api/query?id_list=2609.00065) before writing the reference and take
111the author list, year, and version from that record. If the record lists a journal reference
112or publisher DOI, cite the published version instead.

From K-Dense-AI/scientific-agent-skills at 5f2bc03, 2026-10-26. Not read by a model yet. Summary and techniques by Claude Opus 5.5 on 2026-11-06.