Harnesses are adapters that connect Omnigent’s runner to a specific agent runtime or SDK. When a session starts, the runner loads the harness declared in the agent spec (or passed on the CLI), hands it the model credentials from the user’s machine, and delegates the entire LLM loop to it. Swapping harnesses is a one-line change in YAML or a single CLI flag — no rewriting of agent logic.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/omnigent-ai/omnigent/llms.txt
Use this file to discover all available pages before exploring further.
Supported Harnesses
| Harness | Description | Credential type | Notes |
|---|---|---|---|
claude-sdk | Claude Code via the claude-agent-sdk Python package | Anthropic API key, Claude subscription, or compatible gateway | Default alias: claude |
openai-agents | OpenAI Agents SDK | OpenAI API key or compatible gateway | Alias: openai-agents-sdk |
codex | OpenAI Codex CLI via the @openai/codex npm package | OpenAI API key or ChatGPT subscription | Requires Node.js 22 LTS+ |
pi | Pi harness (Anthropic Pi) | Claude subscription or API key | Requires Node.js 22 LTS+ |
claude-native | Native Claude Code CLI, tmux-based | Claude subscription | Boots from Claude Code’s own on-disk transcript |
codex-native | Native Codex CLI, tmux-based | OpenAI/ChatGPT subscription | Boots from Codex’s own on-disk transcript |
The native harnesses (
claude-native, codex-native) require tmux and launch the underlying CLI in a managed terminal pane. The SDK harnesses (claude-sdk, openai-agents, codex, pi) run as Python or Node subprocesses and do not require tmux.Selecting a Harness
The harness for an agent is set in two places: In the agent YAML (executor.harness):
--harness flag:
--harness takes precedence over the YAML declaration for the top-level agent (sub-agents keep their own harness as declared in their spec).
Switching Harnesses at Runtime
You can override the harness for any agent — including the bundled example agents — without editing their YAML files. For example, to run the Polly multi-agent orchestrator using thepi harness instead of its default:
Model Selection Within a Harness
You can choose which model a harness uses in three ways, from highest to lowest precedence: CLI flag — applies to the current run only:/model command — switches the model mid-conversation in the REPL:
executor.model in the agent YAML — sets the default model for an agent:
Gateways
Instead of a first-party API key, you can point any harness at an OpenAI- or Anthropic-compatible gateway — OpenRouter, Ollama, LiteLLM, vLLM, Azure, or any other compatible backend. Gateways are configured viaomnigent setup and stored as named credential entries.
The base URL depends on which harness family the gateway serves:
| Provider | For harness | Base URL | Key |
|---|---|---|---|
| OpenRouter | claude-sdk | https://openrouter.ai/api | Your OpenRouter key (sk-or-…) |
| OpenRouter | codex / openai-agents | https://openrouter.ai/api/v1 | Your OpenRouter key (sk-or-…) |
| Ollama (local) | codex / openai-agents | http://localhost:11434/v1 | Any value (Ollama ignores it) |
omnigent setup. The gateway entry becomes selectable as a credential for any harness in the same family.
Configuring Credentials
Omnigent works with four kinds of credentials:API Key
A first-party vendor key for Anthropic, OpenAI, and similar providers. Stored in the system keychain or referenced via an environment variable.
Subscription
A Claude Pro/Max or ChatGPT plan, via the official
claude or codex CLIs. omnigent setup drives the harness’s own login flow.Gateway
Any OpenAI- or Anthropic-compatible
base_url and key (OpenRouter, LiteLLM, Ollama, vLLM, Azure). Configured with a name, URL, and key in omnigent setup.Databricks
A Databricks workspace profile that routes model calls through Unity AI Gateway. Requires the
databricks extra (uv tool install "omnigent[databricks]").