Databricks Open-Sources Omnigent: A Meta-Harness That Composes, Governs, and Shares AI Agents Across Claude Code, Codex, and Pi

by CryptoExpert
synthesia


Databricks released Omnigent, an open source ‘meta-harness’ for AI agents. The project ships under the Apache 2.0 license. The Databricks AI team built it with Neon.

A harness is the wrapper around a model that turns it into an agent. Claude Code, Codex, and Pi are harnesses. Omnigent sits one level above them. It treats each harness as an interchangeable part of a larger system.

Many engineers now juggle four or five agents at once. They copy text between coding agents, search tools, Docs, and Slack. Each harness only understands its own sessions. Omnigent adds a shared layer where composition, control, and collaboration live.

What is Omnigent

Omnigent is a common interface above command-line agents and agent SDKs. It wraps terminal coding agents such as Claude Code, Codex, and Pi. It also wraps SDKs like OpenAI Agents and the Claude Agents SDK.

10web

The design rests on one observation. However a harness calls its model internally, the user-facing interface is the same. Messages and files go in. Text streams and tool calls come out. Omnigent standardizes that interface so harnesses become swappable.

You supply the models and the infrastructure. Omnigent runs the agents on top. It can coordinate several of them as interchangeable workers under one orchestrator.

How Omnigent Works

The architecture has two parts. A runner wraps any agent in a sandboxed session with a uniform API. A server provides policies and sharing. The server exposes every session over the terminal, the app, and web APIs.

One command starts a session in your terminal. It also launches a local web UI at localhost:6767. The same session appears in the browser or on a phone. Messages, sub-agents, terminals, and files stay in sync.

The CLI installs under two names, omnigent and omni. They are interchangeable. On first run, it detects model credentials already in your environment.

https://omnigent.ai/

Composition, Control, and Collaboration

Databricks team frames Omnigent around three capabilities:

  • Composition means combining models, harnesses, and techniques without rewriting code. You switch between Claude Code, Codex, Pi, and custom agents with one-line changes.
  • Control means stateful, contextual policies. They track agent actions and enforce guardrails at the meta-harness layer, not through prompts. One example pauses an agent after every $100 it spends. Another requires human approval to git push once the agent installs a new npm package.
  • Collaboration means sharing live agent sessions by URL. Teammates watch the agent work and chat with it in real time. They can comment on files, co-drive the session, or fork the conversation.

An OS sandbox, called Omnibox, underpins this. It can lock down OS access and transform network requests. For instance, it can keep your GitHub token hidden from the agent. The token is injected only in the egress proxy on approved requests.

Use Cases and Examples

Two example agents ship with the repository:

  • Polly is a multi-agent coding orchestrator. It writes no code itself. It plans, then delegates work to coding sub-agents in parallel git worktrees. Each diff routes to a reviewer from a different vendor than the writer. You merge the result.
  • Debby is a brainstorming partner with two heads. One head is Claude, the other GPT. Every question goes to both, with answers shown side by side. Type /debate and the heads critique each other before converging.

Other practical patterns follow the same shape. A frontier advisor model can guide a cheaper open-source worker. A lead agent can orchestrate parallel subagents. Different LLMs can handle planning, search, and code generation in one flow.

Interactive Concept Demo

Marktechpost team has created a interactive demo (below) that lets you experience Omnigent’s meta-harness workflow firsthand. You pick a task for the Polly orchestrator, which plans it and delegates to three sub-agents: Claude Code, Codex, and Pi that are running in parallel and streaming their steps live. A session cost meter ticks up as they work, and the two policy toggles show Omnigent’s control layer in action: the cost budget pauses the run at $3.00 for your approval, and a contextual policy halts a git push that follows an npm install until you allow it. Once the sub-agents finish, each diff is cross-reviewed by a different vendor than the one that wrote it, then marked ready to merge. Terminal, Web, and Mobile tabs show the same session staying in sync across interfaces. It’s an illustrative simulation, no live models are called.

Omnigent Meta-Harness

One orchestrator. Many harnesses. One governed session.

Interactive concept demo

1 · Pick a task for the orchestrator (Polly)

Build REST endpoint + tests
Refactor auth module
Add caching layer

2 · Policies (control layer)


Cost budget — pause at $3.00


Approve git push after npm install

▶ Run session

⌘ Terminal
▤ Web UI
▢ Mobile
same session · in sync

Session LLM cost
$0.00
Orchestrator · Polly (writes no code; plans & delegates)
Idle. Pick a task and press “Run session”.

Claude Codewaiting

Codexwaiting

Piwaiting

Illustrative simulation of the Omnigent workflow — no live models are called.
Learn more at omnigent.ai ·
GitHub · Apache 2.0 · Alpha.


Marktechpost
·
AI Dev & Research Media

/* ===== scoped reset ===== */
#omnigent-demo *{box-sizing:border-box!important;margin:0;padding:0}
#omnigent-demo{
background:#0b0b0c!important;color:#e8e8ea!important;
font-family:-apple-system,BlinkMacSystemFont,”Segoe UI”,Roboto,Helvetica,Arial,sans-serif!important;
border:1px solid #1f1f22!important;border-radius:16px!important;
padding:0!important;line-height:1.5!important;
max-width:920px!important;margin:0 auto!important;overflow:hidden!important;
}
#omnigent-demo hr,#omnigent-demo p:empty,#omnigent-demo del,#omnigent-demo s{display:none!important}
#omnigent-demo .og-wrap{padding:22px!important}
#omnigent-demo code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;
background:#16161a!important;color:#9fd356!important;padding:1px 5px!important;border-radius:5px!important;font-size:.85em!important}

/* ===== header ===== */
#omnigent-demo .og-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;margin-bottom:18px!important}
#omnigent-demo .og-brand{display:flex!important;align-items:center!important;gap:13px!important}
#omnigent-demo .og-logo{font-size:30px!important;color:#76B900!important;line-height:1!important;text-shadow:0 0 18px rgba(118,185,0,.5)!important}
#omnigent-demo .og-title{font-size:21px!important;font-weight:700!important;color:#fff!important;letter-spacing:-.3px!important}
#omnigent-demo .og-title span{color:#76B900!important;font-weight:600!important}
#omnigent-demo .og-sub{font-size:12.5px!important;color:#8a8a90!important;margin-top:2px!important}
#omnigent-demo .og-badge{font-size:11px!important;color:#76B900!important;border:1px solid #2f3a14!important;background:#13160a!important;padding:5px 10px!important;border-radius:999px!important;white-space:nowrap!important}

