Harnesses

OMP

oh-my-pi, a Pi fork. Profiles under ~/.omp, YAML config, sticky RULES.md and a PERSONALITY.md, JSONL sessions with SQLite state, no advisor mode.
IDomp10 / 1323 paths · env + project
Harness

OMP (oh-my-pi)

  • omp

Pi fork with profiles, sticky RULES.md and a PERSONALITY.md. No advisor mode.

Invoke
2 of 6 · official
Models
native listing
MCP
json · standard
Agents file
~/.omp/agent/AGENTS.md
Inferred 0 / 23

Access

GetgetHarness("omp")
CLIharnesses paths omp --json
Tryomp in the explorer

OMP keeps Pi's session layout, JSONL per project with UUIDv7 ids, and adds profiles: ~/.omp/profiles/<name>/agent replaces ~/.omp/agent when one is active, and PI_CODING_AGENT_DIR overrides the directory outright. Config is config.yml plus settings.json and mcp.json. Prompt history, agent state and the model catalog are three SQLite databases.

Instructions go beyond AGENTS.md: .omp/RULES.md and its global twin are sticky rules applied every turn, PERSONALITY.md replaces the system prompt's personality block. --no-tools only disables OMP's bundled tools, not extensions, so it does not qualify as an advisor without tools and the mode is rejected. The OMP extension in this package registers the eleven tools in OMP itself.

listModels reads omp models --json and keeps to chat models, since nobody hands a coding task to an embedding model. Search goes through omp models find, which matches the provider and the display name too. Both run with --no-extensions. Why? A broken extension prints its load errors first, and the model list shouldn't die with it.

Capabilities and invocation

  • mcp: yes
  • vision: yes
  • audio: no
  • video: no
  • tools: yes
  • streaming: yes

Binary omp, evidence official. Add --mode json for structured event output. --no-tools disables only OMP's bundled tools, so it cannot provide an advisor mode without tools. Model selection appends --model={model}.

Callinvoke(prompt, options)2 of 6 modes
  • advisor{}rejected
  • advisor · json{ structured: true }rejected
  • 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 omp models --json --kind chat --no-extensions and models find --json --kind chat --no-extensions -- {search} with a filter. Lists chat models with configured provider authentication as JSON; find matches a substring of the provider, id or name, ignoring case. --no-extensions keeps extension load errors out of the run; verified with 18.4.10.

Paths

Templates as the registry stores them. ~, ${HOME}, ${TMPDIR} 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.

PathsgetHarness("omp")23 templates · 6 groups

config

  • ~/.omp/agent/config.ymluserofficialall

    Profiles use ~/.omp/profiles/<name>/agent.

  • ~/.omp/agent/settings.jsonuserofficialall
  • ~/.omp/agent/mcp.jsonuserofficialall

    MCP server configurations.

  • .omp/config.ymlprojectofficialall
  • .omp/settings.jsonprojectofficialall

sessions

  • ~/.omp/agent/sessions/<dash-encoded-cwd>/<timestamp>_<session-id>.jsonldataofficialall

    Per-project session transcripts in JSONL format; session ids are UUIDv7.

  • ~/.omp/agent/history.dbdataofficialall

    SQLite prompt history.

  • ~/.omp/agent/agent.dbdataofficialall

    SQLite agent state database.

instructions

  • AGENTS.mdprojectofficialall

    Discovered by walking up from cwd; CLAUDE.md and other vendor files loaded via compatibility providers (claude, codex, gemini, cursor, opencode, and more).

  • .omp/AGENTS.mdprojectofficialall
  • .omp/RULES.mdprojectofficialall

    Sticky always-apply rules.

  • ~/.omp/agent/AGENTS.mduserofficialall

    Global user-level instructions.

  • ~/.omp/agent/RULES.mduserofficialall

    Global sticky always-apply rules.

  • ~/.omp/agent/PERSONALITY.mduserofficialall

    Overrides the system prompt's personality block; replaces the configured personality preset.

skills

  • .omp/skills/projectofficialall

    Scanned in ancestor directories from cwd, closest first.

  • ~/.omp/agent/skills/userofficialall
  • ~/.omp/agent/managed-skills/userofficialall

    Auto-generated managed skills.

commands

  • .omp/commands/projectofficialall

    Markdown prompt commands and TypeScript commands; only Markdown files are templates.

  • ~/.omp/agent/commands/userofficialall

    Global Markdown prompt commands and TypeScript commands; only Markdown files are templates.

promptTemplates

  • .omp/commands/projectofficialall

    Markdown prompt commands and TypeScript commands; only Markdown files are templates.

  • ~/.omp/agent/commands/userofficialall

    Global Markdown prompt commands and TypeScript commands; only Markdown files are templates.

  • .omp/prompts/projectofficialall

    Markdown prompt templates invoked as /name; subdirectories are scanned.

  • ~/.omp/agent/prompts/userofficialall

    Global Markdown prompt templates, separate from executable commands.

Empty

hookstempThat is not the same as the feature being missing.

Env overrides

Variables the harness reads to move a root. The path is the default while the variable is unset; resolve() applies a set one to temp.

EnvenvOverrides1 variables
  • PI_CODING_AGENT_DIR~/.omp/agentconfig · sessions · instructions · skills · commands · promptTemplates

    Ignored under a named profile (OMP_PROFILE). On Linux, after omp config init-xdg, data, state and cache live under $XDG_*_HOME/omp instead.

MCP servers

FilemcpConfigs2 files
  • ~/.omp/agent/mcp.jsonuser · json · standard · mcpServers
  • .omp/mcp.jsonproject · json · standard · mcpServers

Detection

CalldetectHarness()env, then project

envVars

  • OMP_PROFILE
  • PI_CODING_AGENT_DIR

projectMarkers

  • .omp

Persistence

  • YAML - config.yml configuration files. (official)
  • JSON - settings.json and mcp.json. (official)
  • JSONL - Session transcripts. (official)
  • SQLite - Agent state, prompt history, model catalog (agent.db, history.db, models.db). (official)

syncAgentsFiles links ~/.omp/agent/AGENTS.md to the master bundle.