Repository navigation
Hatchling 0.1.0
The first public release of Hatchling: personal AI agents you actually own.
Hatchling is an always-on agent that lives on your machine, thinks with the model you choose, and works while you're away. It's built so it cannot see your keys, read your files, or reach the internet unless you granted exactly that. Everything the model drives runs in a kernel-isolated cell; the broker outside it holds the keys, the network and the schedule.
What's in 0.1.0
- Cells. Every agent runs in its own Linux user, mount, PID, network and IPC namespaces, under a seccomp-BPF allowlist, with every capability dropped. There is no unsandboxed mode: if the kernel can't build a cell, Hatchling refuses to start.
- A vault the agent never reads. Credentials are sealed at rest (XChaCha20-Poly1305) and unlocked by key file, authenticator codes or a FIDO2 security key, with backup codes. The egress proxy swaps a surrogate for the real key at the boundary, so the agent can use a service without holding its key.
- No network by default. A cell reaches the outside only through the egress proxy, per grant, against an exact-match allowlist, over TLS for remote hosts.
- Your model. Any OpenAI-compatible endpoint: Ollama, llama.cpp, LM Studio, vLLM, or a hosted API.
- Coding harnesses. Claude Code and Codex CLI, pinned to a SHA-256, run inside cells.
- Scheduling, memory and goals. Cron and one-off tasks in explicit timezones, each with exactly the grants it was created with; broker-owned memory, goals and a digest feed.
- Skills, artifacts and spaces. Signed skill packages in their own cells, artifacts inspected at the boundary, and shared spaces with members and devices.
- A local API. A Unix-socket JSON API with a generated JSON Schema: docs/local-api.md.
Get started
Linux 5.11+ with unprivileged user namespaces, or WSL2 on Windows. Build from source; the quickstart takes you from git clone to an agent answering from inside a cell, with a stand-in model, so no API key is needed.
git clone --branch v0.1.0 https://github.com/undergroundrap/hatchling
cd hatchling
cargo build --releaseStatus
Hatchling is pre-1.0: the wire protocol and configuration can still change between minor versions.
- Known limitations. Our own pre-launch review of the trust boundary found gaps, and they're published, not hidden: Known limitations. Each one is a work order with an open issue.
- Root. The broker runs as root so each cell gets a uid of its own; running without root works with reduced features.
- Frontend. The TypeScript UI runs on scripted data; wiring its live adapter to the local API is open work.
- macOS. No backend yet; the isolation layer is a platform-neutral trait.
Held to a high bar
1,983 Rust tests and 397 frontend tests, with real-kernel cell tests that fail rather than skip in CI. Mutation testing with a kill floor of 1.0. unsafe confined to one crate. Strict clippy, cargo deny, a written review of every dependency, and CI on Rust 1.98.1 and the 1.85 MSRV.
Get involved
- Work orders: WO-001 to WO-012 are open issues with full specs, most of them security hardening. Comment on one to claim it.
- First PR: good first issues.
- Questions and ideas: Discussions.
- Security reports: privately, per SECURITY.md.
License
AGPL-3.0-or-later, with a commercial license for organizations that need other terms: see oceanbennett.com/hatchling.