Skip to content

Pi Provider

The Pi provider runs Pi in-process through its TypeScript SDK. Unlike Codex and Copilot, which shell out to external CLIs, the Pi adapter calls the SDK directly.

  1. Install Pi independently:
Terminal window
npm install -g @mariozechner/pi-coding-agent
pi /login # authenticate with your provider
pi /model # pick a default model
  1. Node.js 22.5+ (same as the Sidemesh daemon).
Terminal window
npm install -g sidemesh @mariozechner/pi-coding-agent
sidemesh setup # select Pi from the provider list
sidemesh up

Add to ~/.sidemesh/config.json:

{
"providers": [
{
"kind": "pi",
"agentDir": "~/.pi/agent",
"stateDir": null
}
],
"defaultProviderKind": "pi"
}
FieldDescription
agentDirPi config directory. Default: ~/.pi/agent
stateDirSidemesh Pi sidecar state. Default: ~/.sidemesh/pi-provider
FeatureStatusNotes
Text inputFull support
Local imagesBase64-encoded
Image URLsIgnored with warning
SkillsInlined from Pi skill dirs
Model switchingAuth-filtered model list
Thinking levelOverride when supported
CompactionNative Pi compaction
Session archiveSidecar tracked
InterruptCalls Pi abort()
FilesystemHostDaemon-owned
ApprovalsPi does not expose gating
TerminalHostDaemon-owned
VariablePurpose
SIDEMESH_PI_AGENT_DIROverride Pi agent directory
SIDEMESH_PI_STATE_DIROverride Sidemesh sidecar directory

Unknown Pi session after restart The sidecar index is stale. Restarting triggers a fresh scan of ~/.pi/agent/sessions/.

No API key for anthropic/claude- The model is visible but unauthenticated. Run pi /login for that provider.

Image URLs silently ignored Pi only accepts local files. Sidemesh emits a stderr warning and substitutes an explanatory prompt.

Slow session list First scan walks all .jsonl files. Subsequent calls use a stat-based fingerprint cache.