zeroclaw

App Featured

Zero overhead. Zero compromise. 100% Rust. The fastest, smallest AI assistant.

Checked Β· Sources

Downloads
11,173
Dependents
Not applicable
Stars
33,286
Forks
5,004
Contributors
420
Commits
5,849
Latest release
0.8.7 Β·

About

From the project README Β·

ZeroClaw

πŸ¦€ ZeroClaw β€” Personal AI Assistant

You own the agent. You own the data. You own the machine it runs on.

Website Β· Docs Β· Philosophy Β· Quick start Β· Architecture Β· Discord


ZeroClaw is an agent runtime β€” a single Rust binary you configure and run. It talks to LLM providers (Anthropic, OpenAI, Ollama, and ~20 others), reaches the world through 30+ channels (Discord, Telegram, Matrix, email, voice, webhooks, your own CLI), and acts through tools (shell, browser, HTTP, hardware, custom MCP servers). Everything runs on your machine, with your keys, in your workspace.

Read the Philosophy for the four opinions that shape it.

Install

Unix (recommended)
curl -fsSL https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/master/install.sh | sh
"${CARGO_HOME:-$HOME/.cargo}/bin/zeroclaw" quickstart
Windows (recommended)

Use the Rust-free prebuilt PowerShell path in the Windows setup guide. It installs the current release, updates PATH, and runs Quickstart.

For the guided Unix installer, source builds, app and feature selection, and PATH behavior, compare the installation paths.

Run ./install.sh --help for the complete Unix installer flag reference.

Read the full README

Working on the docs? The translated documentation catalogues live in a git submodule (docs/book/po). The Rust build does not need it, but building or syncing the docs does. Clone with it, or add it to an existing clone:

git clone --recurse-submodules https://github.com/zeroclaw-labs/zeroclaw.git
git submodule update --init docs/book/po   # existing clone

Platform-specific notes: Linux Β· macOS Β· Windows Β· FreeBSD Β· NixOS Β· Docker

Quick start

zeroclaw quickstart               # one-shot setup: pick a provider, write a working config
zeroclaw agent -a <alias>         # interactive chat using the [agents.<alias>] entry
zeroclaw service install          # register as systemd/launchctl/Windows Service
zeroclaw service start            # run it always-on in the background

Full walkthrough: Quick start β€” or skip the safety gates with YOLO mode for dev boxes.

What ZeroClaw does

  • Multi-channel β€” one agent answering you across every channel you configure. Inbound messages from Discord, Telegram, Matrix, email, webhooks, CLI β€” all delivered to the same agent loop.
  • Provider-agnostic β€” model providers are pluggable. Configure Anthropic, OpenAI, local Ollama, or any OpenAI-compatible endpoint. Fallback chains and routing keep the agent running when a provider flakes.
  • Security-first, with escape hatches β€” default autonomy is supervised: medium-risk ops require approval, high-risk blocked. Workspace boundaries, command policy, OS-level sandboxes (Landlock / Bubblewrap / Seatbelt / Docker), and cryptographic tool receipts on every action. YOLO mode exists for trusted dev environments.
  • Hardware-capable β€” GPIO / I2C / SPI / USB on Raspberry Pi, STM32, Arduino, and ESP32 via the Peripheral trait. See Hardware.
  • Gateway + dashboard β€” HTTP / WebSocket gateway for clients, with a web dashboard for chat, memory browsing, config editing, cron management, and tool inspection.
  • SOP engine β€” event-triggered Standard Operating Procedures (MQTT / webhook / cron / peripheral) with approval gates and resumable runs.
  • ACP β€” IDE / editor integration via Agent Client Protocol (JSON-RPC 2.0 over stdio).

Configuration

One TOML file at ~/.zeroclaw/config.toml. Pointers:

A V3 config has at minimum four section headers (<type>.<alias> shaped) β€” a provider entry, an agent that references it, and a risk profile the agent gates against. A hand-written file should also start with schema_version = 4, the current schema version. See Provider Configuration β†’ Minimal working example for the canonical four-section form with inline type/alias commentary.

For standard OpenAI Codex subscription auth, Quickstart can write the provider entry for you:

zeroclaw auth login --model-provider openai-codex --import ~/.codex/auth.json  # if already signed in with Codex CLI
zeroclaw quickstart --model-provider openai-codex --model gpt-5.4

The provider entry uses the canonical OpenAI shape; the alias below is an example:

[providers.models.openai.coding]   # type = openai; alias = coding (you choose)
model = "gpt-5.4"
wire_api = "responses"
requires_openai_auth = true

…and point your agent at it with model_provider = "openai.<alias>".