/* ===== controls ===== */
#omnigent-demo .og-controls{display:grid!important;grid-template-columns:1fr 1fr auto!important;gap:16px!important;align-items:end!important;
background:#101012!important;border:1px solid #1d1d21!important;border-radius:12px!important;padding:16px!important;margin-bottom:14px!important}
#omnigent-demo .og-field > label{display:block!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.6px!important;color:#74747c!important;margin-bottom:9px!important;font-weight:600!important}
#omnigent-demo .og-chips{display:flex!important;flex-wrap:wrap!important;gap:7px!important}
#omnigent-demo .og-chip{font-size:12.5px!important;color:#cfcfd4!important;background:#17171b!important;border:1px solid #26262c!important;
padding:7px 11px!important;border-radius:8px!important;cursor:pointer!important;transition:.15s!important;font-family:inherit!important}
#omnigent-demo .og-chip:hover{border-color:#3a3a42!important;color:#fff!important}
#omnigent-demo .og-chip.og-active{background:#13160a!important;border-color:#76B900!important;color:#9fd356!important}
#omnigent-demo .og-toggles{display:flex!important;flex-direction:column!important;gap:9px!important}
#omnigent-demo .og-toggle{display:flex!important;align-items:center!important;gap:9px!important;cursor:pointer!important;font-size:12.5px!important;color:#cfcfd4!important}
#omnigent-demo .og-toggle input{position:absolute!important;opacity:0!important;width:0!important;height:0!important}
#omnigent-demo .og-track{width:34px!important;height:19px!important;border-radius:999px!important;background:#26262c!important;position:relative!important;flex:0 0 auto!important;transition:.18s!important}
#omnigent-demo .og-track::after{content:””;position:absolute!important;top:2px!important;left:2px!important;width:15px!important;height:15px!important;border-radius:50%!important;background:#76767e!important;transition:.18s!important}
#omnigent-demo .og-toggle input:checked + .og-track{background:#2f4d05!important}
#omnigent-demo .og-toggle input:checked + .og-track::after{transform:translateX(15px)!important;background:#76B900!important}
#omnigent-demo .og-tlabel b{color:#9fd356!important}
#omnigent-demo .og-run{align-self:end!important;background:#76B900!important;color:#0b0b0c!important;border:none!important;font-weight:700!important;
font-size:14px!important;padding:13px 20px!important;border-radius:10px!important;cursor:pointer!important;font-family:inherit!important;transition:.15s!important;white-space:nowrap!important}
#omnigent-demo .og-run:hover{background:#88d100!important;box-shadow:0 0 22px rgba(118,185,0,.35)!important}
#omnigent-demo .og-run:disabled{background:#2a2a2e!important;color:#6a6a72!important;cursor:not-allowed!important;box-shadow:none!important}

/* ===== tabs ===== */
#omnigent-demo .og-tabs{display:flex!important;align-items:center!important;gap:6px!important;margin-bottom:0!important;border-bottom:1px solid #1d1d21!important;padding-bottom:0!important}
#omnigent-demo .og-tab{background:none!important;border:none!important;border-bottom:2px solid transparent!important;color:#8a8a90!important;
font-size:13px!important;padding:9px 13px!important;cursor:pointer!important;font-family:inherit!important;transition:.15s!important}
#omnigent-demo .og-tab:hover{color:#cfcfd4!important}
#omnigent-demo .og-tab.og-active{color:#fff!important;border-bottom-color:#76B900!important}
#omnigent-demo .og-sync{margin-left:auto!important;font-size:11px!important;color:#5a5a62!important}

/* ===== stage ===== */
#omnigent-demo .og-stage{background:#0e0e10!important;border:1px solid #1d1d21!important;border-top:none!important;
border-radius:0 0 12px 12px!important;padding:16px!important}
#omnigent-demo .og-stage[data-if=”mobile”]{max-width:420px!important;margin:0 auto!important;border-top:1px solid #1d1d21!important;border-radius:12px!important;margin-top:10px!important}
#omnigent-demo .og-stage[data-if=”web”] .og-orch,#omnigent-demo .og-stage[data-if=”web”] .og-col{border-radius:12px!important}

/* cost meter */
#omnigent-demo .og-meter{margin-bottom:14px!important}
#omnigent-demo .og-meter-row{display:flex!important;justify-content:space-between!important;font-size:12px!important;color:#8a8a90!important;margin-bottom:6px!important}
#omnigent-demo .og-cost{color:#fff!important;font-family:ui-monospace,monospace!important;font-weight:700!important}
#omnigent-demo .og-bar{height:6px!important;background:#1a1a1e!important;border-radius:999px!important;overflow:hidden!important}
#omnigent-demo .og-bar-fill{height:100%!important;width:0%!important;background:linear-gradient(90deg,#76B900,#b6f000)!important;transition:width .35s ease!important}
#omnigent-demo .og-bar-fill.og-over{background:linear-gradient(90deg,#ff7a45,#ff5c5c)!important}

/* orchestrator */
#omnigent-demo .og-orch{background:#101013!important;border:1px solid #20202a!important;border-radius:10px!important;margin-bottom:14px!important;overflow:hidden!important}
#omnigent-demo .og-orch-head{font-size:12.5px!important;color:#cfcfd4!important;padding:10px 13px!important;border-bottom:1px solid #1d1d21!important;display:flex!important;align-items:center!important;gap:8px!important}
#omnigent-demo .og-orch-head em{color:#6a6a72!important;font-style:normal!important;font-size:11.5px!important}
#omnigent-demo .og-dot{width:8px!important;height:8px!important;border-radius:50%!important;background:#76B900!important;box-shadow:0 0 9px #76B900!important;flex:0 0 auto!important}
#omnigent-demo .og-orch-log{padding:11px 13px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:12.5px!important;max-height:150px!important;overflow-y:auto!important}
#omnigent-demo .og-line{padding:2px 0!important;color:#c4c4cc!important;animation:ogfade .3s ease!important;height:auto!important}
#omnigent-demo .og-muted{color:#5a5a62!important}
#omnigent-demo .og-line b{color:#9fd356!important;font-weight:600!important}
@keyframes ogfade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

