Harnesses

Prime Agent

Prime Intellect's Pi fork. One Python REPL as the only tool, flat JSONL sessions with artifacts beside them, model listing, advisor and agent modes but nothing read-only.
getHarness
getHarness("prime-agent")
binary
prime-agent
invoke modes
4 of 6 · official
model listing
native
mcp config
json · prime
agents file
~/.prime/agent/AGENTS.md

Prime Agent is Pi underneath, with ~/.prime/agent/ in place of ~/.pi/agent/ and, less obviously, .prime/agent/ as the project directory rather than .prime/. PRIME_AGENT_CODING_AGENT_DIR moves the whole thing. Sessions are one flat directory of <uuidv7>.jsonl files whose header carries the working directory, and each root session gets a session-artifacts/<id>/ next to it with the pickled Python kernel state, scheduled jobs, harness state and the transcripts of every subagent it spawned.

The model gets exactly one built-in tool, ipython. Files, shell, MCP servers and subagents are all code it runs in that REPL, which is why there is no read-only recipe here: an allowlist with a single Python tool restricts nothing, and the kernel is a process boundary, not a sandbox. --no-tools does take everything away, so the advisor mode is real. --mode json works on both. Models come from prime-agent model list, the same table Pi prints, and --list-models now only tells you it was removed.

Skills load from .prime/agent/skills/ and from .agents/skills/ in the cwd and its ancestors up to the repository root, plus the user twins of both. MCP servers sit under mcpServers in the user settings.json in the standard shape, except that stdio env values have to be {"env": "NAME"} references, which is why the registry gives it its own prime dialect: a master value of ${NAME} is written as that reference and read back the same way, and a literal is refused up front rather than left as a server that fails on its first connection. Detection is by PRIME_AGENT_KERNEL_OWNER_PID, which reaches the shells the REPL spawns but not stdio MCP servers, those get a trimmed environment. The harness is registered ahead of Pi on purpose, because the fork still exports PI_CODING_AGENT and would otherwise be reported as Pi.

Capabilities and invocation

mcp: yesvision: yesaudio: novideo: notools: yesstreaming: yes

Binary prime-agent, evidence official. Add --mode json for structured event output. No read-only mode: the only built-in tool is a Python REPL and the worker and kernel processes are not a security sandbox. Model selection appends --model {model}.

advisor

{}

-p --no-tools {prompt}

advisor · json

{ structured: true }

-p --no-tools --mode json {prompt}

read-only

{ readOnly: true }

rejected

read-only · json

{ readOnly: true, structured: true }

rejected

agent

{ tools: true }

-p {prompt}

agent · json

{ tools: true, structured: true }

-p --mode json {prompt}

Model listing runs prime-agent model list and model list {search} with a filter. Lists models with configured provider authentication; accepts an optional fuzzy search. --list-models was removed.

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

  • ~/.prime/agent/settings.jsonuser · official · allConfig dir overridable with PRIME_AGENT_CODING_AGENT_DIR.
  • .prime/agent/settings.jsonproject · official · all

sessions

  • ~/.prime/agent/sessions/<session-id>.jsonldata · official · allFlat directory of JSONL transcripts whose header records the working directory; session ids are UUIDv7. Overridable with PRIME_AGENT_SESSION_DIR or --session-dir.
  • ~/.prime/agent/session-artifacts/<session-id>/data · official · allPer-session Python kernel state, scheduled jobs, harness state and child session transcripts under sub-<id>/.

instructions

  • AGENTS.mdproject · official · allLoaded from parent directories and cwd; CLAUDE.md accepted as an alternative.
  • .prime/agent/SYSTEM.mdproject · official · allReplaces the default system prompt; APPEND_SYSTEM.md appends instead.
  • ~/.prime/agent/AGENTS.mduser · official · allGlobal user-level instructions; CLAUDE.md accepted as an alternative.
  • ~/.prime/agent/SYSTEM.mduser · official · allGlobal system prompt replacement; APPEND_SYSTEM.md appends instead.

skills

  • .prime/agent/skills/project · official · all
  • .agents/skills/project · official · allAlso scanned in ancestor directories up to the Git repository root; root .md files are ignored there.
  • ~/.prime/agent/skills/user · official · allGlobal user-level skills.
  • ~/.agents/skills/user · official · allShared skills directory; root .md files are ignored there.

commands

  • .prime/agent/prompts/project · official · allPrompt templates invoked as slash commands.
  • ~/.prime/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

~/.prime/agent/settings.jsonuser · json · prime · mcpServers

Detection

envVars

PRIME_AGENT_KERNEL_OWNER_PID

projectMarkers

.prime/agent

Persistence

  • JSON - Settings, auth, telemetry, model cache and session artifact state files. (official)
  • JSONL - Session transcripts, the RLM spawn ledger and structured logs. (official)
  • dill - Pickled Python REPL state (kernel-state.dill) in session artifacts. (official)

syncAgentsFiles links ~/.prime/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.