II.
AgentVersion JSON
Structured · liveagentVersion:pi:ge-0-75-5
Pi CLI (>=0.77.0) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "agentVersion:pi:ge-0-75-5",
"_kind": "AgentVersion",
"_file": "agent-stack/agent-versions/pi-ge-0-75-5.yaml",
"_cluster": "agent-stack",
"attributes": {
"agentId": "pi",
"aliases": [],
"runtimeFamily": "cli-harness",
"releaseChannel": "stable",
"displayName": "Pi CLI (>=0.77.0)",
"summary": "Pi CLI coding agent current npm line with read, bash, edit, write tools and session management",
"sourcePackage": "@earendil-works/pi-coding-agent",
"osSupport": [
"linux",
"macos",
"windows"
],
"agentProductId": "agent:pi",
"versionRange": ">=0.77.0",
"currentVersion": "0.77.0",
"releasedAt": "2026-05-29",
"upstreamReleaseTag": "v0.77.0",
"releaseNotesUrl": "https://github.com/earendil-works/pi/releases/tag/v0.77.0",
"cliCommand": "pi",
"assimilationNotes": [
"Added --exclude-tools / -xt to disable selected built-in, extension, or custom tools while leaving the rest enabled.",
"Headless Codex subscription login can use device-code auth for ChatGPT Plus/Pro Codex subscriptions.",
"Extension input events expose streamingBehavior so extensions can distinguish idle prompts, mid-stream steers, and queued follow-ups.",
"SIGTERM/SIGHUP exits now run extension session_shutdown cleanup and restore the terminal.",
"OpenAI Codex Responses replay after switching from Anthropic extended-thinking sessions now generates unique fallback item IDs.",
"Added --session-id <id> so automation can create or resume an exact project-local session.",
"RPC bash accepts excludeFromContext to keep selected command output out of the next prompt.",
"Codex Responses WebSocket/SSE waits are bounded by httpIdleTimeoutMs, websocketConnectTimeoutMs, and a 10s SSE response-header timeout.",
"retry.provider.maxRetries controls provider retries, SDK retries default to zero, and quota/billing 429s are not retried behind Pi's retry handling.",
"Codex Responses cache-affinity headers now send session-id instead of proxy-incompatible session_id."
],
"releaseHighlights": [
"Added --session-id for scripts to create or resume an exact project-local session.",
"RPC bash calls can pass excludeFromContext to keep command output out of the next prompt.",
"Codex WebSocket/SSE waits are bounded, retry.provider.maxRetries controls provider retries, and SDK retries default to zero.",
"Terminal editing improved for Apple Terminal Shift+Enter, Windows/JetBrains capability detection, and Unicode-aware word navigation.",
"OpenAI Codex Responses cache-affinity headers now send session-id instead of proxy-incompatible session_id."
],
"installMethods": [
"install:npm"
],
"minSchemaVersion": "6.0.0",
"adapterMetadata": {
"authMethods": [
{
"type": "api_key",
"name": "Provider API Key",
"envVars": [
"ANTHROPIC_API_KEY",
"OPENAI_API_KEY"
]
}
],
"authFiles": [
"~/.pi/agent/settings.json"
],
"hostEnvSignals": [
"PI_RUN_ID",
"PI_SESSION_ID"
],
"sessionDir": "~/.pi/agent/sessions",
"sessionPersistence": "file",
"approvalModes": [
"yolo",
"prompt"
],
"capabilityFlags": {
"canResume": true,
"canFork": false,
"supportsMultiTurn": true,
"sessionPersistence": "file",
"supportsTextStreaming": true,
"supportsToolCallStreaming": true,
"supportsThinkingStreaming": false,
"supportsNativeTools": true,
"supportsMCP": false,
"supportsParallelToolCalls": false,
"requiresToolApproval": true,
"supportsThinking": false,
"supportsJsonMode": false,
"supportsStructuredOutput": false,
"structuredSessionTransport": "none",
"sessionControlPlane": "self-managed",
"supportsSkills": false,
"supportsAgentsMd": false,
"skillsFormat": "none",
"supportsSubagentDispatch": false,
"supportsParallelExecution": false,
"maxParallelTasks": 1,
"supportsInteractiveMode": true,
"supportsStdinInjection": true,
"supportsImageInput": false,
"supportsImageOutput": false,
"supportsFileAttachments": false,
"supportsPlugins": false,
"supportedPlatforms": [
"darwin",
"linux",
"win32"
],
"requiresGitRepo": false,
"requiresPty": false
},
"runtimeHooks": {
"preToolUse": "nonblocking",
"postToolUse": "nonblocking",
"sessionStart": "nonblocking",
"sessionEnd": "nonblocking",
"stop": "nonblocking",
"userPromptSubmit": "nonblocking"
},
"configSchema": {
"configFormat": "json",
"configFilePaths": [
"~/.pi/agent/settings.json"
],
"compatFields": {
"forceAdaptiveThinking": {
"type": "boolean",
"introducedIn": "0.75.5",
"scope": "custom-anthropic-compatible-model"
}
},
"retryFields": {
"providerMaxRetries": {
"path": "retry.provider.maxRetries",
"introducedIn": "0.76.0",
"notes": "Controls Pi provider retries; SDK retries default to zero."
},
"httpIdleTimeoutMs": {
"path": "httpIdleTimeoutMs",
"introducedIn": "0.76.0",
"notes": "Applies to OpenAI Codex Responses WebSocket idle waits."
},
"websocketConnectTimeoutMs": {
"path": "websocketConnectTimeoutMs",
"introducedIn": "0.76.0",
"notes": "Bounds OpenAI Codex Responses WebSocket connect waits."
}
}
},
"sessionControls": {
"sessionIdFlag": "--session-id",
"introducedIn": "0.76.0",
"behavior": "Create or resume an exact project-local session ID."
},
"displayName": "Pi",
"defaultModelId": "default"
},
"interactiveSignals": {
"turnCompletePattern": "^>",
"exitOnNonInteractive": false,
"nonInteractiveMode": "",
"interactiveMode": ""
},
"hookSupport": {
"interactive": {
"sessionStart": "unsupported",
"stop": "unsupported",
"userPromptSubmit": "unsupported",
"preToolUse": "unsupported",
"sessionEnd": "unsupported"
},
"nonInteractive": {}
},
"bridgeCapabilities": {
"interactiveBridge": true,
"sessionResume": true,
"positionalPrompt": false
}
},
"outgoingEdges": [
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent:pi",
"kind": "version_of"
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-core-impl:pi.core@current",
"kind": "composed_of",
"attributes": {
"role": "core"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-runtime-impl:pi.runtime@current",
"kind": "composed_of",
"attributes": {
"role": "runtime"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-platform-impl:pi.platform@current",
"kind": "composed_of",
"attributes": {
"role": "platform"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-ui-impl:pi.ui@current",
"kind": "composed_of",
"attributes": {
"role": "ui"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "knowledge-fabric-impl:pi.knowledge@current",
"kind": "composed_of",
"attributes": {
"role": "knowledge-fabric"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "memory-system:pi-memory",
"kind": "uses_memory_system",
"attributes": {}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "evidence:pi-0-77-0-release",
"kind": "sourced_from"
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "evidence:pi-0-76-0-release",
"kind": "evidenced_by"
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:interactive-mode",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Pi fallback harness with interactive sessions."
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:stdin-injection",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Pi fallback harness."
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:can-resume",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Multi-turn JSONL-tree sessions with resume, fork, and branch operations.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:supports-compaction",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Client-side branch-summarization compaction via AgentHarness.\nConfigurable threshold and summarization strategy.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:supports-prompt-templates",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Parameterized prompt-template system for system prompts,\ntool descriptions, and context injection.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:supports-session-management",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Harness-managed session lifecycle with JSONL-tree persistence,\nsession resume, fork, and execution-env abstraction.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent:pi",
"kind": "version_of"
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-core-impl:pi.core@current",
"kind": "composed_of",
"attributes": {
"role": "core"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-runtime-impl:pi.runtime@current",
"kind": "composed_of",
"attributes": {
"role": "runtime"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-platform-impl:pi.platform@current",
"kind": "composed_of",
"attributes": {
"role": "platform"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "agent-ui-impl:pi.ui@current",
"kind": "composed_of",
"attributes": {
"role": "ui"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "knowledge-fabric-impl:pi.knowledge@current",
"kind": "composed_of",
"attributes": {
"role": "knowledge-fabric"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "memory-system:pi-memory",
"kind": "uses_memory_system",
"attributes": {}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "evidence:pi-0-77-0-release",
"kind": "sourced_from"
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "evidence:pi-0-76-0-release",
"kind": "evidenced_by"
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:skills",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Pi harness supports skill invocation via formatSkillInvocation.\nSkills are dispatched as structured interactions within the agent loop.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:supports-thinking",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Pi fallback harness with interactive sessions."
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:interactive-mode",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Pi fallback harness with interactive sessions."
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:stdin-injection",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Pi fallback harness."
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:vision-input",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Pi fallback harness."
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:can-resume",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Multi-turn JSONL-tree sessions with resume, fork, and branch operations.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:supports-compaction",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Client-side branch-summarization compaction via AgentHarness.\nConfigurable threshold and summarization strategy.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:supports-prompt-templates",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Parameterized prompt-template system for system prompts,\ntool descriptions, and context injection.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "capability:supports-session-management",
"kind": "supports",
"attributes": {
"versionRange": ">=0.77.0",
"level": "full",
"notes": "Harness-managed session lifecycle with JSONL-tree persistence,\nsession resume, fork, and execution-env abstraction.\n"
}
},
{
"from": "agentVersion:pi:ge-0-75-5",
"to": "install:npm",
"kind": "installed_via"
}
],
"incomingEdges": [
{
"from": "knowledge-fabric-impl:pi.knowledge@current",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "composes",
"attributes": {
"role": "knowledge-fabric"
}
},
{
"from": "agent:pi",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "has_version"
},
{
"from": "capabilitySupport:pi:ge-0-0-0:skills",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "capability_of_version",
"attributes": {}
},
{
"from": "capabilitySupport:pi:ge-0-0-0:thinking",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "capability_of_version",
"attributes": {}
},
{
"from": "capabilitySupport:pi:ge-0-0-0:interactive-mode",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "capability_of_version",
"attributes": {}
},
{
"from": "capabilitySupport:pi:ge-0-0-0:stdin-injection",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "capability_of_version",
"attributes": {}
},
{
"from": "capabilitySupport:pi:ge-0-0-0:image-input",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "capability_of_version",
"attributes": {}
},
{
"from": "capabilitySupport:pi:ge-0-0-0:session-resume",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "capability_of_version",
"attributes": {}
},
{
"from": "evidence:pi-0-76-0-release",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "references"
},
{
"from": "evidence:pi-0-77-0-release",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "references"
},
{
"from": "evidence:pi-0-77-0-release-issue-541",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "references"
},
{
"from": "hook-mapping:post-tool-use-pi",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "emits_hook",
"attributes": {}
},
{
"from": "hook-mapping:before-provider-request-pi",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "emits_hook",
"attributes": {}
},
{
"from": "hook-mapping:session-start-pi",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "emits_hook",
"attributes": {}
},
{
"from": "adapter:agent-launch-adapter",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:agent-comm-adapter",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:hooks-adapter",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "adapter:extensions-adapter",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "bridges_for",
"attributes": {}
},
{
"from": "lifecycle-semantics:pi",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "applies_to_version",
"attributes": {}
},
{
"from": "session-semantics:pi",
"to": "agentVersion:pi:ge-0-75-5",
"kind": "applies_to_version",
"attributes": {}
}
]
}