docs/book/src/architecture/decisions/ADR-001-rust-first.md
This is a retroactive record of a decision made before the formal ADR process. The exact original decision date is not available in this record; the date above is the date this ADR was added to the architecture docs.
This record was drafted from FND-002 §6.3 and the current repository structure. It was not recovered from an older ADR file.
ZeroClaw is a local-first agent runtime whose primary distribution needs to run without a required language runtime installed by the user. It integrates with many operating-system and network boundaries, and it keeps strong control over security, memory, process, logging, and configuration behavior.
The project also has adjacent agent-system experiments in other languages. Those projects are useful for exploration, but the runtime needs one implementation language for the code that ships as ZeroClaw: providers, channels, tools, memory, config, gateway, hardware support, and the user-facing CLI.
Rust fits the requirements that shape the runtime:
ZeroClaw's runtime, first-party crates, CLI, gateway, tooling hosts, provider integrations, channel integrations, memory backends, config schema, and hardware support are implemented as Rust workspace members.
Non-Rust code may exist at the edges when it is the correct boundary: shell scripts, release and packaging helpers, generated web assets, external CLIs, MCP servers, skill scripts, and plugin guests. These surfaces may support, package, drive, or extend ZeroClaw, but they do not become the implementation base for the core runtime unless a new accepted ADR supersedes this one.
Positive consequences:
Negative consequences:
Follow-up decisions:
AGENTS.mdCargo.toml