Notes:

  • Normal OpenAI Codex subscription auth uses stored auth profiles, not an api_key on the provider entry.
  • Claude Max setup-token auth stays on the canonical Anthropic slot: run claude setup-token, choose setup_token in Quickstart, and paste the generated token into the API key/token prompt.
  • Only set api_key / uri on [providers.models.openai.<alias>] when intentionally targeting a custom OpenAI-compatible gateway or endpoint.
  • If you see provider streaming failed, falling back to non-streaming chat, ZeroClaw retries the same request in non-streaming mode. Check zeroclaw auth status before changing provider config.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            channels       gateway        ACP                 β”‚
β”‚          (30+ adapters)   (REST/WS)    (JSON-RPC)            β”‚
β”‚                        ↓                                     β”‚
β”‚                   ZeroClaw runtime                           β”‚
β”‚         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                   β”‚
β”‚         β”‚  agent   β”‚ security β”‚   SOP    β”‚                   β”‚
β”‚         β”‚   loop   β”‚  policy  β”‚  engine  β”‚                   β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                   β”‚
β”‚              ↓          ↓           ↓                        β”‚
β”‚          providers    tools      memory                      β”‚
β”‚         (Anthropic,  (shell,    (SQLite,                     β”‚
β”‚          OpenAI,     browser,    embeddings)                 β”‚
β”‚          Ollama,     HTTP,                                   β”‚
β”‚          ~20 more)   hardware)                               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Full detail with Mermaid diagrams: Architecture overview Β· Request lifecycle Β· Crates.

Contributing

Start with how to contribute. Larger changes go through the RFC process. Real-time chat lives on Discord (the best way to reach the team); durable work tracking is on GitHub issues.

Good places to start:

  • New channel β†’ crates/zeroclaw-channels/
  • New provider β†’ crates/zeroclaw-providers/
  • New tool β†’ crates/zeroclaw-tools/
  • Hardware support β†’ crates/zeroclaw-hardware/
  • Docs β†’ docs/book/src/

