OMP
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
Access
- Get
getHarness("omp") - CLI
harnesses 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}.
- 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.
config
~/.omp/agent/config.ymlProfiles use ~/.omp/profiles/<name>/agent.
~/.omp/agent/settings.json~/.omp/agent/mcp.jsonMCP server configurations.
.omp/config.yml.omp/settings.json
sessions
~/.omp/agent/sessions/<dash-encoded-cwd>/<timestamp>_<session-id>.jsonlPer-project session transcripts in JSONL format; session ids are UUIDv7.
~/.omp/agent/history.dbSQLite prompt history.
~/.omp/agent/agent.dbSQLite agent state database.
instructions
AGENTS.mdDiscovered by walking up from cwd; CLAUDE.md and other vendor files loaded via compatibility providers (claude, codex, gemini, cursor, opencode, and more).
.omp/AGENTS.md.omp/RULES.mdSticky always-apply rules.
~/.omp/agent/AGENTS.mdGlobal user-level instructions.
~/.omp/agent/RULES.mdGlobal sticky always-apply rules.
~/.omp/agent/PERSONALITY.mdOverrides the system prompt's personality block; replaces the configured personality preset.
skills
.omp/skills/Scanned in ancestor directories from cwd, closest first.
~/.omp/agent/skills/~/.omp/agent/managed-skills/Auto-generated managed skills.
commands
.omp/commands/Markdown prompt commands and TypeScript commands; only Markdown files are templates.
~/.omp/agent/commands/Global Markdown prompt commands and TypeScript commands; only Markdown files are templates.
promptTemplates
.omp/commands/Markdown prompt commands and TypeScript commands; only Markdown files are templates.
~/.omp/agent/commands/Global Markdown prompt commands and TypeScript commands; only Markdown files are templates.
.omp/prompts/Markdown prompt templates invoked as /name; subdirectories are scanned.
~/.omp/agent/prompts/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.
PI_CODING_AGENT_DIR~/.omp/agentconfig · sessions · instructions · skills · commands · promptTemplatesIgnored 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
~/.omp/agent/mcp.jsonuser · json · standard · mcpServers.omp/mcp.jsonproject · json · standard · mcpServers
Detection
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.