# Pi — built-in provider manifest. # Authoring format for the def half. See packages/hive-agents/src/manifest.ts. manifestVersion: 2 # Its extension signs in before it says anything and drives hive through `hive ctl`, as this # app expects. minAppVersion: '2026.10.2' id: pi label: Pi bin: pi enabled: true caps: promptDelivery: argv turnSignal: true resume: cwd supervise: none blockedDetection: false icon: viewBox: 0 0 800 800 attrs: fill: currentColor fillRule: evenodd shapes: - path: d: M165.29 165.29 H517.36 V400 H400 V517.36 H282.65 V634.72 H165.29 Z M282.65 282.65 V400 H400 V282.65 Z - path: d: M517.36 400 H634.72 V634.72 H517.36 Z # A message typed while it works steers that turn: pi 1.3.0 shows "Steering: " # (Alt+Enter would queue it for after the turn instead). steer: true # Its prompt with nothing typed, read from pi 1.3.0: the cursor at the start of the line under the # rule that opens its editor, with no marker; the person's words start right there. emptyPrompt: when: seq: - run: ─ - run: space min: 0 - end: true at: start scope: kind: tail n: 1 options: - id: model label: Model flag: --model list: args: - --list-models skip: 1 format: "{1}/{2}" spawn: titles: - "π - {task} - {any}" - "π - {any}" install: url: https://github.com/earendil-works/pi/blob/main/packages/coding-agent/README.md command: "npm install -g --ignore-scripts @earendil-works/pi-coding-agent" detect: rules: - when: containsCS: Working... then: working default: idle note: 'pi has no permission system: it always runs autonomously and cannot be supervised.' session: resume: args: - --session - '{id}' find: strategy: jsonl-header root: '{home}/.pi/agent/sessions' cwdPath: cwd idPath: id require: type: session assets: - name: hive-pi-ext.mjs file: hive-pi-ext.mjs launch: hcp: true args: - -e - '{asset:hive-pi-ext.mjs}' commands: builtIn: - name: "settings" description: "Open settings" - name: "model" description: "Select a model" - name: "thinking" description: "Set the thinking level" - name: "scoped-models" description: "Configure the models used by interactive cycling" - name: "login" description: "Add provider authentication" - name: "logout" description: "Remove provider authentication" - name: "llama" description: "Manage models on the configured llama.cpp router" - name: "new" description: "Start a new session" - name: "resume" description: "Switch to another saved session" - name: "name" description: "Set the session display name, or show the current name when omitted" - name: "session" description: "Show current session information and statistics" - name: "tree" description: "Navigate the session tree" - name: "fork" description: "Create a new session from an earlier user message" - name: "clone" description: "Duplicate the current session at its current position" - name: "compact" description: "Compact the current context, optionally with custom instructions" - name: "import" description: "Import and resume a JSONL session" - name: "copy" description: "Copy the last assistant message" - name: "export" description: "Export the session as HTML or JSONL" - name: "share" description: "Upload the session and return a viewer link" - name: "bug" description: "Prepare a private bug report for the Pi developers" - name: "trust" description: "Save a project trust decision for future Pi processes" - name: "reload" description: "Reload keybindings, extensions, skills, templates, themes, and context files" - name: "hotkeys" description: "Show active keyboard shortcuts" - name: "changelog" description: "Show changelog entries" - name: "quit" description: "Quit Pi" folders: - path: "{home}/.pi/agent/prompts" - path: "{home}/.pi/agent/skills" skills: true prefix: "skill:" - path: "{home}/.agents/skills" skills: true prefix: "skill:" - path: "{folder}/.pi/prompts" - path: "{folder}/.pi/skills" skills: true prefix: "skill:" - path: "{folder}/.agents/skills" skills: true prefix: "skill:"