AI-assisted PRs are welcome; see Contribution culture (RFC #5615) for the co-authorship norms.

Security

Do not file public issues for security vulnerabilities. Email security@zeroclaw.dev. See SECURITY.md for the full policy.

Official repository & impersonation notice

This is the only official ZeroClaw repository:

https://github.com/zeroclaw-labs/zeroclaw

Any other repository, organization, domain, or package claiming to be "ZeroClaw" or implying affiliation with ZeroClaw Labs is unauthorized and not affiliated with this project.

License

Dual-licensed: MIT OR Apache 2.0. You may choose either. Contributors automatically grant rights under both β€” see CLA. The ZeroClaw name and logo are trademarks of ZeroClaw Labs.

Sponsors

Thanks to Blacksmith for sponsoring the CI infrastructure that builds and tests ZeroClaw.

CI powered by Blacksmith

Credits

Built and maintained by the community β€” original creator @theonlyhennygod; project lead @JordanTheJet. Full maintainer list in Communication.

Thanks to the communities that incubated early work: Harvard University, MIT, Sundai Club, and every contributor pushing it forward.

Runs on
GPU support unknown
What shows it
  • no dependency or feature matches a backend row
Native code
Required
  • Binds native code: aardvark-sys, ring, libsqlite3-sys, tree-sitter, tree-sitter-language and 3 more
Python bindings
No Python binding crate found
License
Apache-2.0 OR MIT

Compare with similar projects

Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.

zeroclaw beside the projects that share a topic with it
ProjectDownloadsDependentsStarsLatest releaseRuns on (GPU)Native codeLicense
zeroclaw This page App Featured

Zero overhead. Zero compromise. 100% Rust. The fastest, smallest AI assistant.

11,173 binary downloads per release Not applicable 33,286 0.8.7 GPU support unknown Binds native code: aardvark-sys, ring, libsqlite3-sys, tree-sitter, tree-sitter-language and 3 more Apache-2.0 OR MIT

Type-safe implementation of the Model Context Protocol in Rust, designed to reduce errors and accelerate development with powerful utilities.

107,187 downloads over 30 days 19 79 2.0.0 GPU support unknown No native code found MIT
rust-mcp-sdk Featured

An asynchronous SDK and framework for building MCP-Servers and MCP-Clients, leveraging the rust-mcp-schema for type safe MCP Schema Objects.

29,764 downloads over 30 days 51 199 2.0.0 GPU support unknown No native code found MIT

LangChain for Rust, the easiest way to write LLM-based programs in Rust

4,306 downloads over 30 days 4 1,362 8.0.0 GPU support unknown Binds native code: tree-sitter (feature tree-sitter), ort-sys (feature fastembed), ring (feature surrealdb), tree-sitter-language (feature tree-sitter). Build uses a native toolchain: cc (feature tree-sitter) MIT
yoagent Listed

The agent loop for Rust: stream from 7 LLM protocols, run tools, loop until done. Native or wasm32 (Cloudflare Workers).

2,027 downloads over 30 days 5 369 0.27.4 GPU support unknown No native code found MIT
chidori Listed

The agent framework where every run is durable, replayable, and resumable by default. Plain async TypeScript agents on an embedded pure-Rust JS engine.

Python bindings

257 downloads over 30 days 0 1,372 3.8.1 GPU support unknown Binds native code: aws-lc-rs, aws-lc-sys, lcms2-sys, libffi-sys, libsqlite3-sys and 4 more Apache-2.0
axp App Listed

An open protocol that gives AI agents a secure, sandboxed place to run code and use tools β€” with lean context usage. AXP works alongside MCP

Not measured Not applicable 3 Not measured Not measured Not measured Apache-2.0
Why FeaturedIt passes every Featured gate.

What it meets

  • Its use signals read: binary downloads 33521, Homebrew unknown, Repology families unknown, Docker growth unknown. Featured needs 2 of these to reach their limits.
  • It also passes the repository route, which counts as one use signal: 33,286 stars, 5,004 forks and 420 contributors. It needs 4,539 stars, 434 forks and 79 contributors together.
  • The last activity is on 9 Nov 2026, 0 days ago. The rules expect an update within 365 days. Dormancy rule

Check notes

  • the latest release was packaged from a dirty working tree

Exact rules: Featured app. The check on applied thresholds version 9.

Every rule outcome, as the check records it
  • expected-interval: app: E = 365 days
  • dormancy: last activity 2026-11-09, 0 days ago, E = 365: active
  • featured: featured: binary downloads 33521, Homebrew unknown, Repology families unknown, Docker growth unknown, repository route stars 33286 (needs 4539), forks 5004 (needs 434), contributors 420 (needs 79)
Crates26 crates

Measurements and sources

Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.

Sources6 sources
Adoption11,173 binary downloads per release4 not measured
Adoption measurements
SignalValueSourceFetchedCounts
Active dependentsNot measuredYes
New dependents (365 days)Not measuredYes
Peak active dependentsNot measuredYes
Active dependents as a share of the peakNot measuredYes
Binary downloads per release11173GitHub releasesYes
MaintenanceLatest human commit: on the check date4 not measured
Maintenance measurements
SignalValueSourceFetchedCounts
Latest human commit2026-11-09GitHub repositoryYes
Latest release2026-10-27GitHub releasesYes
First release2026-02-27crates.io database dumpYes
Latest version0.8.7crates.io database dumpNo
Days the oldest outside issue waits for a reply6GitHub repositoryYes
Maintainer replies over 365 days58GitHub repositoryYes
Repository archivedfalseGitHub repositoryYes
Repository gonefalseGitHub repositoryYes
Release commit or manifest in the repotruecrates.io packageNo
Published docsNot measuredYes
Latest release fails cargo checkNot measuredYes
Build check dateNot measuredYes
Build check toolchainNot measuredYes
SecurityNot measured
Security measurements
SignalValueSourceFetchedCounts
Unpatched vulnerabilities past the grace windowNot measuredYes
RustSec unmaintained advisoryNot measuredYes
Deprecation noticeNot measuredYes
Deprecated requirementNot measuredYes
Distribution4 releases, 195 downloads over 30 days6 not measured
Distribution measurements
SignalValueSourceFetchedCounts
Releases4crates.io database dumpNo
Downloads over 30 days195crates.io database dumpNo
Binary downloads over the last 3 releases33521GitHub releasesYes
Homebrew installs on request over 365 daysNot measuredYes
Repology repository familiesNot measuredYes
Docker pull growth over 90 daysNot measuredYes
Docker pulls at the growth baselineNot measuredYes
Every version a prereleasefalsecrates.io database dumpYes
Every version 0.0.xfalsecrates.io database dumpYes
Every version yankedNot measuredYes
Crate deleted from crates.ioNot measuredYes
Repository33,286 stars, 5,004 forks, 420 contributors, 5,849 commits. Stars alone never qualify a project.
Repository measurements
SignalValueSourceFetchedCounts
GitHub stars33286GitHub repositoryYes β€” one part of the repository route
GitHub forks5004GitHub repositoryYes β€” one part of the repository route
Contributors with a GitHub account420GitHub contributorsYes β€” one part of the repository route
Commits on the default branch5849GitHub repositoryNo
Repository's main crate left out of the entrynonecrates.io database dumpYes
Facts that never count
Facts that never count measurements
SignalValueSourceFetchedCounts
LicenseApache-2.0 OR MITcrates.io database dumpNo
Runs on, from listed crates and their direct dependenciesGPU support unknowncrates.io database dumpNo
What shows each backendno dependency or feature matches a backend rowcrates.io database dumpNo
Native code, from listed crates and their dependenciesBinds native code: aardvark-sys, ring, libsqlite3-sys, tree-sitter, tree-sitter-language and 3 morecrates.io database dumpNo
Python bindings, from direct dependencies of listed cratesNo Python binding crate foundcrates.io database dumpNo
Crates that depend on a listed crate directlyNot measuredNo

Corrections and review history

Report a correction

No correction applies to this entry.

Judgments

A judgment enters only through an approved issue and a merged pull request.

No judgment applies to this entry.