Skip to main content

Omnigent vs using Pi directly?

Summary

  • Pi is a minimal, extensible agent harness (MIT) that you run in a terminal and shape with extensions, skills, prompt templates and themes. Omnigent is a meta-harness that can run Pi as one of its harnesses, next to Claude Code, Codex, Cursor, OpenCode, Hermes and custom agents.
  • Use Pi directly for focused, single-agent coding work you want to customize yourself: pi opens its terminal UI, and --print, --mode json and --mode rpc cover automation.
  • Pi skips sub-agents and plan mode by design, and it has no built-in permission system, so it runs with the permissions of whoever launched it.
  • Through Omnigent, Pi gets policies, an OS sandbox on Linux and macOS, shared sessions and a supervisor that can delegate to it. The open-source project lists "Status: alpha"; on Databricks, "Omnigent is in Beta".

Omnigent vs using Pi directly?

Use Pi directly when one agent, shaped your way, is all you need. Run it through Omnigent when Pi is one worker in a larger setup that needs guardrails, sharing or other agents. Pi's README is open about the trade: it "skips features like sub-agents and plan mode" and "does not include a built-in permission system". Omnigent adds those layers around Pi without changing Pi itself.

What is Pi?

Pi, from the earendil-works/pi repository (MIT), describes itself as "a minimal, extensible agent harness that you can make your own". Its npm package, @earendil-works/pi-coding-agent, is an interactive coding agent CLI. You install it with the pi.dev install script, a PowerShell installer on Windows, or npm, and it needs Node.js 22.19 or newer. Start pi in a project directory, run /login to connect a subscription or API key, and give it a task. You customize it with extensions, skills, prompt templates and themes, and you can bundle those as Pi packages shared through npm or git. For automation, Pi has print, JSON and RPC modes plus a TypeScript SDK:

pi --print "Summarize this repository"
git diff | pi --print "Review this change"
pi --mode json "Inspect this repository" > events.jsonl

Pi discovers AGENTS.md and CLAUDE.md context files, and --no-context-files turns that off.

What does Omnigent add on top of Pi?

Omnigent runs Pi under two harness ids: pi, where Omnigent drives the model and tools itself, and pi-native, where it boots Pi's own terminal UI in a pane and mirrors it back. Pi's support tier is Maintained, meaning it's tested in CI. You launch it with omnigent pi, or select it in agent YAML:

name: focused-agent
executor:
  harness: pi
  system_prompt_mode: replace
  context_files: false
prompt: |
  Review the diff and list risky changes.

context_files: false maps to Pi's --no-context-files flag. system_prompt_mode is append by default, which keeps Pi's base prompt and appends Omnigent's instructions, or replace, which sends Omnigent's instructions as the base. Both options work only with pi, not pi-native, and Pi's skills and extension hooks stay active either way.

How do Pi directly and Pi through Omnigent compare?

Aspect Pi directly Pi through Omnigent
Interfaces Terminal UI, print, JSON and RPC modes, TypeScript SDK pi or pi-native, plus the web UI, phone and desktop app
Sub-agents Skipped by design; add them with a package Pi can be a sub-agent that a supervisor delegates to
Permissions None built in; runs as the launching user; containerize for stronger boundaries Policies at server, agent and session level
Sandboxing Bring your own, such as a container On Linux the pi harness runs inside a mandatory bwrap sandbox; macOS uses seatbelt
Scheduling Call pi --print from a scheduler you run Automations on RFC 5545 RRULE schedules
License MIT Apache 2.0, "Status: alpha"

Omnigent's harness docs describe Pi as "a headless multi-model worker that runs on any gateway model", suited to "review, exploration, and read-heavy tasks delegated by a supervisor agent". Omnigent's Polly example follows that pattern: it delegates to coding sub-agents, Claude Code, Codex or Pi, in parallel git worktrees, then routes each diff to a reviewer from a different vendor.

When should you use which?

Use Pi directly if you want a small harness to extend yourself, you script it with --print or RPC, and you already run it in a container or VM when you need isolation. Use Pi through Omnigent if you want approvals before shell or file actions, spend caps, a sandbox you don't have to build, teammates in the same session, or Pi working as one worker under a supervisor agent.

How Databricks approaches Pi and Omnigent

On Databricks, "Omnigent is in Beta". The Databricks overview names Pi among the agents Omnigent covers. Databricks provides a managed Omnigent server that integrates with your workspace's identity provider, model access through the Foundation Model APIs and Unity Gateway, and Databricks Sandbox hosts. In omni setup, credentials are scoped per harness, and choosing Databricks routes that harness's model calls through Unity Gateway. A Databricks Sandbox host always routes model access through Unity Gateway, so you can't bring your own model API keys to it, and custom policies there are written in Common Expression Language (CEL), not Python.

FAQs

Is Pi a coding agent or a research assistant?

A coding agent. Its package is @earendil-works/pi-coding-agent, and its system prompt defaults to Pi's built-in coding prompt. Omnigent positions it for review, exploration and read-heavy work.

Does Pi sandbox itself?

No. Pi's README says it runs with the permissions of the user and process that launched it, and it suggests a Gondolin extension, plain Docker or OpenShell for stronger boundaries.

Do my Pi skills and extensions still work inside Omnigent?

With the pi harness, yes: Omnigent's agent spec says skills and extension hooks remain active, and extensions can still modify the final prompt.

The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.