/* sub-agent grid */
#omnigent-demo .og-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:11px!important}
#omnigent-demo .og-col{background:#101013!important;border:1px solid #20202a!important;border-radius:10px!important;overflow:hidden!important;min-height:120px!important}
#omnigent-demo .og-col-head{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:9px 11px!important;border-bottom:1px solid #1d1d21!important}
#omnigent-demo .og-pill{font-size:11.5px!important;font-weight:700!important;padding:3px 8px!important;border-radius:6px!important}
#omnigent-demo .og-claude{background:#3a221a!important;color:#e8916b!important}
#omnigent-demo .og-codex{background:#0f2e26!important;color:#3fd6ab!important}
#omnigent-demo .og-pi{background:#1e1f3a!important;color:#9aa0ff!important}
#omnigent-demo .og-state{font-size:10.5px!important;color:#6a6a72!important;text-transform:uppercase!important;letter-spacing:.4px!important}
#omnigent-demo .og-state.og-working{color:#76B900!important}
#omnigent-demo .og-state.og-done{color:#9fd356!important}
#omnigent-demo .og-state.og-review{color:#e8a93b!important}
#omnigent-demo .og-col-log{padding:10px 11px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:11.5px!important;color:#a8a8b0!important;min-height:70px!important}
#omnigent-demo .og-col-log .og-line{padding:1.5px 0!important}

/* result */
#omnigent-demo .og-result{display:none!important;align-items:center!important;gap:12px!important;margin-top:14px!important;
background:#10180a!important;border:1px solid #2f4d05!important;border-radius:10px!important;padding:13px 15px!important;font-size:13.5px!important;animation:ogfade .4s ease!important}
#omnigent-demo .og-result.og-show{display:flex!important}
#omnigent-demo .og-result b{color:#fff!important}
#omnigent-demo .og-result span#og-result-detail{color:#9aa78c!important;display:block!important;font-size:12px!important;margin-top:2px!important}
#omnigent-demo .og-check{font-size:22px!important;color:#76B900!important}

#omnigent-demo .og-foot{font-size:11.5px!important;color:#5a5a62!important;margin-top:14px!important;text-align:center!important}
#omnigent-demo .og-foot a{color:#9fd356!important;text-decoration:none!important}
#omnigent-demo .og-foot a:hover{text-decoration:underline!important}

/* marktechpost brand bar */
#omnigent-demo .og-brandbar{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
margin-top:14px!important;padding:11px 14px!important;background:#0e0e10!important;border:1px solid #1d1d21!important;
border-radius:10px!important;text-decoration:none!important;transition:.18s!important}
#omnigent-demo .og-brandbar:hover{border-color:#2f3a14!important;background:#101206!important}
#omnigent-demo .og-mtp-dot{width:9px!important;height:9px!important;border-radius:50%!important;flex:0 0 auto!important;
background:#76B900!important;box-shadow:0 0 10px rgba(118,185,0,.6)!important}
#omnigent-demo .og-mtp-name{font-size:13.5px!important;font-weight:700!important;color:#fff!important;letter-spacing:-.2px!important}
#omnigent-demo .og-brandbar:hover .og-mtp-name{color:#9fd356!important}
#omnigent-demo .og-mtp-sep{color:#3a3a42!important;font-size:13px!important}
#omnigent-demo .og-mtp-tag{font-size:11.5px!important;color:#74747c!important;text-transform:uppercase!important;letter-spacing:.6px!important}

/* modal */
#omnigent-demo .og-modal{position:absolute!important;inset:0!important;background:rgba(5,5,6,.82)!important;display:none!important;align-items:center!important;justify-content:center!important;z-index:30!important;backdrop-filter:blur(2px)!important;border-radius:16px!important;animation:ogfade .2s ease!important}
#omnigent-demo .og-modal.og-show{display:flex!important}
#omnigent-demo{position:relative!important}
#omnigent-demo .og-modal-card{background:#121215!important;border:1px solid #2a2a32!important;border-radius:14px!important;padding:22px!important;max-width:380px!important;width:90%!important;text-align:center!important;box-shadow:0 20px 60px rgba(0,0,0,.6)!important}
#omnigent-demo .og-modal-icon{font-size:30px!important;margin-bottom:8px!important}
#omnigent-demo .og-modal-card h3{font-size:16px!important;color:#fff!important;margin-bottom:8px!important}
#omnigent-demo .og-modal-card p{font-size:13px!important;color:#a8a8b0!important;margin-bottom:18px!important;line-height:1.55!important}
#omnigent-demo .og-modal-card p code{font-size:12px!important}
#omnigent-demo .og-modal-actions{display:flex!important;gap:9px!important}
#omnigent-demo .og-btn-ghost,#omnigent-demo .og-btn-go{flex:1!important;padding:11px!important;border-radius:9px!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;font-family:inherit!important;border:1px solid transparent!important}
#omnigent-demo .og-btn-ghost{background:#1a1a1e!important;border-color:#2a2a32!important;color:#cfcfd4!important}
#omnigent-demo .og-btn-ghost:hover{border-color:#ff5c5c!important;color:#ff8b8b!important}
#omnigent-demo .og-btn-go{background:#76B900!important;color:#0b0b0c!important}
#omnigent-demo .og-btn-go:hover{background:#88d100!important}

/* ===== mobile ===== */
@media (max-width:640px){
#omnigent-demo .og-controls{grid-template-columns:1fr!important}
#omnigent-demo .og-run{width:100%!important}
#omnigent-demo .og-grid{grid-template-columns:1fr!important}
#omnigent-demo .og-title{font-size:19px!important}
#omnigent-demo .og-sync{display:none!important}
#omnigent-demo .og-orch-log{font-size:12px!important}
#omnigent-demo .og-mtp-tag{display:none!important}
}

