An open-source Rust monorepo for autonomous agents. 13 modules, 76 crates, 2,625 tests.
Life is a contract-first Agent Operating System that treats agents as living systems -- with cognition, persistence, homeostasis, identity, finance, networking, observability, and evaluation as first-class computational primitives. Each maps to a biological analog:
| Primitive | Biological Analog | Module |
|---|---|---|
| Cognition + Execution | Central nervous system | Arcan |
| Tool Execution | Motor cortex / effectors | Praxis |
| Persistence | Long-term memory | Lago |
| Homeostasis | Autonomic nervous system | Autonomic |
| Finance | Circulatory system | Haima |
| Identity | DNA + immune identity | Anima |
| Evaluation | Metacognition | Nous |
| Networking | Social/swarm behavior | Spaces |
| Observability | Proprioception | Vigil |
| Contract / Genome | DNA | aiOS |
life/
├── Cargo.toml # Unified workspace (76 crates)
├── crates/
│ ├── aios/ # Kernel contract (7 crates)
│ ├── arcan/ # Agent runtime (19 crates) -- cargo install arcan
│ ├── lago/ # Persistence (16 crates) -- lagod daemon
│ ├── autonomic/ # Homeostasis (5 crates) -- autonomicd daemon
│ ├── praxis/ # Tool execution (4 crates)
│ ├── haima/ # Finance (8 crates) -- haimad daemon
│ ├── nous/ # Evaluation (7 crates) -- nousd daemon
│ ├── anima/ # Identity (3 crates)
│ ├── vigil/ # Observability (1 crate)
│ ├── spaces/ # Networking (1 crate + WASM)
│ ├── relay/ # Remote sessions (3 crates)
│ ├── cli/ # Life CLI (1 crate)
│ └── spaces-a2a/ # A2A bridge (1 crate)
├── .github/workflows/
│ ├── ci.yml # 11-job CI pipeline
│ ├── release.yml # release-plz automation
│ ├── release-binaries.yml # Binary distribution
│ └── mirror-sync.yml # Read-only repo mirrors
└── docs/
| Module | Crates | Description | Key Binary | Docs |
|---|---|---|---|---|
| aiOS | 7 | Kernel contract -- canonical types, traits, event taxonomy | -- | CLAUDE.md |
| Arcan | 19 | Agent runtime -- event loop, LLM providers, streaming, TUI | arcan |
CLAUDE.md |
| Lago | 16 | Event-sourced persistence -- journal, blob store, knowledge graph | lagod |
CLAUDE.md |
| Autonomic | 5 | Homeostasis -- three-pillar regulation, hysteresis gates | autonomicd |
CLAUDE.md |
| Praxis | 4 | Tool execution -- sandbox, hashline editing, MCP bridge | -- | CLAUDE.md |
| Haima | 8 | Finance -- x402 payments, secp256k1 wallets, per-task billing | haimad |
CLAUDE.md |
| Nous | 7 | Metacognitive evaluation -- inline heuristics, LLM-as-judge | nousd |
CLAUDE.md |
| Anima | 3 | Identity -- soul profiles, belief states, DID | -- | -- |
| Vigil | 1 | Observability -- OpenTelemetry, GenAI semantic conventions | -- | CLAUDE.md |
| Spaces | 1 | Distributed networking -- SpacetimeDB 2.0, RBAC | -- | CLAUDE.md |
| Relay | 3 | Remote agent sessions -- WebSocket relay daemon | relayd |
CLAUDE.md |
| CLI | 1 | Life CLI -- deployment pipeline | life-cli |
-- |
| Spaces A2A | 1 | A2A protocol bridge for Spaces | spaces-a2a |
-- |
| 76 |
- Rust 2024 Edition (MSRV 1.93)
- Protobuf compiler -- required for gRPC codegen (lago, haima)
# macOS brew install protobuf # Ubuntu/Debian sudo apt-get install -y protobuf-compiler
cargo install arcan
# Interactive agent shell with mock provider -- works immediately
arcan shell --provider mock
# Or start the daemon + TUI client
arcan serve --provider mock # terminal 1
arcan chat # terminal 2# Anthropic Claude
ANTHROPIC_API_KEY=sk-ant-... arcan shell
# Local Ollama
arcan shell --provider ollama --model gemma4
# Any OpenAI-compatible API
OPENAI_API_KEY=... OPENAI_BASE_URL=https://api.together.xyz arcan shell --provider openai --model meta-llama/Llama-3.3-70B-Instruct-TurboSee .env.example for all configuration options.
git clone https://github.com/broomva/life.git
cd life
cargo check --workspace # Verify compilation (76 crates)
cargo test --workspace # Run 2,625+ tests
# Set up conventional commit hooks
git config core.hooksPath .githooks
git config commit.template .gitmessagecargo run -p arcan -- serve # Agent runtime (port 3000)
cargo run -p lagod # Persistence (port 8080/50051)
cargo run -p autonomicd # Homeostasis controller (port 3002)
cargo run -p haimad # Finance engine (port 3003)graph TD
aiOS["<b>aiOS</b><br/>Kernel Contract<br/><i>types, traits, events</i>"]
Arcan["<b>Arcan</b><br/>Agent Runtime"]
Lago["<b>Lago</b><br/>Persistence"]
Autonomic["<b>Autonomic</b><br/>Homeostasis"]
Haima["<b>Haima</b><br/>Finance"]
Anima["<b>Anima</b><br/>Identity"]
Nous["<b>Nous</b><br/>Evaluation"]
Praxis["<b>Praxis</b><br/>Tool Execution"]
Spaces["<b>Spaces</b><br/>Networking"]
Vigil["<b>Vigil</b><br/>Observability"]
aiOS --> Arcan
aiOS --> Lago
aiOS --> Autonomic
aiOS --> Haima
aiOS --> Anima
aiOS --> Nous
aiOS --> Praxis
aiOS --> Spaces
aiOS --> Vigil
Arcan --> Praxis
Arcan --> Lago
Arcan --> Spaces
Arcan --> Autonomic
Nous --> Arcan
Vigil -.-> Arcan
Vigil -.-> Lago
Haima --> Lago
Anima --> Lago
style aiOS fill:#4a9eff,stroke:#2d6bc4,color:#fff
style Arcan fill:#ff6b6b,stroke:#c44d4d,color:#fff
style Lago fill:#51cf66,stroke:#37a34d,color:#fff
style Autonomic fill:#ffd43b,stroke:#c4a230,color:#000
style Haima fill:#cc5de8,stroke:#9b45b3,color:#fff
style Anima fill:#ff922b,stroke:#c47020,color:#fff
style Nous fill:#20c997,stroke:#17976e,color:#fff
style Praxis fill:#748ffc,stroke:#5770c4,color:#fff
style Spaces fill:#f06595,stroke:#b84d72,color:#fff
style Vigil fill:#868e96,stroke:#656b71,color:#fff
All modules depend on aiOS (the kernel contract). Modules never import each other's internals -- only bridge crates connect them.
cargo fmt --all # Format
cargo clippy --workspace -- -D warnings # Lint (zero warnings policy)
cargo test --workspace # 2,625 tests
cargo build --workspace # Full buildThe monorepo uses a single CI workflow with 11 jobs:
| Job | Check |
|---|---|
| Format | cargo fmt --check |
| Lint | cargo clippy -D warnings |
| Test (Linux) | cargo test --workspace |
| Test (macOS) | cargo test --workspace |
| MSRV | cargo check with Rust 1.93 |
| Security Audit | rustsec/audit-check |
| Dependency Check | cargo deny check |
| Secret Scan | trufflehog --only-verified |
| Commit Lint | Conventional commits on PR titles |
| Console | arcan-console frontend (bun) |
| Build Release | cargo build --release |
Releases are automated via release-plz with per-crate semver from conventional commits.
Each module is also available as a read-only mirror for standalone use:
| Mirror | Install |
|---|---|
| broomva/arcan | cargo install arcan |
| broomva/lago | -- |
| broomva/autonomic | -- |
| broomva/praxis | -- |
| broomva/haima | -- |
| broomva/nous | -- |
| broomva/anima | -- |
| broomva/vigil | -- |
| broomva/spaces | -- |
| broomva/aiOS | -- |
Development happens in this monorepo. Mirrors are synced automatically via splitsh-lite.
- Architecture -- System design
- Status -- Implementation health dashboard
- Roadmap -- Development phases
- broomva.tech/start-here -- Getting started guide
Contributions are welcome! See CONTRIBUTING.md for guidelines.
This project uses conventional commits. Set up the commit template:
git config commit.template .gitmessage
git config core.hooksPath .githooks