SSD Nodes Learn 🎉 VPS vanaf $5.50/mnd
Gidsen Matt ConnorDoor Matt Connor · Bijgewerkt 2026-08-13

Omnigent: Eén harness voor al uw agent CLI tools

Ontdek hoe Omnigent uw bestaande agent CLI's aanstuurt via één orchestratielaag. Leer hoe u release 0.7.0 pint en elke sub-agent veilig in een eigen sandbox op een VPS draait.

Wat Omnigent is

Omnigent is een open-source meta-harness: één orchestratielaag die de agent command line tools (CLI's) aanstuurt die u al heeft geïnstalleerd. Het vervangt Claude Code, Codex, Cursor, OpenCode, Hermes of Pi niet. Het start deze tools, geeft ze elk een taak en houdt toezicht op het resultaat binnen één sessie met één set beleidsregels. Databricks publiceerde de repository in juni 2026 onder de Apache 2.0 licentie, en op de voorpagina staat nog steeds Status: alpha.

De praktische claim is beperkt en verdient een duidelijke toelichting. U beschrijft een agent één keer in YAML en u benoemt de harness die deze uitvoert. Wijzig die ene regel en dezelfde agent draait op de CLI van een andere leverancier. Niets anders in uw configuratie verandert, omdat Omnigent de lus boven de agents beheert in plaats van de lus binnen de agents.

Wat is een meta-harness en waarin verschilt dit van een framework?

Een harness is het programma dat een model in een lus verpakt. Het leest uw prompt, roept tools aan, bewerkt bestanden en rapporteert de resultaten. Claude Code is een harness. Codex is een harness. U installeert het, u logt in en het werkt zelfstandig.

Een framework is een bibliotheek waar u code tegenaan schrijft. U importeert het, u definieert de stappen in Python en uw programma wordt de agent. Het wijzigen van een leverancier betekent hier dat u uw code moet aanpassen, omdat de client van de leverancier in uw programma is verweven.

Een meta-harness bevindt zich één niveau boven beide. Het is een supervisor die harnesses uitvoert als onderliggende processen. Omnigent start de CLI van de leverancier, geeft deze werkzaamheden door en leest de resultaten uit. U behoudt de CLI die u al heeft geïnstalleerd en u behoudt het abonnement of de API (application programming interface) key waarmee u er al voor betaalt. Dat is het volledige verschil, en dit bepaalt voor wie de tool bedoeld is: mensen die al met meerdere agent-CLI's werken en die het beu zijn om deze één voor één per terminal aan te sturen.

Welk probleem lost een orchestratielaag op?

  • Overstapkosten tussen leveranciers zijn beperkt tot één regel. De agentdefinitie bevat harness en model als data, waardoor het verplaatsen van een rol van de ene naar de andere leverancier een aanpassing in het YAML-bestand is, in plaats van een volledige herschrijving.
  • Reviews kunnen over leveranciers heen plaatsvinden. Een diff die door het ene model is geschreven, wordt gelezen door een model van een ander bedrijf. Twee modellen uit dezelfde familie vertonen vaak dezelfde blinde vlekken; een second opinion van dezelfde leverancier is daarom minder waardevol.
  • Beleid heeft één centrale plek. Uitgavenlimieten en goedkeuringsverzoeken worden gedeclareerd in het agentbestand en zijn van toepassing op elke sub-agent daaronder.
  • De sessie overleeft elk afzonderlijk hulpmiddel. Eén transcript beslaat het werk dat door meerdere CLI's is uitgevoerd, zodat u kunt teruglezen wat er is gebeurd zonder vier verschillende scrollbacks aan elkaar te hoeven plakken.

De kosten zijn de laag zelf. Elke bug in Omnigent is nu een bug die zich bevindt tussen u en een agent die voorheen zelfstandig werkte. In de alfafase is dit een reële kost, geen theoretische.

Waar een multi-agent harness past naast single-agent tools

Als u nog geen agent op een server heeft gedraaid, begin daar dan. Onze handleiding voor het draaien van een coding agent op een VPS behandelt de single-agent situatie volledig, en dat is de configuratie waarvan Omnigent uitgaat. Het bredere veld van self-hosted AI agents is waar u de agents zelf kiest, en leren hoe agents daadwerkelijk werken is de betere eerste stap als de terminologie hier nieuw voor u is.

Omnigent bevindt zich ook op een ander vlak dan een connector-laag. Werk zoals agents toegang geven tot uw eigen databronnen gaat over wat een agent kan bereiken. Omnigent gaat over welke agent draait, in welke volgorde en onder welke limieten. U kunt beide tegelijk willen, en ze overlappen niet.

Vereisten voor de installatie

  • Python 3.12 of nieuwer. Het gepubliceerde pakket specificeert requires-python >= 3.12.
  • tmux, omdat de terminal-harnesses hierbinnen worden uitgevoerd.
  • Ten minste één vendor CLI, reeds geïnstalleerd en aangemeld.
  • Node.js 22 is alleen vereist als u bouwt vanuit een git checkout. De wheel op PyPI bevat de reeds gebouwde web-assets, waardoor voor een standaardinstallatie geen Node nodig is.

Installeer een specifieke release, niet main

curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh -s -- --version 0.7.0

Het sh -s ---onderdeel is geen versiering. Zonder dit onderdeel leest sh de waarde --version als een eigen optie en ziet het installatieprogramma de vlag nooit. Hierdoor krijgt u de nieuwste versie van die dag. Bij een repository die elke paar weken ingrijpende wijzigingen doorvoert, is dat het verschil tussen een reproduceerbare server en een onverwachte fout.

Het installatieprogramma gebruikt uv, de Python-pakketbeheerder van Astral, en biedt aan om uv eerst te installeren als dit ontbreekt. Als uv al aanwezig is, sla het script dan over:

uv tool install --force --python 3.12 "omnigent==0.7.0"

Extra's volgen hetzelfde patroon en de vlag wordt herhaald: --extra e2b --extra kubernetes bij het script, of "omnigent[e2b,kubernetes]" bij uv. Let op: de git-tag is v0.7.0, terwijl de pakketversie op PyPI 0.7.0 is.

uv plaatst het binaire bestand in de map die uv tool dir --bin rapporteert, meestal ~/.local/bin, en het installatieprogramma biedt aan om dit toe te voegen aan uw shell-profiel. Als het commando direct na een schone installatie niet wordt gevonden, is dit de reden. Controleer wat u heeft geïnstalleerd:

omni upgrade --check

Dit vergelijkt de geïnstalleerde versie met de laatst gepubliceerde versie en geeft aan of er een upgrade beschikbaar is, zonder deze uit te voeren. omni en omnigent zijn hetzelfde programma onder twee namen.

Verwijs naar een modelprovider

omni setup

De wizard zoekt naar inloggegevens die al in uw omgeving aanwezig zijn en vraagt om de gegevens die ontbreken. Deze verwerkt API-sleutels, leveranciersabonnementen, gateways zoals OpenRouter of Ollama, en Databricks-werkruimten. Als u al een lokale modelserver met Ollama op dezelfde machine draait, verwijs dan een gateway daarnaar; het verkeer verlaat de machine dan niet.

Een minimale multi-agent run

De voorbeeld-agents bevinden zich in de repository, dus kloon dezelfde tag als die u heeft geïnstalleerd in plaats van main.

git clone --depth 1 --branch v0.7.0 https://github.com/omnigent-ai/omnigent.git
cd omnigent
omnigent run examples/polly/

Polly is de multi-agent code-orchestrator die bij de repo wordt geleverd. De configuratie declareert sub-agents genaamd claude_code, codex, opencode, cursor, hermes en pi, en één regel die de hele oefening de moeite waard maakt: een review wordt altijd uitgevoerd door een andere leverancier dan de implementator. Polly schrijft zelf geen code. Het plant, splitst het doel op in werkitems, delegeert elk item en stuurt elke diff door naar een reviewer van een andere leverancier.

Voordat Polly iets delegeert, voert het een preflight-controle uit om te zien welke sub-agent CLI's daadwerkelijk op de machine aanwezig zijn. Met slechts één geïnstalleerde leveranciers-CLI is er niemand om de diff aan over te dragen, dus installeer er ten minste twee voordat u de output beoordeelt. Debby, het andere meegeleverde voorbeeld, is een debat-agent met twee koppen: één Claude en één GPT:

omni debby

Dit is een snelle manier om te bevestigen dat twee providers zijn geconfigureerd, omdat de agent beide nodig heeft om iets te kunnen zeggen.

Sub-agents worden gedeclareerd als tools

Het agent-bestand is YAML. executor benoemt de harness, het model en de authenticatie. tools bevat MCP (model context protocol) servers, Python-functies en sub-agents. Een sub-agent is een tool met type: agent en een eigen executor; dit is het mechanisme achter alles wat hierboven staat.

name: orchestrator
prompt: |
  You coordinate coding and review tasks.

executor:
  harness: claude-sdk
  model: databricks-claude-sonnet-4-6

tools:
  coder:
    type: agent
    prompt: Write and test code.
    executor:
      harness: claude-sdk
      model: databricks-claude-opus-4-7
  reviewer:
    type: agent
    prompt: Review proposed changes.
    executor:
      harness: claude-sdk
      model: databricks-claude-sonnet-4-6
omnigent run path/to/my_agent.yaml

Deze model-ids zijn afkomstig uit het eigen docs/AGENT_YAML_SPEC.md-voorbeeld van het project en zijn namen die door Databricks worden gehost. Vervang harness en model door de waarden die u in omni setup op uw systeem heeft geconfigureerd. Andere harness-waarden in de specificatie zijn onder meer antigravity, copilot, kimi, qwen en acp:<slug> voor alles wat het generieke protocol ondersteunt. De specificatie ondersteunt ook pass_history: true op een sub-agent, waarmee het oudergesprek wordt doorgegeven. Dit kost tokens bij elke delegatie, dus schakel dit uit voor sub-agents die alleen de taak voor zich hoeven uit te voeren. Een programmeur waarvan de prompt aangeeft dat deze de kleinst mogelijke werkende wijziging moet doorvoeren, levert de reviewer een diff die kort genoeg is om daadwerkelijk te lezen; dit is in deze context belangrijker dan het model dat u voor beide rollen kiest.

Waarom langlopende orchestratie op een VPS thuishoort

Een multi-agent run is geen commando van twee minuten. Plannen, delegeren, wachten op parallelle git worktrees, beoordelen, herzien. Het dichtklappen van een laptop beëindigt dit alles. Een VPS (virtual private server) blijft actief en behoudt zijn netwerkverbinding, waardoor de sessie blijft bestaan terwijl u niet kijkt.

omnigent server --background
omnigent server status

De server host een webinterface op poort 6767. omnigent server status rapporteert of er een actief is, en omnigent stop sluit deze af. In releases vóór v0.7.0 was dit omni server start, wat inmiddels is verwijderd; oudere handleidingen en screenshots komen daarom niet overeen met wat uw terminal weergeeft.

Stel poort 6767 niet bloot op een publiek adres. Twee methoden zijn veilig. Houd de poort gesloten in de firewall en forward deze via SSH met ssh -N -L 6767:localhost:6767 you@your-server, open vervolgens de webinterface op http://localhost:6767 op uw eigen machine. Of beëindig TLS (transport layer security) ervoor en schakel authenticatie in:

OMNIGENT_AUTH_ENABLED=1 omnigent server --background

Het firewall-gedeelte daarvan is standaardwerk, behandeld in de ufw firewall basis voor een VPS, en als de server al containers draait achter Traefik voor meerdere Docker Compose apps, dan is Omnigent simpelweg een extra service volgens hetzelfde patroon.

Voor een container-deploy bevat de deploy/-directory van de repository een Compose-configuratie: ./bootstrap.sh genereert secrets in .env, waarna docker compose up -d Omnigent en Postgres start op poort 6767. DATABASE_URL selecteert Postgres of SQLite, en OMNIGENT_AUTH_ENABLED staat standaard op 1 binnen de containers, wat de juiste standaard is voor alles wat van buitenaf bereikbaar is.

Wat betreft de grootte: de deploy-notities schatten de working set van de server op ongeveer 512 MB tot 1 GB, en de Fly.io-configuratie zet dit vast op 1 GB. Dat cijfer betreft enkel de supervisor. Elke sub-agent is een afzonderlijk proces dat een eigen checkout en een eigen model-client vasthoudt, dus kies de grootte van de server op basis van het aantal agents. Zodra een server actief is, registreert omnigent login https://your-host gevolgd door omnigent host https://your-host uw laptop bij de server, en omnigent attach <session_id> hervat een lopende sessie vanaf een ander apparaat.

Sandbox elke sub-agent voordat u de sessie verlaat

Omnigent levert een sandbox op besturingssysteemniveau genaamd Omnibox. Op Linux gebruikt dit bubblewrap-namespaces en seccomp, waardoor de kernel de grens afdwingt in plaats van de prompt van de agent. Een agent die via prompt-injection is gemanipuleerd, kan een kernelregel niet omzeilen. Installeer eerst de afhankelijkheid:

sudo apt install bubblewrap

De configuratie bevindt zich onder os_env in het agent-bestand:

os_env:
  type: caller_process
  cwd: .
  sandbox:
    type: linux_bwrap
    write_paths: [.]
    write_files: []
    read_paths: []
    allow_network: true
    cwd_allow_hidden: [.venv]
    env_passthrough: []
    egress_rules: []
    credential_proxy: []

De werkmap is alleen-lezen totdat u deze vermeldt in write_paths, waardoor een agent die foutief gedrag vertoont niet buiten de werkruimte kan schrijven. Dotfiles blijven verborgen tenzij ze worden genoemd in cwd_allow_hidden; dit betekent dat een algemene leestoegang niet stilletjes .ssh of .aws blootstelt. Stel egress_rules in en al het HTTP- en HTTPS-verkeer verloopt via een proxy met een standaard weigeringsbeleid, waarbij elke regel wordt geschreven als "METHODS host/path-glob". credential_proxy gaat een stap verder: de agent bevat alleen een tijdelijke aanduiding en de proxy vervangt deze door het werkelijke geheim op het moment dat het verzoek vertrekt. Hierdoor lekt een uitgelekt transcript geen bruikbare gegevens. In een opstelling met meerdere harnesses draagt elke sub-agent zijn eigen sandbox-blok in zijn eigen configuratiebestand onder agents/, zodat een reviewer de netwerktoegang kan worden ontzegd terwijl de implementeerder deze behoudt.

De limiet staat in de documentatie en is van belang. De OS-sandbox is van toepassing op sys_os_* tool-aanroepen en terminals. Deze dekt geen MCP-servers en evenmin het Omnigent supervisor-proces zelf. Een MCP-server die u start, draait buiten de sandbox met uw rechten. Dat gat is de reden waarom het sterkere patroon nog steeds één wegwerp-machine per agent is, wat het onderwerp is van het draaien van coding agents in een wegwerp-VM. De andere helft van het werk betreft inloggegevens, en het buiten bereik houden van geheimen voor een agent wordt moeilijker, niet makkelijker, wanneer zes sub-agents één host delen.

Bestedingslimieten zijn beleidsregels die in hetzelfde bestand worden gedeclareerd:

policies:
  budget:
    type: function
    handler: omnigent.policies.builtins.cost.cost_budget
    factory_params:
      max_cost_usd: 5.00
      ask_thresholds_usd: [1.00, 3.00]

Een run die plant met de ene leverancier, implementeert met een tweede en beoordeelt met een derde, geeft op drie plaatsen tegelijk uit. Stel daarom de limiet in vóór de eerste onbeheerde run in plaats van na de eerste factuur. De ingebouwde functies bevatten ook max_tool_calls_per_session en ask_on_os_tools, die om goedkeuring vragen vóór bestands- en shell-operaties. Onze aantekeningen over het beheersen van AI-agentkosten op een VPS zijn hier direct van toepassing, en ze gelden sterker omdat parallelle sub-agents het verbruikstempo vermenigvuldigen.

Hoe snel ontwikkelt deze repository zich?

ChartDays between tagged Omnigent releases, v0.2.0 to v0.7.0
The data behind this chart
[
  {
    "version": "v0.2.0",
    "released": "2026-06-19",
    "interval": 3
  },
  {
    "version": "v0.3.0",
    "released": "2026-06-27",
    "interval": 8
  },
  {
    "version": "v0.4.0",
    "released": "2026-07-03",
    "interval": 6
  },
  {
    "version": "v0.5.0",
    "released": "2026-07-10",
    "interval": 7
  },
  {
    "version": "v0.5.1",
    "released": "2026-07-10",
    "interval": 0
  },
  {
    "version": "v0.6.0",
    "released": "2026-07-21",
    "interval": 11
  },
  {
    "version": "v0.7.0",
    "released": "2026-07-27",
    "interval": 6
  }
]

Dit zijn de gepubliceerde releasedata van de eigen releases-pagina van het project, geraadpleegd op 3 augustus 2026. 7 getagde releases verschenen tussen 2026-06-19 en 2026-07-27, en het langste interval tussen twee opeenvolgende releases was 11 dagen. v0.5.1 werd op dezelfde dag uitgebracht als de voorgaande release. De eerste release, 0.1.1 op 16 juni 2026, is buiten de grafiek gelaten omdat er geen eerdere tag is om de tijdsduur vanaf te meten.

Twee van deze releases maakten commando's ongeldig die in handleidingen reeds gedocumenteerd waren. v0.7.0 verwijderde omni server start ten gunste van omni server --background. v0.6.0 hernoemde de omnigent[memory] extra naar omnigent[hindsight], waardoor een installatieregel die uit een artikel van juni is gekopieerd, niet werkt op een build van juli. Dit is de reden om --version in uw installatiecommando te gebruiken en een specifieke tag in uw git clone op te nemen; dit is geen kwestie van stijlvoorkeur.

Waar ik het nog niet aan zou toevertrouwen

Per augustus 2026 heeft de repository ongeveer 8,1k sterren, 1,2k forks en ruwweg 350 openstaande issues, terwijl de eerste publieke release zeven weken oud is. Sterren meten interesse, en interesse staat niet gelijk aan volwassenheid. Het project noemt zichzelf alpha, en de bovenstaande releasegeschiedenis laat zien dat dit ook echt alpha betekent.

  • Ik zou het niet draaien op een host die productie-inloggegevens bevat, omdat de sandbox geen MCP-servers of de supervisor dekt.
  • Ik zou een run niet onbeheerd achterlaten zonder een cost_budget-beleid, omdat drie leveranciers parallel kunnen factureren en niets anders hen tegenhoudt.
  • Ik zou de server niet blootstellen aan een publiek IP-adres zonder dat OMNIGENT_AUTH_ENABLED is ingesteld en er TLS voor staat.
  • Ik zou de agent YAML nog niet als stabiel beschouwen tussen minor-versies; zet de versie vast en lees de release notes voordat u een upgrade uitvoert.

Nog één ding om te weten voordat het u verrast: v0.6.0 heeft geanonimiseerde gebruikstelemetrie toegevoegd, en het project documenteert dit op een speciale telemetrie-pagina. Lees die pagina en neem bewust een besluit als de machine werk voor klanten verwerkt.

Waar Omnigent vandaag de dag oprecht goed in is, is het doel waarvoor het gebouwd is. U heeft drie of vier agent-CLI's, u betaalt er al voor, en u wilt dat een van hen schrijft terwijl een andere reviseert. Dat werkt nu, op één machine, met echte sandboxing op Linux. Beschouw alles wat daar voorbijgaat als veelbelovend maar onaf.

FAQ

Is Omnigent een agent, of een systeem dat agents uitvoert?

Het voert agents uit. Omnigent is een meta-harness: het start de vendor-CLI's die u al heeft geïnstalleerd, zoals Claude Code, Codex of OpenCode, wijst taken toe aan elk daarvan en houdt toezicht op de resultaten in één sessie. Het brengt zelf geen model mee. Dit is het verschil met een framework, waarbij u Python-code schrijft tegen een bibliotheek en uw eigen programma de agent wordt.

Moet ik Claude Code en Codex geïnstalleerd hebben voordat Omnigent nuttig is?

U moet ten minste één vendor-CLI geïnstalleerd hebben en ingelogd zijn, omdat Omnigent deze programma's aanstuurt in plaats van ze te vervangen. Voor het meegeleverde Polly-voorbeeld heeft u er twee of meer van verschillende leveranciers nodig. De regel van Polly is dat de beoordeling altijd wordt uitgevoerd door een andere leverancier dan de implementeerder; met slechts één CLI aanwezig is er geen tweede leverancier om de diff naar te sturen.

Hoe installeer ik een specifieke Omnigent-versie in plaats van de nieuwste?

Geef --version door aan het installatiescript met sh -s --, zoals in sh -s -- --version 0.7.0. Zonder -s -- wordt de vlag door sh zelf verbruikt en installeert het script de nieuwste release. Als uv al aanwezig is, doet uv tool install --force --python 3.12 "omnigent==0.7.0" hetzelfde. De git-tag is v0.7.0, terwijl de PyPI-versiestring 0.7.0 is.

Is de Omnibox-sandbox voldoende om agents onbeheerd uit te voeren?

Deze is robuust voor wat het afdekt en duidelijk over wat het niet doet. Op Linux gebruikt het bubblewrap in combinatie met seccomp, waardoor de kernel bestands- en netwerkbeperkingen afdwingt en de agent zich hier niet aan kan onttrekken. De documentatie stelt dat dit van toepassing is op sys_os_*-tool-aanroepen en terminals, en dat het geen betrekking heeft op MCP-servers of het Omnigent-supervisorproces. Een MCP-server draait daarom met uw normale rechten; daarom blijft een wegwerpbare virtuele machine per agent de sterkere isolatie voor onbeheerd werk.

Hoeveel geheugen heeft een Omnigent-server nodig op een VPS?

De deploy-notities van het project geven de server een werkset van ongeveer 512 MB tot 1 GB, en de Fly.io-configuratie reserveert 1 GB. Dit dekt alleen de supervisor en de webinterface op poort 6767. Elke sub-agent is een afzonderlijk proces met een eigen werkkopie en model-client, en runs in Polly-stijl gebruiken parallelle git-worktrees. Stem de RAM en schijfruimte daarom af op het aantal agents dat u tegelijkertijd wilt draaien, in plaats van op de server zelf.