(function(){
function ogInit(){
var root = document.getElementById(‘omnigent-demo’);
if(!root || root.dataset.init) return;
root.dataset.init = “1”;

var $ = function(id){ return root.querySelector(id); };
var sleep = function(ms){ return new Promise(function(r){ setTimeout(r, ms); }); };

var state = { task: “Build a REST endpoint with tests”, running:false, cost:0, budget:3.0 };

// —– task chips —–
root.querySelectorAll(‘#og-tasks .og-chip’).forEach(function(c){
c.addEventListener(‘click’, function(){
if(state.running) return;
root.querySelectorAll(‘#og-tasks .og-chip’).forEach(function(x){ x.classList.remove(‘og-active’); });
c.classList.add(‘og-active’);
state.task = c.dataset.task;
});
});

// —– interface tabs —–
root.querySelectorAll(‘#og-tabs .og-tab’).forEach(function(t){
t.addEventListener(‘click’, function(){
root.querySelectorAll(‘#og-tabs .og-tab’).forEach(function(x){ x.classList.remove(‘og-active’); });
t.classList.add(‘og-active’);
$(‘#og-stage’).setAttribute(‘data-if’, t.dataset.if);
});
});

// —– helpers —–
function orch(html, bold){
var log = $(‘#og-orch-log’);
var d = document.createElement(‘div’);
d.className=”og-line” + (bold ? ” : ”);
d.innerHTML = html;
log.appendChild(d);
log.scrollTop = log.scrollHeight;
}
function clearOrch(){ $(‘#og-orch-log’).innerHTML = ”; }
function agentLog(agent, html){
var log = $(‘#og-log-‘ + agent);
var d = document.createElement(‘div’);
d.className=”og-line”;
d.innerHTML = html;
log.appendChild(d);
log.scrollTop = log.scrollHeight;
}
function clearAgents(){
[‘claude’,’codex’,’pi’].forEach(function(a){ $(‘#og-log-‘+a).innerHTML=”; setState(a,’waiting’,”); });
}
function setState(agent, txt, cls){
var el = $(‘#og-st-‘ + agent);
el.textContent = txt;
el.className=”og-state” + (cls ? ‘ ‘ + cls : ”);
}
function addCost(amt){
state.cost += amt;
$(‘#og-cost’).textContent=”$” + state.cost.toFixed(2);
var pct = Math.min(100, (state.cost / state.budget) * 100);
var fill = $(‘#og-bar’);
fill.style.width = pct + ‘%’;
if(state.cost >= state.budget){ fill.classList.add(‘og-over’); }
}

// —– modal gate (returns true = approve, false = deny) —–
function ask(icon, title, body){
return new Promise(function(resolve){
$(‘#og-modal-icon’).textContent = icon;
$(‘#og-modal-title’).textContent = title;
$(‘#og-modal-body’).innerHTML = body;
$(‘#og-modal’).classList.add(‘og-show’);
var ap = $(‘#og-modal-approve’), dn = $(‘#og-modal-deny’);
function done(val){
$(‘#og-modal’).classList.remove(‘og-show’);
ap.removeEventListener(‘click’, onA);
dn.removeEventListener(‘click’, onD);
resolve(val);
}
function onA(){ done(true); }
function onD(){ done(false); }
ap.addEventListener(‘click’, onA);
dn.addEventListener(‘click’, onD);
});
}

var WORK = {
claude: [‘read repo structure’, ‘draft handler + route’, ‘write unit tests’, ‘run test suite → green’],
codex: [‘scaffold project files’, ‘implement serializer’, ‘add edge-case tests’, ‘run lint → clean’],
pi: [‘map data model’, ‘wire validation layer’, ‘add integration test’, ‘benchmark latency’]
};

// —– main run —–
async function run(){
if(state.running) return;
state.running = true;
state.cost = 0;
$(‘#og-cost’).textContent=”$0.00″;
$(‘#og-bar’).style.width=”0%”;
$(‘#og-bar’).classList.remove(‘og-over’);
$(‘#og-result’).classList.remove(‘og-show’);
$(‘#og-run’).disabled = true;
$(‘#og-run’).textContent=”● Running…”;
clearOrch(); clearAgents();

var costOn = $(‘#og-pol-cost’).checked;
var shellOn = $(‘#og-pol-shell’).checked;

orch(‘plan · task: “’ + state.task + ‘”’);
await sleep(500);
orch(‘plan · split into 3 parallel git worktrees’);
await sleep(500);
orch(‘delegate · Claude Code, Codex, and Pi each take a slice’);
await sleep(400);

// parallel-ish streaming across the three agents
[‘claude’,’codex’,’pi’].forEach(function(a){ setState(a,’working’,’og-working’); });
var maxSteps = 4;
for(var i=0;i<maxSteps;i++){
for(var a=0;a= state.budget && !state.costAsked){
state.costAsked = true;
orch(‘⏸ policy · cost budget hit $’ + state.budget.toFixed(2));
var ok = await ask(‘⏸’, ‘Cost budget reached’,
‘This session has spent $’ + state.cost.toFixed(2) +
, hitting the cost_budget threshold of $’ + state.budget.toFixed(2) +
‘. Continue running the sub-agents?’);
if(!ok){ return abort(‘Stopped at the cost budget. No diffs were merged.’); }
orch(‘▶ approved · budget raised, continuing’);
}
}
}

[‘claude’,’codex’,’pi’].forEach(function(a){ setState(a,’done’,’og-done’); });
await sleep(300);

// risky action gate: git push after npm install
orch(‘integrate · Codex installed a package from npm’);
await sleep(350);
if(shellOn){
orch(‘⏸ policy · approval required before git push’);
var pushOk = await ask(‘🛡’, ‘Approve risky action’,
‘A sub-agent installed a new npm package, then requested git push. ‘ +
‘Your contextual policy requires human approval for a push that follows a fresh install. Approve?’);
if(!pushOk){ return abort(‘Push denied by policy. Work stays local for review.’); }
orch(‘▶ approved · push allowed once’);
} else {
orch(‘· no shell policy set — push proceeds automatically’);
}
await sleep(300);

// cross-vendor review
orch(‘review · route each diff to a different-vendor reviewer’);
var reviews = [
[‘claude’,’Codex reviews Claude’s diff’],
[‘codex’,’Pi reviews Codex’s diff’],
[‘pi’,’Claude reviews Pi’s diff’]
];
for(var r=0;r<reviews.length;r++){
setState(reviews[r][0],'review','og-review');
agentLog(reviews[r][0], '✓ ' + reviews[r][1] + ' → approved');
addCost(0.16);
await sleep(360);
}
['claude','codex','pi'].forEach(function(a){ setState(a,'done','og-done'); });

orch('done · 3 diffs reviewed · total ‘ + $(‘#og-cost’).textContent + ‘ · ready to merge’);
$(‘#og-result-detail’).textContent=”3 diffs cross-reviewed by a different vendor than the writer · session cost ” + $(‘#og-cost’).textContent + ‘.’;
$(‘#og-result’).classList.add(‘og-show’);

finish();
}

function abort(msg){
orch(‘✕ halted · ‘ + msg);
[‘claude’,’codex’,’pi’].forEach(function(a){
var el = $(‘#og-st-‘+a);
if(el.textContent===’working’){ setState(a,’paused’,”); }
});
finish();
}

function finish(){
state.running = false;
state.costAsked = false;
$(‘#og-run’).disabled = false;
$(‘#og-run’).textContent=”▶ Run session”;
}

$(‘#og-run’).addEventListener(‘click’, run);
} // end ogInit

// Robust bootstrap: run now if the DOM is ready, otherwise wait.
// Also retries briefly in case WordPress injects the markup after the script.
function ogBoot(tries){
if(document.getElementById(‘omnigent-demo’)){ ogInit(); return; }
if((tries||0) < 20){ setTimeout(function(){ ogBoot((tries||0)+1); }, 100); }
}
if(document.readyState === 'loading'){
document.addEventListener('DOMContentLoaded', function(){ ogBoot(0); });
} else {
ogBoot(0);
}
})();

Omnigent Meta-Harness

One orchestrator. Many harnesses. One governed session.

Interactive concept demo

1 · Pick a task for the orchestrator (Polly)

Build REST endpoint + tests
Refactor auth module
Add caching layer

2 · Policies (control layer)


Cost budget — pause at $3.00


Approve git push after npm install

▶ Run session

⌘ Terminal
▤ Web UI
▢ Mobile
same session · in sync

Session LLM cost
$0.00
Orchestrator · Polly (writes no code; plans & delegates)
Idle. Pick a task and press “Run session”.

Claude Codewaiting

Codexwaiting

Piwaiting

Illustrative simulation of the Omnigent workflow — no live models are called.
Learn more at omnigent.ai ·
GitHub · Apache 2.0 · Alpha.


Marktechpost
·
AI Dev & Research Media

/* ===== scoped reset ===== */
#omnigent-demo *{box-sizing:border-box!important;margin:0;padding:0}
#omnigent-demo{
background:#0b0b0c!important;color:#e8e8ea!important;
font-family:-apple-system,BlinkMacSystemFont,”Segoe UI”,Roboto,Helvetica,Arial,sans-serif!important;
border:1px solid #1f1f22!important;border-radius:16px!important;
padding:0!important;line-height:1.5!important;
max-width:920px!important;margin:0 auto!important;overflow:hidden!important;
}
#omnigent-demo hr,#omnigent-demo p:empty,#omnigent-demo del,#omnigent-demo s{display:none!important}
#omnigent-demo .og-wrap{padding:22px!important}
#omnigent-demo code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;
background:#16161a!important;color:#9fd356!important;padding:1px 5px!important;border-radius:5px!important;font-size:.85em!important}

/* ===== header ===== */
#omnigent-demo .og-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;margin-bottom:18px!important}
#omnigent-demo .og-brand{display:flex!important;align-items:center!important;gap:13px!important}
#omnigent-demo .og-logo{font-size:30px!important;color:#76B900!important;line-height:1!important;text-shadow:0 0 18px rgba(118,185,0,.5)!important}
#omnigent-demo .og-title{font-size:21px!important;font-weight:700!important;color:#fff!important;letter-spacing:-.3px!important}
#omnigent-demo .og-title span{color:#76B900!important;font-weight:600!important}
#omnigent-demo .og-sub{font-size:12.5px!important;color:#8a8a90!important;margin-top:2px!important}
#omnigent-demo .og-badge{font-size:11px!important;color:#76B900!important;border:1px solid #2f3a14!important;background:#13160a!important;padding:5px 10px!important;border-radius:999px!important;white-space:nowrap!important}

/* ===== controls ===== */
#omnigent-demo .og-controls{display:grid!important;grid-template-columns:1fr 1fr auto!important;gap:16px!important;align-items:end!important;
background:#101012!important;border:1px solid #1d1d21!important;border-radius:12px!important;padding:16px!important;margin-bottom:14px!important}
#omnigent-demo .og-field > label{display:block!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.6px!important;color:#74747c!important;margin-bottom:9px!important;font-weight:600!important}
#omnigent-demo .og-chips{display:flex!important;flex-wrap:wrap!important;gap:7px!important}
#omnigent-demo .og-chip{font-size:12.5px!important;color:#cfcfd4!important;background:#17171b!important;border:1px solid #26262c!important;
padding:7px 11px!important;border-radius:8px!important;cursor:pointer!important;transition:.15s!important;font-family:inherit!important}
#omnigent-demo .og-chip:hover{border-color:#3a3a42!important;color:#fff!important}
#omnigent-demo .og-chip.og-active{background:#13160a!important;border-color:#76B900!important;color:#9fd356!important}
#omnigent-demo .og-toggles{display:flex!important;flex-direction:column!important;gap:9px!important}
#omnigent-demo .og-toggle{display:flex!important;align-items:center!important;gap:9px!important;cursor:pointer!important;font-size:12.5px!important;color:#cfcfd4!important}
#omnigent-demo .og-toggle input{position:absolute!important;opacity:0!important;width:0!important;height:0!important}
#omnigent-demo .og-track{width:34px!important;height:19px!important;border-radius:999px!important;background:#26262c!important;position:relative!important;flex:0 0 auto!important;transition:.18s!important}
#omnigent-demo .og-track::after{content:””;position:absolute!important;top:2px!important;left:2px!important;width:15px!important;height:15px!important;border-radius:50%!important;background:#76767e!important;transition:.18s!important}
#omnigent-demo .og-toggle input:checked + .og-track{background:#2f4d05!important}
#omnigent-demo .og-toggle input:checked + .og-track::after{transform:translateX(15px)!important;background:#76B900!important}
#omnigent-demo .og-tlabel b{color:#9fd356!important}
#omnigent-demo .og-run{align-self:end!important;background:#76B900!important;color:#0b0b0c!important;border:none!important;font-weight:700!important;
font-size:14px!important;padding:13px 20px!important;border-radius:10px!important;cursor:pointer!important;font-family:inherit!important;transition:.15s!important;white-space:nowrap!important}
#omnigent-demo .og-run:hover{background:#88d100!important;box-shadow:0 0 22px rgba(118,185,0,.35)!important}
#omnigent-demo .og-run:disabled{background:#2a2a2e!important;color:#6a6a72!important;cursor:not-allowed!important;box-shadow:none!important}

/* ===== tabs ===== */
#omnigent-demo .og-tabs{display:flex!important;align-items:center!important;gap:6px!important;margin-bottom:0!important;border-bottom:1px solid #1d1d21!important;padding-bottom:0!important}
#omnigent-demo .og-tab{background:none!important;border:none!important;border-bottom:2px solid transparent!important;color:#8a8a90!important;
font-size:13px!important;padding:9px 13px!important;cursor:pointer!important;font-family:inherit!important;transition:.15s!important}
#omnigent-demo .og-tab:hover{color:#cfcfd4!important}
#omnigent-demo .og-tab.og-active{color:#fff!important;border-bottom-color:#76B900!important}
#omnigent-demo .og-sync{margin-left:auto!important;font-size:11px!important;color:#5a5a62!important}

/* ===== stage ===== */
#omnigent-demo .og-stage{background:#0e0e10!important;border:1px solid #1d1d21!important;border-top:none!important;
border-radius:0 0 12px 12px!important;padding:16px!important}
#omnigent-demo .og-stage[data-if=”mobile”]{max-width:420px!important;margin:0 auto!important;border-top:1px solid #1d1d21!important;border-radius:12px!important;margin-top:10px!important}
#omnigent-demo .og-stage[data-if=”web”] .og-orch,#omnigent-demo .og-stage[data-if=”web”] .og-col{border-radius:12px!important}

/* cost meter */
#omnigent-demo .og-meter{margin-bottom:14px!important}
#omnigent-demo .og-meter-row{display:flex!important;justify-content:space-between!important;font-size:12px!important;color:#8a8a90!important;margin-bottom:6px!important}
#omnigent-demo .og-cost{color:#fff!important;font-family:ui-monospace,monospace!important;font-weight:700!important}
#omnigent-demo .og-bar{height:6px!important;background:#1a1a1e!important;border-radius:999px!important;overflow:hidden!important}
#omnigent-demo .og-bar-fill{height:100%!important;width:0%!important;background:linear-gradient(90deg,#76B900,#b6f000)!important;transition:width .35s ease!important}
#omnigent-demo .og-bar-fill.og-over{background:linear-gradient(90deg,#ff7a45,#ff5c5c)!important}

/* orchestrator */
#omnigent-demo .og-orch{background:#101013!important;border:1px solid #20202a!important;border-radius:10px!important;margin-bottom:14px!important;overflow:hidden!important}
#omnigent-demo .og-orch-head{font-size:12.5px!important;color:#cfcfd4!important;padding:10px 13px!important;border-bottom:1px solid #1d1d21!important;display:flex!important;align-items:center!important;gap:8px!important}
#omnigent-demo .og-orch-head em{color:#6a6a72!important;font-style:normal!important;font-size:11.5px!important}
#omnigent-demo .og-dot{width:8px!important;height:8px!important;border-radius:50%!important;background:#76B900!important;box-shadow:0 0 9px #76B900!important;flex:0 0 auto!important}
#omnigent-demo .og-orch-log{padding:11px 13px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:12.5px!important;max-height:150px!important;overflow-y:auto!important}
#omnigent-demo .og-line{padding:2px 0!important;color:#c4c4cc!important;animation:ogfade .3s ease!important;height:auto!important}
#omnigent-demo .og-muted{color:#5a5a62!important}
#omnigent-demo .og-line b{color:#9fd356!important;font-weight:600!important}
@keyframes ogfade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

/* sub-agent grid */
#omnigent-demo .og-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:11px!important}
#omnigent-demo .og-col{background:#101013!important;border:1px solid #20202a!important;border-radius:10px!important;overflow:hidden!important;min-height:120px!important}
#omnigent-demo .og-col-head{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:9px 11px!important;border-bottom:1px solid #1d1d21!important}
#omnigent-demo .og-pill{font-size:11.5px!important;font-weight:700!important;padding:3px 8px!important;border-radius:6px!important}
#omnigent-demo .og-claude{background:#3a221a!important;color:#e8916b!important}
#omnigent-demo .og-codex{background:#0f2e26!important;color:#3fd6ab!important}
#omnigent-demo .og-pi{background:#1e1f3a!important;color:#9aa0ff!important}
#omnigent-demo .og-state{font-size:10.5px!important;color:#6a6a72!important;text-transform:uppercase!important;letter-spacing:.4px!important}
#omnigent-demo .og-state.og-working{color:#76B900!important}
#omnigent-demo .og-state.og-done{color:#9fd356!important}
#omnigent-demo .og-state.og-review{color:#e8a93b!important}
#omnigent-demo .og-col-log{padding:10px 11px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:11.5px!important;color:#a8a8b0!important;min-height:70px!important}
#omnigent-demo .og-col-log .og-line{padding:1.5px 0!important}

/* result */
#omnigent-demo .og-result{display:none!important;align-items:center!important;gap:12px!important;margin-top:14px!important;
background:#10180a!important;border:1px solid #2f4d05!important;border-radius:10px!important;padding:13px 15px!important;font-size:13.5px!important;animation:ogfade .4s ease!important}
#omnigent-demo .og-result.og-show{display:flex!important}
#omnigent-demo .og-result b{color:#fff!important}
#omnigent-demo .og-result span#og-result-detail{color:#9aa78c!important;display:block!important;font-size:12px!important;margin-top:2px!important}
#omnigent-demo .og-check{font-size:22px!important;color:#76B900!important}

#omnigent-demo .og-foot{font-size:11.5px!important;color:#5a5a62!important;margin-top:14px!important;text-align:center!important}
#omnigent-demo .og-foot a{color:#9fd356!important;text-decoration:none!important}
#omnigent-demo .og-foot a:hover{text-decoration:underline!important}

/* marktechpost brand bar */
#omnigent-demo .og-brandbar{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
margin-top:14px!important;padding:11px 14px!important;background:#0e0e10!important;border:1px solid #1d1d21!important;
border-radius:10px!important;text-decoration:none!important;transition:.18s!important}
#omnigent-demo .og-brandbar:hover{border-color:#2f3a14!important;background:#101206!important}
#omnigent-demo .og-mtp-dot{width:9px!important;height:9px!important;border-radius:50%!important;flex:0 0 auto!important;
background:#76B900!important;box-shadow:0 0 10px rgba(118,185,0,.6)!important}
#omnigent-demo .og-mtp-name{font-size:13.5px!important;font-weight:700!important;color:#fff!important;letter-spacing:-.2px!important}
#omnigent-demo .og-brandbar:hover .og-mtp-name{color:#9fd356!important}
#omnigent-demo .og-mtp-sep{color:#3a3a42!important;font-size:13px!important}
#omnigent-demo .og-mtp-tag{font-size:11.5px!important;color:#74747c!important;text-transform:uppercase!important;letter-spacing:.6px!important}

/* modal */
#omnigent-demo .og-modal{position:absolute!important;inset:0!important;background:rgba(5,5,6,.82)!important;display:none!important;align-items:center!important;justify-content:center!important;z-index:30!important;backdrop-filter:blur(2px)!important;border-radius:16px!important;animation:ogfade .2s ease!important}
#omnigent-demo .og-modal.og-show{display:flex!important}
#omnigent-demo{position:relative!important}
#omnigent-demo .og-modal-card{background:#121215!important;border:1px solid #2a2a32!important;border-radius:14px!important;padding:22px!important;max-width:380px!important;width:90%!important;text-align:center!important;box-shadow:0 20px 60px rgba(0,0,0,.6)!important}
#omnigent-demo .og-modal-icon{font-size:30px!important;margin-bottom:8px!important}
#omnigent-demo .og-modal-card h3{font-size:16px!important;color:#fff!important;margin-bottom:8px!important}
#omnigent-demo .og-modal-card p{font-size:13px!important;color:#a8a8b0!important;margin-bottom:18px!important;line-height:1.55!important}
#omnigent-demo .og-modal-card p code{font-size:12px!important}
#omnigent-demo .og-modal-actions{display:flex!important;gap:9px!important}
#omnigent-demo .og-btn-ghost,#omnigent-demo .og-btn-go{flex:1!important;padding:11px!important;border-radius:9px!important;font-size:13px!important;font-weight:600!important;cursor:pointer!important;font-family:inherit!important;border:1px solid transparent!important}
#omnigent-demo .og-btn-ghost{background:#1a1a1e!important;border-color:#2a2a32!important;color:#cfcfd4!important}
#omnigent-demo .og-btn-ghost:hover{border-color:#ff5c5c!important;color:#ff8b8b!important}
#omnigent-demo .og-btn-go{background:#76B900!important;color:#0b0b0c!important}
#omnigent-demo .og-btn-go:hover{background:#88d100!important}

/* ===== mobile ===== */
@media (max-width:640px){
#omnigent-demo .og-controls{grid-template-columns:1fr!important}
#omnigent-demo .og-run{width:100%!important}
#omnigent-demo .og-grid{grid-template-columns:1fr!important}
#omnigent-demo .og-title{font-size:19px!important}
#omnigent-demo .og-sync{display:none!important}
#omnigent-demo .og-orch-log{font-size:12px!important}
#omnigent-demo .og-mtp-tag{display:none!important}
}

(function(){
function ogInit(){
var root = document.getElementById(‘omnigent-demo’);
if(!root || root.dataset.init) return;
root.dataset.init = “1”;

var $ = function(id){ return root.querySelector(id); };
var sleep = function(ms){ return new Promise(function(r){ setTimeout(r, ms); }); };

var state = { task: “Build a REST endpoint with tests”, running:false, cost:0, budget:3.0 };

// —– task chips —–
root.querySelectorAll(‘#og-tasks .og-chip’).forEach(function(c){
c.addEventListener(‘click’, function(){
if(state.running) return;
root.querySelectorAll(‘#og-tasks .og-chip’).forEach(function(x){ x.classList.remove(‘og-active’); });
c.classList.add(‘og-active’);
state.task = c.dataset.task;
});
});

// —– interface tabs —–
root.querySelectorAll(‘#og-tabs .og-tab’).forEach(function(t){
t.addEventListener(‘click’, function(){
root.querySelectorAll(‘#og-tabs .og-tab’).forEach(function(x){ x.classList.remove(‘og-active’); });
t.classList.add(‘og-active’);
$(‘#og-stage’).setAttribute(‘data-if’, t.dataset.if);
});
});

// —– helpers —–
function orch(html, bold){
var log = $(‘#og-orch-log’);
var d = document.createElement(‘div’);
d.className=”og-line” + (bold ? ” : ”);
d.innerHTML = html;
log.appendChild(d);
log.scrollTop = log.scrollHeight;
}
function clearOrch(){ $(‘#og-orch-log’).innerHTML = ”; }
function agentLog(agent, html){
var log = $(‘#og-log-‘ + agent);
var d = document.createElement(‘div’);
d.className=”og-line”;
d.innerHTML = html;
log.appendChild(d);
log.scrollTop = log.scrollHeight;
}
function clearAgents(){
[‘claude’,’codex’,’pi’].forEach(function(a){ $(‘#og-log-‘+a).innerHTML=”; setState(a,’waiting’,”); });
}
function setState(agent, txt, cls){
var el = $(‘#og-st-‘ + agent);
el.textContent = txt;
el.className=”og-state” + (cls ? ‘ ‘ + cls : ”);
}
function addCost(amt){
state.cost += amt;
$(‘#og-cost’).textContent=”$” + state.cost.toFixed(2);
var pct = Math.min(100, (state.cost / state.budget) * 100);
var fill = $(‘#og-bar’);
fill.style.width = pct + ‘%’;
if(state.cost >= state.budget){ fill.classList.add(‘og-over’); }
}

// —– modal gate (returns true = approve, false = deny) —–
function ask(icon, title, body){
return new Promise(function(resolve){
$(‘#og-modal-icon’).textContent = icon;
$(‘#og-modal-title’).textContent = title;
$(‘#og-modal-body’).innerHTML = body;
$(‘#og-modal’).classList.add(‘og-show’);
var ap = $(‘#og-modal-approve’), dn = $(‘#og-modal-deny’);
function done(val){
$(‘#og-modal’).classList.remove(‘og-show’);
ap.removeEventListener(‘click’, onA);
dn.removeEventListener(‘click’, onD);
resolve(val);
}
function onA(){ done(true); }
function onD(){ done(false); }
ap.addEventListener(‘click’, onA);
dn.addEventListener(‘click’, onD);
});
}

var WORK = {
claude: [‘read repo structure’, ‘draft handler + route’, ‘write unit tests’, ‘run test suite → green’],
codex: [‘scaffold project files’, ‘implement serializer’, ‘add edge-case tests’, ‘run lint → clean’],
pi: [‘map data model’, ‘wire validation layer’, ‘add integration test’, ‘benchmark latency’]
};

// —– main run —–
async function run(){
if(state.running) return;
state.running = true;
state.cost = 0;
$(‘#og-cost’).textContent=”$0.00″;
$(‘#og-bar’).style.width=”0%”;
$(‘#og-bar’).classList.remove(‘og-over’);
$(‘#og-result’).classList.remove(‘og-show’);
$(‘#og-run’).disabled = true;
$(‘#og-run’).textContent=”● Running…”;
clearOrch(); clearAgents();

var costOn = $(‘#og-pol-cost’).checked;
var shellOn = $(‘#og-pol-shell’).checked;

orch(‘plan · task: “’ + state.task + ‘”’);
await sleep(500);
orch(‘plan · split into 3 parallel git worktrees’);
await sleep(500);
orch(‘delegate · Claude Code, Codex, and Pi each take a slice’);
await sleep(400);

// parallel-ish streaming across the three agents
[‘claude’,’codex’,’pi’].forEach(function(a){ setState(a,’working’,’og-working’); });
var maxSteps = 4;
for(var i=0;i<maxSteps;i++){
for(var a=0;a= state.budget && !state.costAsked){
state.costAsked = true;
orch(‘⏸ policy · cost budget hit $’ + state.budget.toFixed(2));
var ok = await ask(‘⏸’, ‘Cost budget reached’,
‘This session has spent $’ + state.cost.toFixed(2) +
, hitting the cost_budget threshold of $’ + state.budget.toFixed(2) +
‘. Continue running the sub-agents?’);
if(!ok){ return abort(‘Stopped at the cost budget. No diffs were merged.’); }
orch(‘▶ approved · budget raised, continuing’);
}
}
}

[‘claude’,’codex’,’pi’].forEach(function(a){ setState(a,’done’,’og-done’); });
await sleep(300);

// risky action gate: git push after npm install
orch(‘integrate · Codex installed a package from npm’);
await sleep(350);
if(shellOn){
orch(‘⏸ policy · approval required before git push’);
var pushOk = await ask(‘🛡’, ‘Approve risky action’,
‘A sub-agent installed a new npm package, then requested git push. ‘ +
‘Your contextual policy requires human approval for a push that follows a fresh install. Approve?’);
if(!pushOk){ return abort(‘Push denied by policy. Work stays local for review.’); }
orch(‘▶ approved · push allowed once’);
} else {
orch(‘· no shell policy set — push proceeds automatically’);
}
await sleep(300);

// cross-vendor review
orch(‘review · route each diff to a different-vendor reviewer’);
var reviews = [
[‘claude’,’Codex reviews Claude’s diff’],
[‘codex’,’Pi reviews Codex’s diff’],
[‘pi’,’Claude reviews Pi’s diff’]
];
for(var r=0;r<reviews.length;r++){
setState(reviews[r][0],'review','og-review');
agentLog(reviews[r][0], '✓ ' + reviews[r][1] + ' → approved');
addCost(0.16);
await sleep(360);
}
['claude','codex','pi'].forEach(function(a){ setState(a,'done','og-done'); });

orch('done · 3 diffs reviewed · total ‘ + $(‘#og-cost’).textContent + ‘ · ready to merge’);
$(‘#og-result-detail’).textContent=”3 diffs cross-reviewed by a different vendor than the writer · session cost ” + $(‘#og-cost’).textContent + ‘.’;
$(‘#og-result’).classList.add(‘og-show’);

finish();
}

function abort(msg){
orch(‘✕ halted · ‘ + msg);
[‘claude’,’codex’,’pi’].forEach(function(a){
var el = $(‘#og-st-‘+a);
if(el.textContent===’working’){ setState(a,’paused’,”); }
});
finish();
}

function finish(){
state.running = false;
state.costAsked = false;
$(‘#og-run’).disabled = false;
$(‘#og-run’).textContent=”▶ Run session”;
}

$(‘#og-run’).addEventListener(‘click’, run);
} // end ogInit

// Robust bootstrap: run now if the DOM is ready, otherwise wait.
// Also retries briefly in case WordPress injects the markup after the script.
function ogBoot(tries){
if(document.getElementById(‘omnigent-demo’)){ ogInit(); return; }
if((tries||0) < 20){ setTimeout(function(){ ogBoot((tries||0)+1); }, 100); }
}
if(document.readyState === 'loading'){
document.addEventListener('DOMContentLoaded', function(){ ogBoot(0); });
} else {
ogBoot(0);
}
})();

Omnigent vs a Single Harness

CapabilitySingle harness (e.g., Claude Code)Omnigent meta-harnessAgents and modelsOne harness; swap models inside itClaude Code, Codex, Pi, SDKs, custom — interchangeableSwitching costRe-integrate per toolOne-line changeInterfacesTerminal or that tool’s own UITerminal, web, desktop, mobile, APIs — same sessionGovernanceAllow / deny lists, often prompt-basedStateful contextual policies at the harness layerCost controlManual trackingBudget policy pauses at set thresholdsCollaborationCopy-paste between toolsLive shared sessions, co-drive, and forkSandboxTool-dependentOS sandbox plus egress-proxy secret injectionCloud executionLocal machineDisposable Modal or Daytona sandboxesLicenseVariesApache 2.0, open source

Getting Started

Omnigent needs Python 3.12+, Node.js 22 LTS, and tmux. One command installs everything:

Copy CodeCopiedUse a different Browser

curl -fsSL https://omnigent.ai/install.sh | sh

Then set up model credentials:

Copy CodeCopiedUse a different Browser

omni setup

Omnigent accepts four credential types. They are a first-party API key and a Claude or ChatGPT subscription. The others are an OpenAI- or Anthropic-compatible gateway and a Databricks workspace. The /model command switches models mid-session.

A custom agent is a short YAML file. It declares a prompt, a harness, tools, and optional sub-agents.

Copy CodeCopiedUse a different Browser

name: my_agent
prompt: You are a helpful data analyst.

executor:
harness: claude-sdk # or: codex, codex-native, claude-native, openai-agents, pi

tools:
researcher:
type: agent
prompt: Search for relevant information and summarize it.

Run it with one command:

Copy CodeCopiedUse a different Browser

omnigent run path/to/my_agent.yaml

Policies use the same YAML approach. This builtin caps spend with a soft warning first:

Copy CodeCopiedUse a different Browser

Policies use the same YAML approach. This builtin caps spend with a soft warning first:

policies:
budget:
type: function
handler: omnigent.policies.builtins.cost.cost_budget
factory_params:
max_cost_usd: 5.00 # hard spend cap
ask_thresholds_usd: [3.00] # soft warning on the way

Policies stack across three levels. They are server-wide, per-agent, and per-session. The stricter session rules are checked first.

Strengths and Limitations

Strengths

  • One interface to Claude Code, Codex, Pi, and custom agents
  • Sessions reachable from terminal, web, desktop, and phone
  • Policies that track state, not just allow or deny
  • Live session sharing replaces copy-pasting between tools
  • Cloud sandboxes on Modal and Daytona need no local laptop
  • Apache 2.0 license with targets like Fly.io, Railway, and Render

Limitations

  • The project is alpha and early in its lifecycle
  • It requires Python, Node.js, and tmux setup
  • You bring your own models, infrastructure, and spend
  • Roadmap items like the Omnigent Server MCP are not shipped yet
  • Off-network teammates need an always-on deployed server to join

Check out the Repo, Quick start, and Technical details . Also, feel free to follow us on Twitter and don’t forget to join our 150k+ML SubReddit and Subscribe to our Newsletter. Wait! are you on telegram? now you can join us on telegram as well.

Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.? Connect with us

The post Databricks Open-Sources Omnigent: A Meta-Harness That Composes, Governs, and Shares AI Agents Across Claude Code, Codex, and Pi appeared first on MarkTechPost.



Source link

notion

You may also like