OneCLI: Een sandboxed agent-harness voor teams

Snelstart

Cloud-hosted

Bezoek onecli.sh

Self-hosted

git clone https://github.com/onecli/onecli.git && cd onecli
pnpm install
pnpm run setup

Open vervolgens http://localhost:10254

Wat is OneCLI v2?

OneCLI is een open-source platform voor het runnen van AI-agents als team. Je maakt per persoon een agent aan en geeft elke agent de benodigde toegang. De agent werkt in een sandbox en wordt gerouteerd via een gateway die inloggegevens injecteert en jouw beleid afdwingt.

Waarom is OneCLI gebouwd?

OneCLI begon als een credential vault voor AI-agents, gebouwd in Rust. Er bleek dat de meeste vraag kwam van individuen en teams die autonome agents gebruikten, zoals Hermes, OpenClaw en NanoClaw. Men wilde agents die echt werk konden verrichten voor de persoon die ze aanstuurde, maar er ontbraken twee essentiële onderdelen:

  1. Het beheren van geheimen (secrets) en permissies.
  2. Voor teams: 'multiplayer' beheer.

Elke autonome agent is momenteel gebouwd voor één persoon. Voor een individu werken ze uitstekend, maar zodra dit over een team moet worden uitgerold, wordt het complex: het opstarten van elke agent, het bepalen van de rechten per agent, het hosten ervan en het bijhouden van welke agent bij wie hoort. Daarom is OneCLI v2 ontwikkeld.

Gebouwd voor teams

  • Geïntegreerde identity provider: Voorzie agents op basis van de identiteit van elke werknemer, rechtstreeks vanuit de IdP van het bedrijf.
  • Een agent per persoon: Iedereen in de workspace krijgt een eigen sandboxed agent, bereikbaar via het dashboard of Slack.
  • Eén beleid, overal afgedwongen: Beheer het teambeleid op één centrale plek; dit beleid wordt afgedwongen voor elke agent in de workspaces.
  • Deterministische 'human-in-the-loop' goedkeuringen: Direct in de chat voor acties waarover 100% controle nodig is, zoals het verzenden van e-mails, het verwijderen van een Linear-ticket of het legen van een S3-bucket.
  • Globale verbindingen: Gedeeld op teamniveau (zoals LLM-sleutels of service-accounts), toegekend aan agents zonder dat de sleutels ooit direct aan de agent zelf worden overhandigd.

De agent

Een agent is een duurzaam object, geen enkele prompt. Een agent beschikt over:

  • Een computer: Een eigen geïsoleerde sandbox met een bestandssysteem en een shell. De enige uitgang is de gateway, waardoor de agent alleen kan bereiken wat is toegestaan.
  • Een gesprek: Een eigen pagina in het dashboard of in Slack, inclusief afbeeldingen en bestanden. Een bericht dat wordt verzonden terwijl de agent werkt, leidt de agent direct om in plaats van in een wachtrij te komen.
  • Geheugen: Alles wat de agent leert wordt bewaard door het platform, zodat het nooit verloren gaat. Dit kan op elk moment worden ingezien en bewerkt.
  • Skills: Instructies en helpers die eenmalig worden geschreven en altijd beschikbaar zijn voor de agent.
  • Een schema: De agent kan toekomstig werk plannen, waarna het platform de agent op het juiste tijdstip activeert.
  • Inloggegevens die de agent nooit ziet: Elke agent krijgt alleen de toegang die is verleend; de gateway dwingt dit af bij elk verzoek. Er kan ook worden gekoppeld aan Bitwarden of 1Password voor on-demand injectie, waarbij niets op de server wordt opgeslagen.
  • Een eigen Slack-app: Eenmalig koppelen en de agent antwoordt in kanalen en DM's onder eigen naam en avatar, inclusief bestanden en afbeeldingen. Als de agent wordt verwijderd, verdwijnt ook de Slack-app.

Agents draaien op je eigen infrastructuur. De runner is outbound-only en heeft geen inkomende poorten, waardoor een laptop, een homelab of een VPC achter NAT werken zonder ingress of tunnel.

Architectuur

  • Web Dashboard: Een Next.js-applicatie. Wordt gebruikt om agents te maken, met ze te chatten, hun geheugen en skills te bewerken, en verbindingen, geheimen en grants te beheren.
  • API Server: Het control plane. Beheert de database, het conversievlak en de werkvorm-wachtrij waar de runner op pollend wacht.
  • Rust Gateway: Vangt uitgaande verzoeken op (inclusief HTTPS via MITM) en injecteert inloggegevens. Agents authenticeren met toegangstokens via Proxy-Authorization headers.
  • Runner: Start, parkeert en ruimt agent-sandboxes op. Is outbound-only en raakt de database nooit aan.
  • Sandbox Supervisor: Draait binnen elke sandbox en spreekt een vendor-neutrale harness-interface, zodat de agent-runtime vervangbaar is.
  • Channel Adapter: De Slack-daemon, één app per agent.
  • Secret Store: AES-256-GCM in rust, alleen ontsleuteld op het moment van het verzoek, gematcht op host en pad-patroon, en geïnjecteerd als headers of query-parameters.

Lokale ontwikkeling

git clone https://github.com/onecli/onecli.git && cd onecli
mise install
pnpm install
pnpm dev

Dit is de volledige setup: pnpm dev genereert een .env met alle benodigde geheimen, start PostgreSQL, past migraties toe en start de volledige stack. Voorvereisten, de commandoreferentie, projectstructuur en configuratie zijn te vinden in docs/development.md.

Bijdragen

Bijdragen worden 환gewelkom. Lees de Contributing Guide en de Code of Conduct voordat je begint. Bijdragen worden geaccepteerd onder de voorwaarden van de Contributor License Agreement.

Beveiliging

Om een kwetsbaarheid te melden, volg dan onze Security Policy. Open geen publieke issue voor beveiligingsrapporten.

Licentie

De software is gelicenseerd onder Apache-2.0, met één uitzondering: de ee/ directories bevatten enterprise-functies onder de OneCLI Enterprise License, elk voorzien van een melding die hiernaar verwijst. Die licentie is gratis voor ontwikkeling, testen en evaluatie, maar vereist een abonnement voor gebruik in productie.

Alle overige onderdelen vallen onder Apache-2.0 en kunnen zonder commerciële licentie in productie worden self-hosted. LICENSE-ENTERPRISE bevat de autoritaire lijst van gelicenseerde paden.