Skip to main content

CorvinOS — universal, self-contained, cross-platform AI assistant framework

Project description

CorvinOS — The compliance-enforcing AI agent runtime for regulated environments

Apache 2.0 EU AI Act 2026 Enforced GDPR Compliant 5 WorkerEngines

Overview · Architecture · Audit & Compliance · A2A Network · Engine Layer · Security · EU AI Act


CorvinOS enforces the EU AI Act in code, not in documentation.

Every compliance requirement — disclosure, consent, audit integrity, data residency, egress control, GDPR erasure — is a structural constraint that cannot be disabled by a flag, env var, or config override. Regulated deployments get verifiable guarantees, not policy promises.


Quick Start

See INSTALLATION.md for the complete setup guide.

Recommended — works identically on Linux, macOS, and Windows:

pip install corvinos
python -m corvinOS        # web console at http://localhost:8765

python -m corvinOS is PATH-independent: it starts the console on the first try on every OS — including Microsoft Store / system Python, where pip install falls back to a per-user scripts directory that is not on PATH (the usual reason corvin-serve is "not found" on Windows). On Windows you can also use py -m corvinOS.

Want the short corvin-serve command on your PATH? Install with pipx — it isolates the app and wires up PATH automatically, on every platform:

pipx install corvinos
corvin-serve              # web console at http://localhost:8765

corvin-serve from a plain pip install only works once its scripts directory is on PATH. Running python -m corvinOS once adds that directory to your PATH, so corvin-serve then works in a new terminal — but pipx (or python -m corvinOS) is the reliable cross-platform path.

The base install is pure-Python and cross-platform — it brings the web console all the way up to setup on Linux, macOS, and Windows, with cloud/edge voice (OpenAI + Microsoft Edge TTS) working out of the box. For local, offline speech models add the optional extra:

pip install "corvinos[voice]"   # local Piper TTS + faster-whisper STT

The voice extra is opt-in because its local-model dependencies (piper-tts, faster-whisper) lack Windows wheels for some Python versions; keeping them out of the base install means pip install corvinos reaches setup reliably on every supported platform.

Requirements: Python 3.10+ · Linux, macOS 12+, or Windows 10/11 · Node.js 20+ required only for bridges

Default engine: Claude Code (Claude Pro or Max subscription required). For fully local, zero-egress deployment: --engine hermes (Ollama, no API key).

# Developer install from source
git clone https://github.com/CorvinLabs/CorvinOS.git && cd CorvinOS
pip install -e ".[all]" && corvin-install

Full documentation: docs/overview.md


EU AI Act 2026 + GDPR: Structural Enforcement

CorvinOS implements EU AI Act 2026 and GDPR as structural design constraints. Every feature must answer: does this weaken a compliance guarantee?

Mechanism Layer Regulation Enforcement property
Bot Disclosure L19 EU AI Act Art. 50 One-time per uid · structurally fail-closed · no bypass path
Consent Gate L16 GDPR Art. 6 & 7 Deny-by-default · TTL-capped · re-validated at every consume
Hash-Chained Audit L16 GDPR Art. 30 & 32 SHA-256 chain · offline-verifiable · daily auto-verify · chain write failure blocks request
Audit-at-Rest Encryption L37 GDPR Art. 32 Segment rotation · age/gpg sealing · RFC 3161 TSA timestamping (opt-in) · 7-year retention
Data Classification + Flow Guard L34 EU AI Act Art. 14 4-stage matrix (PUBLIC/INTERNAL/CONFIDENTIAL/SECRET) · fail-closed at every engine-spawn callsite
Egress Lockdown L35 EU AI Act Art. 14 Declarative allowed_hosts / forbidden_hosts · default_action=deny EU production preset
GDPR Art. 17 Erasure L36 GDPR Art. 17 Cross-layer erasure orchestrator · pseudonymous subject IDs · audit trail de-linked, not deleted
Acceptable-Use Gate L44 EU AI Act Art. 5 & 50 SHA-256-anchored house-rules policy · no disable switch · no tenant override
Compliance-Zone Routing ADR-0007 EU AI Act Art. 14 allowed_engines / forbid_engines per tenant · data_residency in tenant.corvin.yaml

Absolute constraints — no env var, flag, or config can disable these: disclosure is structurally locked · consent gate has no bypass · every audit event traverses the hash chain before any response · L34 blocks non-compliant engine spawns · L38 audit write failure blocks the A2A request · L44 house-rules gate has no kill-flag.

voice-audit verify              # walk the full hash chain; exits 1 on any break
bridge.sh doctor                # boot self-test with audit chain verification
python -m corvin_compliance_reports.cli generate processing-records   # GDPR Art. 30

Full compliance reference: docs/eu-ai-act/README.md · docs/audit-and-compliance.md


Core Features

Five WorkerEngines — One Compliance Stack

