Pi
The pi coding agent, with status and session resume through its Hivemind extension.
hive agents install pi Run it in a terminal, or find it in Hivemind under Settings ▸ Plugins.
Pi
Runs pi, the Pi command-line agent, in a Hivemind terminal tile.
Pi has no permission system: it always runs autonomously and cannot be supervised.
Before you add it
Hivemind installs no code for it: it runs the pi command you install yourself. Get it from its install page, or run npm install -g --ignore-scripts @earendil-works/pi-coding-agent.
What it can do in Hivemind
- Says when a turn ends, so another agent can hand it work and read its reply (
hive ctl read, workflows). - Picks up the newest session for its folder after a restart.
- Has no permission prompts of its own.
What it asks for
Hivemind shows this before it adds the agent.
- Runs
pi --list-modelsto list model values - Reads {home}/.pi/agent/sessions to find a session to resume
- Reports its status and approval prompts to Hivemind through its own hooks, which can also read and type into your other tiles
Launch options
Set them on its page in Settings ▸ Plugins, or with hive plugins set agent:pi <option> <value>.
| Option | How it is passed |
|---|---|
| Model | --model <value> |
Listed from agent.yaml in this folder; fix it by pull request.
On the canvas
- Resumes a session: yes
- Reports when a turn ends: yes
- Can be supervised by another agent: yes
pi has no permission system: it always runs autonomously and cannot be supervised.
This adds Pi to Hivemind. Install pi itself too, if you don't have it.
Files
From dip497/hivemind-plugins at 60eafbb. Hivemind checks each file's checksum as it downloads, and stops if one changed.
agent.yaml83f3577848b9hive-pi-ext.mjs01d5891369f6README.md1b8d9df928e8
agent.yaml
# 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: <message>"
# (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:"
Hivemind shows you this list and asks before it installs.
- runs
pi --list-modelsto list model values - reads {home}/.pi/agent/sessions to find a session to resume
- reports its status and approval prompts to Hivemind through its own hooks, which can also read and type into your other tiles
| Version | Commit | Listed |
|---|---|---|
| 1.0.0 | 60eafbb | October 28, 2026 |
Needs Hivemind 2026.10.2 or newer.
HiveHub keeps the version listed last. The ones before it are in the repository's history.
Something wrong with it? Report it.