CorvinOS – self-hosted OS for AI agents, compliance built into the runtime
CorvinOS is a self-hosted operating system for AI agents that integrates compliance into its architecture. It features voice control, multi-engine support, runtime tool generation, agentic compute, and a hash-chained audit trail. Designed for enterprises, it ensures data privacy and regulatory adherence through built-in mechanisms like consent gates, data residency, and bot disclosure.
CorvinOS — The Operating System for AI Organizations
Apache-2.0 · The self-hosted agentic OS
The agentic OS you actually own. EU-compliant by design.
A self-hosted operating system for AI agents: it runs the engines, personas, workflows and runtime-forged tools, meets your users on every messenger, drives a real browser, and keeps a hash-chained audit of it all — with compliance built into the architecture, not bolted on.
Star on GitHub
Quick Start →
0
Messaging bridges
∞
Engines detected
0
Compliance frameworks
0%
Self-hosted
The command center
The chat runs the whole OS
The chat isn't a demo window — it's the shell. Personas, engines, workflows, the Forge, RAG, agentic compute and the A2A mesh are all reachable from one prompt. And you can drive it end‑to‑end by voice: speak a request, CorvinOS transcribes it, routes it, does the work, and speaks the answer back — tuned to how you listen. And you don't even need the console open: every messaging bridge is a full control surface, so you can run the whole OS straight from a Telegram, WhatsApp or Signal thread.
Voice on
Voice in · voice out
Run it hands‑free
Hit the mic and talk. Speech is transcribed locally by default — the audio is deleted the moment it returns, and only metadata ever touches the audit chain.
🎙️
Speak“Rank Q2 cohorts by retention.” — captured from any bridge.
✎
TranscribeLocal Whisper by default, OpenAI as fallback. Runs before the engine even wakes.
⎇
RouteA persona and engine are picked for the turn — your overrides always win.
⚡
ActOne turn can reach every layer: Forge, workflows, RAG, agentic compute, A2A.
🔊
Speak backAnswer is spoken through a listener‑tuned voice — jargon and depth to taste.
One prompt reaches every layer
🎭
Personas Many minds, one runtime — routed per turn.
⚙️
Engines Claude, Codex, OpenCode & local models.
🔀
Workflows Multi-step AWP pipelines, on demand or scheduled.
🔨
Forge Schema-bound tools & skills, built at runtime.
📚
RAG Grounded answers over your own documents.
🧮
Agentic Compute Sweeps & tuning without spending tokens.
🔗
A2A mesh Signed task envelopes across teams.
🛡️
Audit Every step on a hash-chained spine.
Regulatory compliance
Built in, not bolted on.
Every compliance mechanism is a structural design constraint. There is no "compliance mode" you can accidentally leave off.
EU AI Act Art. 50
Bot Disclosure
One-time AI-nature disclosure per user, structurally locked. Cannot be disabled via configuration.
GDPR Art. 6 & 7
Consent Gate
Deny-by-default consent for transcript sharing. Per-user, TTL-capped, re-validated at consume time.
GDPR Art. 30 & 32
Hash-Chained Audit
Every event appends to a SHA-256-linked chain. Tampering invalidates it. Offline-verifiable.
EU AI Act Art. 14
Data Residency
Compliance-zone routing and egress lockdown structurally prevent data from leaving the permitted zone.
EU AI Act 2026 GDPR ISO/IEC 42001 NIST AI RMF
Agentic Compute
Compute that adapts to any problem
That's Agentic Compute: the worker owns the loop, the model owns the framing. The agent says what to optimise and when to stop; a sandboxed worker picks the strategy that fits the problem and turns the crank — from a quick tune to a Bayesian search over an 8 GB dataset, and never a raw byte in the context window.
01
Frame itThe model submits one job — what to optimise, the parameter space, and the stopping rule.
02
Run itA sandboxed worker evaluates combinations in parallel and streams Top-K progress back.
03
Read itThree model calls total — submit, poll, read. Zero tokens spent while the loop turns.
3 model calls / sweep up to 16 parallel SHA-256 audited
compute_run bayesian · GP + EI
sweep · learning_rate × n_estimators · 4 parallel
w0
w1
w2
w3
4/100
iterations
↓ 0.900
best loss
● sha-256
N iterations run in the worker — the model is idle until the result returns.
grid
Exhaustive coverage
Evaluates every combination in the grid. Pre-generated at submit — deterministic and fully reproducible.
random
Broad sampling
Uniform samples per batch from continuous ranges. One seed per run, stored for reproducibility.
bayesian
Fewest evaluations
A Gaussian-Process surrogate picks the highest Expected-Improvement points — finds a good region in the fewest runs.
Recursive delegation · the ACS run
It keeps working until the answer is good enough
A manager engine plans the task, delegates pieces to parallel worker runs, scores every result, and iterates toward a loss target. The point of the recursion is adaptation: where a capability is missing, a worker forges the tool or skill it needs at runtime — so the same flow can tune a model, run a backtest, or analyse an 8 GB dataset straight from a prompt.
★ MANAGER · claude-sonnet-4-6
loss — · idle
ITER 1 queued loss 0.82
W-A★ sub-mgr↳ spawnsSW-B1 · hermesSW-B2 · hermesW-C ⚒ forge.create_tool()
ITER 2 queued loss 0.51
W-DW-EW-F ✦ skill.create()
ITER 3 queued loss 0.12
W-GW-HW-Iuses forged tool + skill
★ sub-manager · recursion ⚒ forge tool · mid-run, shared ✦ skill · injected next turn manager sonnet · workers haiku · confidential hermes
Forge and SkillForge run inside the loop. A worker calls forge.create_tool() and the tool is instantly available to every later worker; another calls skill.create() and the skill is injected on the next turn. That runtime generation is the adaptation engine — how a plain-language question turns into a working analysis over data far too big for any context window.
The manager never touches your data. Every spawn passes the data gate, so only clean, redacted summaries flow back up the tree — bounded by a shrinking budget.
max_depth max_total_workers max_wall_time
The data firewall
Query 8 GB. Leak nothing.
Register a dataset once. The same file is presented two ways — a redacted snapshot to the model, the real bytes to the sandbox.
To the model
→A 22-char opaque data_handle
→Schema + redacted sample, capped at 4,000 tokens
→Stats via HyperLogLog & P5/P95 — never raw extremes
To the sandbox tool
→The real file path, read-only-bound into bwrap
→Every row readable — pandas.read_csv(path) just works
→Structured queries & SQL sources via the DSI protocol
PII redaction: drop redact pseudonymize mask-partial aggregate-only hash
Point it at the databases you already run — the model queries them by name over the DSI protocol, and the raw rows never move.
🐘PostgreSQL 🐬MySQL / MariaDB ❄️Snowflake 🔷BigQuery 🔴Redshift ☁️Amazon S3 🟦Azure Blob 📊Delta Lake + CSV · Parquet · GCS
Workflows & packaging · AWP
Describe the outcome. Ship the whole thing as one file.
You never draw the boxes and arrows. You describe an outcome in plain language — the manager delegates the run, and the execution graph discovers itself. Save that graph as a repeatable workflow, then export everything it needs — logic, tools, skills, personas and data bindings — into a single portable .awpkg bundle.
1 You describe it
“Every Monday, pull our Stripe MRR, flag the biggest churn drivers and post the summary to #finance.”
natural language · no config
›
2 The run discovers the graph
ACS workflow graph · branch → 3 outputs
›
3 Saved as a workflow
weekly-mrr-brief cron · Mon 9:00
1fetch Stripe MRR
2analyse churn drivers
3format summary
4deliver → #finance
repeatable · schedulable · replayable
DAG Replay
Freezes the exact graph the run discovered — same nodes, same order — for a faithful re-run.
AWP Template
Generalises the graph into a reusable blueprint with parameters — point it at new inputs and run again.
Recursion Graph
A whole agentic-compute delegation tree — sub-managers, workers and their iteration loops — captures as one .awpkg, ready to re-run the sweep.
The .awpkg format
Everything the workflow needs, in one archive
An .awpkg is a signed ZIP — the whole capability, not just the recipe. Install it into any tenant with one command and the tools, skills, personas and delegation logic all light up together. It declares; the runtime installs — no scripts, no binaries, eight fail-closed checks before a single byte is extracted.
weekly-mrr-brief-1.1.0.awpkg (ZIP)
├─ manifest.yaml id · version · perms
├─ workflows/ *.awp.yaml
├─ tools/ code.*.json
├─ skills/ /SKILL.md
├─ personas/ *.yaml
├─ data/ defaults.yaml
└─ README.md shown by inspect
corvin pkg build corvin pkg install
Delegation & workflow logic
The full AWP topology — agent steps, parallel fan-out/fan-in and recursive delegation_loop nodes — plus triggers and delivery targets.
Forge tools
Every custom tool the run built, each pinned to a sandbox with network: deny unless the manifest grants it.
SkillForge skills
Reusable skill bodies, linted before install and injected into the workers' future turns.
Cowork personas
The roles the workers assume — so the packaged team behaves the same on any machine.
Data bindings, not data
RAG-provider and datasource references travel; secret names are declared but their values stay in the vault — never in the package.
permissions: network / compute / secrets SemVer + dependencies hash-chained audit
Organization mesh · A2A protocol (L38)
Your datacenter. The whole org just asks.
Run CorvinOS on one machine in your datacenter — it's just another node in the mesh, the one that happens to do the heavy agentic compute over your confidential data. Every team pairs with every other over A2A: no hub, no center. Anyone sends plain-language tasks, answers flow back, but the raw data never leaves the building.
● request in ● answer out ● team ↔ team mesh ⚿ HMAC-paired · consent-gated peer-to-peer · no central server
Every connection is a Friendship Token — a shared HMAC key exchanged out-of-band. No platform sits in the middle; each node authenticates the other and audits every envelope on its own hash chain.
HMAC-SHA256 mutual auth purpose-limited per-origin rate limit data-classification cap tamper-evident audit instant revoke
Adapts & evolves
It grows into your setup
CorvinOS isn't a fixed product you conform to. It learns how you like to work, it builds the capabilities it's missing while it runs, and it opens cleanly to whatever else you need to plug in.
layer stack + extension
🔌 acme.crm-connector extension
🧩 mcp: notion · slack · github mcp
🔨 forged tools & skills runtime
PROTECTED CORE
🔒 corvin.audit · redaction · policy locked
🔒 corvin.engines · personas · voice locked
🎧
Adapts to you
Voice & Profile tunes how each listener is spoken to — vocabulary, jargon level, depth — and personas route every turn to the right voice, tools and engine. Your overrides always win.
🌱
Evolves itself
Hit a gap and a worker forges the tool and writes the skill — at runtime, mid-task. Each one persists and is instantly available to every later turn, so the system keeps getting more capable the more you use it.
🧩
Open & extensible
Install external MCP servers from the catalog, add vendor layers through the Extension API, or drop in custom compute engines. The corvin.* core stays cryptographically locked — an extension can add a guardrail, never weaken one.
Platform features
Everything for production AI agents
From multi-channel messaging to runtime tool generation, CorvinOS ships production-grade infrastructure out of the box.
Seven Bridges
Native daemons for Discord, Telegram, WhatsApp, Slack, Email, Teams and Signal. Hot-reload settings, per-chat profiles, rate limiting.
Runtime Tool Generation
Forge generates schema-bound, sandboxed tools at runtime via MCP with a four-scope workspace hierarchy.
Runtime Skill Learning
SkillForge injects markdown skills into future turns, with automatic grading, promotion gates and an injection linter.
Multi-Engine Support
Swap between Claude Code, Codex, OpenCode, local Hermes/Ollama and GitHub Copilot — no bridge changes. Adaptive Haiku/Sonnet model selection built in.
Conversation Memory
FT
[truncated for AI cost control]