The WorkerEngine protocol (L22) decouples the LLM backend from the compliance runtime. Every engine shares the path-gate (L10), audit chain (L16), and artifact registration (L33) via the Tool Execution Broker.

Engine Provider Key property
Claude Code Anthropic Claude (Pro/Max) Full feature set — hooks, skills, MCP, mid-stream inject
Codex CLI OpenAI MCP + stream JSON
OpenCode Ollama, OpenRouter, Google Provider-agnostic
Hermes NousResearch via local Ollama Zero network egress · L34 CONFIDENTIAL-capable · no API key
Copilot CLI GitHub Copilot Business/Enterprise Zero incremental cost · worker/delegation only

A2A Agent Mesh with Network Attestation (L38 + ADR-0103)

CorvinOS instances form a decentralized agent mesh. Every cross-instance call carries HMAC-SHA256 signature, bidirectional instance attestation (Protocol v7), nonce replay protection, and binary attachment verification (≤16 attachments, ≤1 MiB). Audit-first invariant: A2A.envelope_received is written to the hash chain before any response is sent. Unknown origins receive unsigned rejections (no oracle for probing attacks).

Security Depth: 39+ Layers

Path-gate hook (L10) · secret vault with bwrap env-injection (L16) · layer integrity protocol with RS256-signed manifest (ADR-0141) · Forge runtime tools in bwrap sandbox (L6) · SkillForge with fail-closed linter (L7) · session lifecycle with audit-first reset (L8) · per-turn task event log with streamed tokens · multi-tenant isolation (ADR-0007) · conversation recall with PII-redaction (L28) · session artifact memory (L33) · DSI v1 external data sources (ADR-0106).

Data Classification + Egress Control

Three-layer defence: ADR-0007 allowed_enginesL34 data_classification.matrixL35 egress allowed_hosts. EU_PRODUCTION presets ship under operator/bundle/config-templates/. The LLM sees only schema + aggregate stats + k-anonymised sample — raw rows never enter the context window (L24/L32).

Web Console + Multi-Tenant

Browser control plane at http://localhost:8765. Five-scope tenant model: (task, session, project, user, tenant_id). All routes use session-bound tenant_id — no env-var fallback. Full REST API at /v1/console/.

bridge.sh console     # start web console
bridge.sh doctor      # health check + audit verify

Architecture

CorvinOS architecture — channels → Bridge Adapter → WorkerEngine

Seven bridge daemons (WhatsApp, Telegram, Discord, Slack, Email, Teams, Signal) funnel messages into a shared inbox. The Bridge Adapter enforces ACL, routes to the right persona, runs the TTS pipeline, and grades skills — per-chat-sequential, cross-chat-parallel. The WorkerEngine abstraction swaps the LLM backend without touching the compliance stack.

Full layer breakdown: docs/layer-model.md · Architecture diagrams: docs/diagrams/ · Full documentation: docs/overview.md


Testing

bash operator/bridges/run-all-tests.sh

Tests span the Python adapter, Node daemon-boot smoke tests, cowork, forge, skill-forge, and all security layers. Tests run hermetically — Claude stubbed via ADAPTER_FAKE_CLAUDE=1, real bwrap where namespace isolation is the subject under test.


Contributing

By opening a pull request you accept CLA.md. Every merged contribution requires a corresponding entry in CLA-SIGNATORIES.md. See CONTRIBUTING.md for the full workflow.


License

Licensed under the Apache License, Version 2.0.

"CorvinOS" and "Corvin" are project identifiers per Apache § 6 — the license does not grant trademark rights.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

corvinos-0.9.21.tar.gz (10.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

corvinos-0.9.21-py3-none-any.whl (4.5 MB view details)

Uploaded Python 3

File details

Details for the file corvinos-0.9.21.tar.gz.

File metadata

  • Download URL: corvinos-0.9.21.tar.gz
  • Upload date:
  • Size: 10.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for corvinos-0.9.21.tar.gz
Algorithm Hash digest
SHA256 289a69e528105236a3cf02352e93a404458e656c36febfd1fb99055cd4eb1980
MD5 1df8c489096815883d6e7924796e11ae
BLAKE2b-256 a1e9db2655a891e7d38dcd5d2d3c7f2a7022578a34b709255e6281c26f74463d

See more details on using hashes here.

File details

Details for the file corvinos-0.9.21-py3-none-any.whl.

File metadata

  • Download URL: corvinos-0.9.21-py3-none-any.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for corvinos-0.9.21-py3-none-any.whl
Algorithm Hash digest
SHA256 402fb0658ea6ca57900d8a9b378eaabe33e2472e5c2e4ec9f5adc34b95e1cf47
MD5 844dc2f29d917b49a1373ff49dbe6584
BLAKE2b-256 f9e38deeee53fbeace9bdcb365b5963ed33edde6a3fdfc4bdc38edb871caa5d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page