# Pi Coding Agent Documentation > Technical docs for @earendil-works/pi-coding-agent: the pi CLI, interactive/print/RPC run modes, session runtime, skills and extensions, settings, and the embeddable SDK. This is a Grok-Wiki source-grounded repository documentation set. Use the complete Markdown link when an agent needs the full repo context. ## Context Links - [Complete Markdown docs](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/llms-full.txt) - [Complete Markdown alias](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1.md) - [Human interactive docs](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1) - [GitHub repository](https://github.com/earendil-works/pi) ## Repository - Repository: earendil-works/pi - Branch: main - Generated: 2026-08-09T04:03:44.924Z - Updated: 2026-08-09T04:11:50.352Z - Runtime: Grok CLI - Format: Documentation - Pages: 24 ## Pages - [Overview](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/01-overview.md): What pi is, the four run modes, default tools, and the first docs routes for CLI users and embedders. - [Installation](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/02-installation.md): npm and installer install paths, bin entry, package exports, and verification for @earendil-works/pi-coding-agent. - [Quickstart](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/03-quickstart.md): Install, authenticate with API key or /login, start interactive pi, and confirm the default read/write/edit/bash tool surface. - [Run modes](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/04-run-modes.md): Interactive, print/JSON, RPC, and SDK modes: how each is invoked, entry points, and when to choose them. - [Agent sessions](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/05-agent-sessions.md): Session lifecycle, prompt queue, concurrent behavior, stats, and runtime services that own a conversation turn. - [Branching and session trees](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/06-branching-and-session-trees.md): Session branching, tree navigation, cancel-during-compact interactions, and name/event constraints for branches. - [Context compaction](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/07-context-compaction.md): Auto and manual compaction triggers, reasons, retries on stream drop, and interactions with in-flight prompts and RPC. - [Tools and allowlists](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/08-tools-and-allowlists.md): Default read/write/edit/bash tools, extension tools, allowlist and exclude-tools filters, and blocked-tool termination behavior. - [Authentication](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/09-authentication.md): API keys, OAuth login, credential storage, auth checks, ambient auth, and refresh hang failure modes. - [Providers and models](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/10-providers-and-models.md): Built-in and dynamic providers, scoped model order and refresh, models.json hot reload, and provider-retry message behavior. - [Settings](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/11-settings.md): Settings load and in-memory reload, stale resource refresh, and merge rules for provider retry and related session options. - [Context files](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/12-context-files.md): How project context files are discovered and injected into sessions, including SDK wiring for context file inputs. - [Skills](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/13-skills.md): SKILL.md frontmatter rules, naming constraints, collision precedence, disable-model-invocation, and valid versus rejected skill fixtures. - [Extensions](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/14-extensions.md): TypeScript extension registration, inline naming, active tools on next turn, OAuth prompt input, and shutdown cleanup contracts. - [Prompt templates](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/15-prompt-templates.md): Custom system prompts and prompt templates as reusable session configuration, with SDK entry points and related prompt tests. - [Themes and Pi packages](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/16-themes-and-pi-packages.md): Theme export requirements, package manifest validation, and how shareable Pi packages bundle extensions, skills, templates, and themes. - [SDK](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/17-sdk.md): Embed pi with the package main export: minimal agent construction, full control hooks, custom models, tools, and settings. - [Session runtime](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/18-session-runtime.md): AgentSessionRuntime services, lifecycle events (settled, start notify, event bus), and embedding sessions without the interactive TUI. - [RPC mode](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/19-rpc-mode.md): Process integration via rpc-entry: command IDs, prompt-during-compaction constraints, JSON stream behavior, and unknown-command handling. - [CLI reference](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/20-cli-reference.md): pi binary flags and argument parsing, auth subcommands, experimental auth entry points, and package bin wiring. - [Package exports](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/21-package-exports.md): Public npm surface for @earendil-works/pi-coding-agent: main, rpc-entry, client exports, bin name, and piConfig.configDir. - [SDK examples](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/22-sdk-examples.md): Copy-paste SDK recipes: minimal agent, custom model, skills, tools, extensions, sessions, settings, and full-control setups. - [Extension examples](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/23-extension-examples.md): Reference extension packages: subagent agents, plan-mode, doom-overlay, dynamic resources skill, and auto-commit-on-exit. - [Troubleshooting](https://grok-wiki.com/public/docs/earendil-works-pi-7860a70e44d1/pages/24-troubleshooting.md): Retry and network failures, credential refresh hangs, SIGTERM cleanup, bash output truncation, and session event settlement issues. ## Source Files - `packages/coding-agent/CHANGELOG.md` - `packages/coding-agent/examples/extensions/auto-commit-on-exit.ts` - `packages/coding-agent/examples/extensions/doom-overlay/README.md` - `packages/coding-agent/examples/extensions/plan-mode/README.md` - `packages/coding-agent/examples/extensions/README.md` - `packages/coding-agent/examples/extensions/subagent/agents.ts` - `packages/coding-agent/examples/extensions/subagent/README.md` - `packages/coding-agent/examples/README.md` - `packages/coding-agent/examples/sdk/01-minimal.ts` - `packages/coding-agent/examples/sdk/02-custom-model.ts` - `packages/coding-agent/examples/sdk/03-custom-prompt.ts` - `packages/coding-agent/examples/sdk/04-skills.ts` - `packages/coding-agent/examples/sdk/05-tools.ts` - `packages/coding-agent/examples/sdk/06-extensions.ts` - `packages/coding-agent/examples/sdk/07-context-files.ts` - `packages/coding-agent/examples/sdk/08-prompt-templates.ts` - `packages/coding-agent/examples/sdk/09-api-keys-and-oauth.ts` - `packages/coding-agent/examples/sdk/10-settings.ts` - `packages/coding-agent/examples/sdk/11-sessions.ts` - `packages/coding-agent/examples/sdk/12-full-control.ts` - `packages/coding-agent/examples/sdk/13-session-runtime.ts` - `packages/coding-agent/examples/sdk/README.md` - `packages/coding-agent/package.json` - `packages/coding-agent/README.md` - `packages/coding-agent/src/cli/args.ts` - `packages/coding-agent/src/cli/auth-check.ts` - `packages/coding-agent/src/cli/auth-command.ts` - `packages/coding-agent/src/cli/experimental/auth.ts` - `packages/coding-agent/src/core/agent-session-runtime.ts` - `packages/coding-agent/src/core/agent-session-services.ts` - `packages/coding-agent/src/core/agent-session.ts` - `packages/coding-agent/src/core/auth-guidance.ts` - `packages/coding-agent/src/core/auth-storage.ts` - `packages/coding-agent/test/agent-session-auto-compaction-queue.test.ts` - `packages/coding-agent/test/agent-session-branching.test.ts` - `packages/coding-agent/test/agent-session-compaction.test.ts` - `packages/coding-agent/test/agent-session-concurrent.test.ts` - `packages/coding-agent/test/agent-session-dynamic-provider.test.ts` - `packages/coding-agent/test/agent-session-dynamic-tools.test.ts` - `packages/coding-agent/test/agent-session-runtime-events.test.ts` - `packages/coding-agent/test/agent-session-tree-navigation.test.ts` - `packages/coding-agent/test/args.test.ts` - `packages/coding-agent/test/auth-storage.test.ts` - `packages/coding-agent/test/fixtures/skills-collision/first/calendar/SKILL.md` - `packages/coding-agent/test/fixtures/skills/disable-model-invocation/SKILL.md` - `packages/coding-agent/test/fixtures/skills/missing-description/SKILL.md` - `packages/coding-agent/test/fixtures/skills/valid-skill/SKILL.md` - `packages/coding-agent/test/suite/agent-session-compaction.test.ts` - `packages/coding-agent/test/suite/agent-session-model-extension.test.ts` - `packages/coding-agent/test/suite/agent-session-prompt.test.ts` - `packages/coding-agent/test/suite/agent-session-queue.test.ts` - `packages/coding-agent/test/suite/agent-session-runtime.test.ts` - `packages/coding-agent/test/suite/regressions/2753-reload-stale-resource-settings.test.ts` - `packages/coding-agent/test/suite/regressions/2781-skill-collision-precedence.test.ts` - `packages/coding-agent/test/suite/regressions/2835-tools-allowlist-filters-extension-tools.test.ts` - `packages/coding-agent/test/suite/regressions/2860-replaced-session-context.test.ts` - `packages/coding-agent/test/suite/regressions/3217-scoped-model-order.test.ts` - `packages/coding-agent/test/suite/regressions/3317-network-connection-lost-retry.test.ts` - `packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts` - `packages/coding-agent/test/suite/regressions/3616-settings-inmemory-reload.test.ts` - `packages/coding-agent/test/suite/regressions/3686-session-name-event.test.ts` - `packages/coding-agent/test/suite/regressions/3688-tree-cancel-compacting.test.ts` - `packages/coding-agent/test/suite/regressions/5080-signal-shutdown-extension-cleanup.test.ts` - `packages/coding-agent/test/suite/regressions/5109-exclude-tools.test.ts` - `packages/coding-agent/test/suite/regressions/5217-compaction-reason.test.ts` - `packages/coding-agent/test/suite/regressions/5303-bash-output-truncation.test.ts` - `packages/coding-agent/test/suite/regressions/5596-missing-theme-export.test.ts` - `packages/coding-agent/test/suite/regressions/5724-sigterm-signal-exit.test.ts` - `packages/coding-agent/test/suite/regressions/5868-rpc-unknown-command-id.test.ts` - `packages/coding-agent/test/suite/regressions/5996-session-name-newlines.test.ts` - `packages/coding-agent/test/suite/regressions/5998-blocked-tool-terminate.test.ts` - `packages/coding-agent/test/suite/regressions/6019-explicit-provider-retry-message.test.ts` - `packages/coding-agent/test/suite/regressions/6162-extension-active-tools-next-turn.test.ts` - `packages/coding-agent/test/suite/regressions/6260-inline-extension-naming.test.ts` - `packages/coding-agent/test/suite/regressions/6363-agent-settled-event.test.ts` - `packages/coding-agent/test/suite/regressions/6647-compaction-retries-transient-stream-drop.test.ts` - `packages/coding-agent/test/suite/regressions/6949-unavailable-scoped-model.test.ts` - `packages/coding-agent/test/suite/regressions/6999-models-json-hot-reload.test.ts` - `packages/coding-agent/test/suite/regressions/7027-credential-refresh-hang.test.ts` - `packages/coding-agent/test/suite/regressions/7150-rpc-prompt-during-compaction.test.ts` - `packages/coding-agent/test/suite/regressions/7153-scoped-models-refresh.test.ts` - `packages/coding-agent/test/suite/regressions/7187-malformed-package-manifest.test.ts` - `packages/coding-agent/test/suite/regressions/7253-manual-compact-during-response.test.ts` - `packages/coding-agent/test/suite/regressions/7290-json-stream-linear.test.ts` - `packages/coding-agent/test/suite/regressions/7572-provider-retry-settings-merge.test.ts`