Harnesses

Pi

Pi Coding Agent. Every invocation mode, native model listing with fuzzy search, JSONL sessions with UUIDv7 ids, prompt templates as slash commands.
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.

@agntn/harnesses·MIT license· Paths follow the upstream CLIs and carry their evidence level. This site reads nothing from your machine.