Coding Agents
Run Claude Code or Codex through Omnigent with a single command. No YAML needed. You get the full platform on top of the coding agent you already use: web UI, persistent sessions, team collaboration, mobile access, and contextual policies.
omni claude # Claude Code
omni codex # Codex
omni goose # Goose
omni hermes # Hermes
omni copilot # GitHub Copilot (SDK harness)
omni devin # Devin
Each command launches a built-in agent — no registration step required. Goose,
Hermes, and Devin boot their own native terminal UI in a pane, wrapped with
Omnigent's web UI, collaboration, and policy layer. omni copilot is shorthand
for omni run --harness copilot and needs the Copilot SDK (copilot extra); see
GitHub Copilot for launch
and auth details. See Harnesses for the full list of
coding agents and their harness ids.
Under the hood, each coding agent runs as a harness: the runtime that executes your agent loop. Omnigent wraps it with a common interface and adds everything a single harness can't provide on its own.
Follow the Coding Agent tutorial to get started in under a minute.
Import existing chats
Already have local Claude Code or Codex history? Bring it into Omnigent as a
normal session with omnigent import. The source transcript is converted to
ordinary Omnigent items and stored as a regular session, so it gains the web UI,
persistence, collaboration, and everything else. A given source session can only
be imported once unless you pass --force to replace the previous import.
Import a single chat by its harness-native session ID:
omnigent import --harness claude --session <session-id>
omnigent import --harness codex --session <session-id>
Or import a batch of your most recent chats with --last N, which imports the
N most recently modified parent sessions (oldest first, up to a maximum of
100):
omnigent import --harness claude --last 10
Provide exactly one of --session or --last — they are mutually exclusive.
To pull recent chats from every supported harness at once, pass
--harness all together with --last N. This merges all harnesses into a
single global recency order and imports the N most recent sessions in total
(not N per harness), each tagged with its own source:
omnigent import --harness all --last 25
--harness all requires --last — a single --session ID belongs to exactly
one harness, so combining all with --session is a usage error.
Re-importing a source session that was already imported is rejected by default.
Pass --force to replace the previous import instead — Omnigent deletes the old
conversation and re-imports the transcript in place, keeping the same session
ID:
omnigent import --harness claude --session <session-id> --force
When importing a batch, sessions that were already imported are skipped and a session that fails to import doesn't stop the rest. Omnigent prints a summary of how many sessions were imported, already imported, and failed, and exits with a non-zero status if any failed.
Importing Codex threads
A Codex thread imports with its whole history, however large the rollout is. Messages, tool calls, and tool output become items (reasoning records are skipped). Each time Codex compacted the thread, the import records a compaction item, so the imported session shows the history you could still read in Codex. When you resume it, the agent starts from the last compaction with the same context Codex itself would hold. A forked or reverted thread also brings in the history it inherited from its base thread.
A thread you archived in Codex is imported as an archived session, so it lands
in Archived instead of the main session list. Re-importing a thread without
--force leaves the existing copy and its archive state unchanged.
One imported session is capped at 100,000 items. A Codex thread over that cap, or over the server's size limit for one session, imports from its last compaction onward instead. A thread that was never compacted can't be trimmed, so its import fails.
A proxy in front of the server can also reject large requests. If
omnigent import gets an HTTP 413 (or an "exceeds maximum allowed content
length" error), it sends the session again starting from its last compaction
and prints a note saying only that part was imported. If the session has no
compaction to fall back to, the import still fails.
Import from the web UI
You can also import from the web UI without touching the terminal. Open Settings › Import sessions and pick one of your online machines. The Import selector offers two modes:
- Recent sessions — choose a harness (or All harnesses) and how many recent sessions to pull (25, 50, or 100).
- Session by ID — choose a specific harness and enter one harness-native session ID to import just that transcript, without listing your local history. All harnesses isn't available in this mode, since a session ID belongs to exactly one harness.
Then click Import. The transcripts live on your machine, so the read happens on that connected machine over its tunnel — the server never sees your local files. Sessions already imported are skipped, and each newly imported session is linked in the result so you can jump straight into it. Codex threads you archived in Codex are imported into Archived, so the session list can show fewer sessions than the import count.
A brand-new account with no sessions yet also gets a one-click Import your 25
most recent sessions button on the empty home screen (importing across all
harnesses from your online machine), plus a Choose what to import link into
the Settings picker. Importing from the web UI requires an online machine —
start one with omnigent host from your terminal if none are connected.