Skip to content
Data
Skill

/pi-agent

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

From plugin
scientific-agent-skills
56k177 skills

Claude Code

$ npx -y skills add K-Dense-AI/scientific-agent-skills --skill pi-agent --agent claude-code

SKILL.md

pi-agent.SKILL.md
name: pi-agent
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).
license: MIT
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.

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, codemode, MCP tool discovery/config | `references/mcp.md` (built-in), `references/pi-mcp-adapter.md` (optional adapter) | | 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.

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](https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/rpc.md).

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 --m
Read more
@k-dense-ai
Ships withscientific-agent-skills

๐Ÿ”” Claude Scientific Skills is now Scientific Agent Skills. Same skills, broader compatibility โ€” now works with any AI agent that supports the open Agent Skills standard, not just Claude.

Stars on GitHub

Momentum

stars in total
55.6k
Star history of K-Dense-AI/scientific-agent-skills on GitHub, a chart by star-history.com

Other skills on scientific-agent-skills.

aeon

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting,โ€ฆ

More skills from other plugins.

paddleocr-doc-parsing

paddleocr-doc-parsing

Use this skill to extract structured Markdown/JSON from PDFs and document imagesโ€”tables with cell-level precision, formulas asโ€ฆ

@paddlepaddle@paddlepaddleInstall Skill
context-loader
Auto-invoked

context-loader

Search memories from earlier Pi sessions in this repository. Use it when earlier work may already explain the code, error,โ€ฆ

mem04d69k
@mem0ai@mem0aiInstall Skill
analyzing-ai-citations

analyzing-ai-citations

Answer AI citation and answer engine optimization (AEO) questions in PostHog: whether AI answer engines (ChatGPT, Claude, and anโ€ฆ

posthog10d41k
@posthog@posthogInstall Skill
qmd

qmd

Search local markdown knowledge bases, notes, docs, and wikis with QMD. Use when users ask to find notes, retrieve documents,โ€ฆ

qmd3w31k
@tobi@tobiInstall Skill

Questions about pi-agent.

Which coding agents can use pi-agent?
pi-agent installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.