Pi
- getHarness
- getHarness("pi")
- binary
- pi
- invoke modes
- 6 of 6 · official
- model listing
- native
- mcp config
- unknown
- agents file
- ~/.pi/agent/AGENTS.md
Pi is the reference harness for this package, because it supports everything: --no-tools for the advisor, --tools read,grep,find,ls for a read-only agent, --mode json for structured output on all of them, --model for selection and --list-models with an optional fuzzy filter. listModels parses that output into the shared AvailableModel shape; it lists only providers with configured authentication, so an empty result is a credentials question, not a bug.
Sessions are JSONL per project under ~/.pi/agent/sessions/, with UUIDv7 ids, and the directory moves with PI_CODING_AGENT_SESSION_DIR or --session-dir. .pi/SYSTEM.md replaces the system prompt and APPEND_SYSTEM.md appends to it. .pi/prompts/ are prompt templates invoked as slash commands, which is what the commands group holds. The Pi extension in this package registers the nine tools in Pi itself.
Capabilities and invocation
mcp: yesvision: yesaudio: novideo: notools: yesstreaming: yes
Binary pi, evidence official. Add --mode json for structured event output. Model selection appends --model {model}.
advisor
{}
-p --no-tools {prompt}advisor · json
{ structured: true }
-p --no-tools --mode json {prompt}read-only
{ readOnly: true }
-p --tools read,grep,find,ls {prompt}read-only · json
{ readOnly: true, structured: true }
-p --tools read,grep,find,ls --mode json {prompt}agent
{ tools: true }
-p {prompt}agent · json
{ tools: true, structured: true }
-p --mode json {prompt} Model listing runs pi --list-models and --list-models {search} with a filter. Lists models with configured provider authentication; accepts an optional fuzzy search.
Paths
Templates as the registry stores them. ~, ${HOME} and %VAR% expand in resolve(); entries tagged with a platform are dropped on the others. Open in the explorer to see them expanded for a home directory of your choice.
config
~/.pi/agent/settings.jsonuser · official · allConfig dir overridable with PI_CODING_AGENT_DIR..pi/settings.jsonproject · official · all
sessions
~/.pi/agent/sessions/<dash-encoded-cwd>/<timestamp>_<session-id>.jsonldata · official · allPer-project session transcripts in JSONL format; session ids are UUIDv7. Overridable with PI_CODING_AGENT_SESSION_DIR or --session-dir.
instructions
AGENTS.mdproject · official · allLoaded from parent directories and cwd; CLAUDE.md accepted as an alternative, AGENTS.override.md takes precedence over both in a directory..pi/SYSTEM.mdproject · official · allReplaces the default system prompt; APPEND_SYSTEM.md appends instead.~/.pi/agent/AGENTS.mduser · official · allGlobal user-level instructions.~/.pi/agent/SYSTEM.mduser · official · allGlobal system prompt replacement; APPEND_SYSTEM.md appends instead.
skills
.pi/skills/project · official · all~/.pi/agent/skills/user · official · allGlobal user-level skills.
commands
.pi/prompts/project · official · allPrompt templates invoked as slash commands.~/.pi/agent/prompts/user · official · allGlobal user-level prompt templates.
empty
hooks No known location. That is not the same as the feature being missing.
MCP servers
No MCP config file is mapped, so listMcpServers returns nothing for it and syncMcpServers skips it.
Detection
envVars
PI_CODING_AGENTPI_SESSION_IDPI_SESSION_FILE
projectMarkers
.pi
Persistence
- JSON - Settings, auth, trust, models, and keybindings files. (official)
- JSONL - Session transcripts. (official)
syncAgentsFiles links ~/.pi/agent/AGENTS.md to the master bundle.