Skip to content
Agents for Humanity
Public draft. All results are preliminary desk assessments against criteria v1.0, updated 27 Sept 2026. No agent has been certified yet. How we assess
Open sourceself-hostedMIT OR Apache-2.0

ZeroClaw

ZeroClaw Labs · github.com/zeroclaw-labs/zeroclaw

ZeroClaw is a fully self-hosted, open-source runtime with no vendor service, no telemetry, local-model support, owner-held encrypted secrets and strong runtime-enforced controls (autonomy levels, approvals, allowlists, OS sandboxes, emergency stop). Its main gaps are auditability and verifiability: the action record is best-effort and edits to it are not detectable, contacts can recognize the agent and its messages only through third-party channel accounts, and builds are not shown to be reproducible.

Strengths
  • Single self-hosted binary; no vendor service or telemetry
  • Local models via Ollama and any OpenAI-compatible endpoint
  • Open state formats: TOML, SQLite, JSONL, markdown
  • Runtime-enforced autonomy levels, approval gates, allowlists and OS sandboxes
  • Graded emergency stop
  • Owner-held encrypted secret store
  • Whole-install backup plus timestamped backups with SHA-256 manifests
Gaps
  • Action record is best-effort; actions proceed when it cannot be written
  • Edits to the action record are not detectable; the hash chain covers only certificate events
  • Agent identity and messages verifiable only through third-party channel accounts
  • Per-agent export bundle omits memory, cron jobs and channels
  • Reproducible builds not claimed or verified
Evidence

All 34 findings

v0.8.5, master branch at commit 24e7324 (2026-09-27); source code and in-repo docs reviewed.

Portable · Can you leave, and take the whole agent with you?

83%
  • P1
    Round-trip portability

    Not restorable in one action: the `agents export` bundle omits memory, cron jobs and channels, and the complete whole-install copy must be made by hand; `zeroclaw agents import` is not implemented, so restoring means merging config.toml and copying directories into place.

    Partial
  • P2
    Complete export

    The documented whole-install backup (config.toml, `.secret_key`, memory, sessions, cron, SOP runs and other state) contains everything that defines the agent. The per-agent `agents export` bundle deliberately omits memory, cron jobs, channels and secrets.

    Pass
  • P3
    Independent execution

    ZeroClaw is a single self-hosted Rust binary under MIT OR Apache-2.0 with no hosted service, and it runs against local models via Ollama or OpenAI-compatible endpoints.

    Pass
  • P4
    Identity continuity

    The agent has no identity of its own that contacts can verify: after migration they recognize it only through the channel accounts and A2A pairing tokens whose credentials travel with the install, relying on each platform. The daemon's Ed25519 key authenticates it to relays and the owner's own clients, not to counterparties.

    Partial
  • P5
    No kill switch

    Docs state there is no telemetry, cloud tenancy or license server, and no license check or remote kill flag was found in the code.

    Pass
  • P6
    Capability independence

    Tools, channels, memory, cron and SOPs are executed by the runtime, and a text tool-call parser lets models without native tool calling use them. Swapping to another provider, including local Ollama, keeps the capability set.

    Pass

Transparent · Can you see everything the agent is, with ordinary tools?

83%
  • T1
    Open storage format

    State is kept in TOML config, SQLite databases (sessions, memory, cron), JSONL logs and markdown files. Secrets and plugin state are encrypted with a local, owner-held key.

    Pass
  • T2
    No hidden instructions

    Runtime-added prompt sections (e.g. Safety, Tool Honesty, tool list, runtime info) are defined in open source code, and full LLM request payloads can be logged via `log_llm_request_payload` (off by default).

    Pass
  • T3
    No shadow memory

    There is no hosted service, account system or telemetry, so the vendor holds no data about the owner. Only the owner-chosen model provider receives content.

    Pass
  • T4
    Complete action history

    Tool calls and messages are kept locally in sessions.db and leave with the install directory. The runtime trace is a rolling 200-event file and the docs describe persistence as best-effort, so the history is not guaranteed to be complete.

    Partial
  • T5
    Readable logic

    Skills are human-readable markdown and scripts, and the runtime itself is open source. WASM plugins are loaded as compiled binaries, so their logic is not necessarily stored as readable source.

    Partial
  • T6
    No third-party influence channel

    No advertising or sponsored channel exists. Server-supplied MCP `pinned_resources` that enter the system prompt are owner-configured and flagged as a risk on export.

    Pass

Auditable · Can you reconstruct exactly what the agent did?

40%
  • A1
    No unrecorded actions

    Actions are not guaranteed a durable record: session-persistence failures are logged and the turn continues, and the runtime trace is best-effort. The config docs state that no production path records command execution in the audit log.

    Fail
  • A2
    Tamper evidence

    Edits to or deletions from sessions.db or the runtime trace are not detectable. A SHA-256 hash-chained audit file exists but records only certificate events, and tool receipts use ephemeral keys and are not persisted.

    Fail
  • A3
    Separation from the audited

    Under the default supervised profile the agent's tools are confined to its workspace, outside the install `data/` directory that holds sessions and logs, so it cannot alter its record. Under `full` autonomy or `unrestricted_filesystem` that confinement is lifted and the record becomes writable.

    Partial
  • A4
    Readable with ordinary tools

    Runtime logs are JSONL and session history is SQLite, both readable with standard tools.

    Pass
  • A5
    Corroborated interactions

    In A2A calls the caller records the peer's task and context ids in its tool result, and the receiving ZeroClaw runs the turn under that context id. The receiving endpoint is stateless with no durable task store, so a matching record on its side is not guaranteed, and exchanges over chat channels have no shared record.

    Partial

Verifiable · Can you prove the agent runs what it claims?

60%
  • V1
    Open, reproducible runtime

    The runtime is open source under OSI-approved MIT OR Apache-2.0, and a Nix flake with a pinned Cargo.lock builds it. Bit-for-bit reproducible builds are not claimed or verified.

    Partial
  • V2
    Active config is inspectable config

    The daemon runs from the canonical `config.toml`; reload re-reads it, and env-var overrides are documented. The config is owner-readable, with secrets encrypted by a local key.

    Pass
  • V3
    Attributable messages

    Messages can be attributed only through the channel accounts and A2A bearer tokens the agent uses, whose credentials travel with the install, so recipients rely on each platform's authentication. Nothing the agent holds lets a recipient verify a message independently of those platforms.

    Partial
  • V4
    Independently checkable record

    The action record (sessions.db and the runtime trace) carries no integrity data, so no tool can check it. The open `verify_chain` code validates only the certificate audit file.

    Fail
  • V5
    Comparable state

    The owner can compare state between two points in time: the backup tool writes timestamped backups with per-file SHA-256 manifests (config, memory, audit and knowledge by default, configurable, optionally on a schedule), and the whole install is documented as open files and SQLite that can be copied and diffed.

    Pass

Modifiable · Can you change anything, without asking?

100%

Controllable · Is your word final?

100%
  • C1
    Communication boundaries

    Channels enforce owner-set `allowed_users` lists, cross-channel sends through `send_via` can target only the originating chat or owner-configured peer groups, and HTTP, fetch and browser access is bounded by runtime domain allow and block lists.

    Pass
  • C2
    Approval gates

    Supervised autonomy (the default) requires runtime-enforced approval for medium-risk actions; `always_ask`, OTP gating and fail-closed approval routing are also available.

    Pass
  • C3
    Immediate halt

    `zeroclaw estop` halts in-flight tool calls at kill-all, network-kill, domain-block or tool-freeze levels, with optional OTP to resume.

    Pass
  • C4
    Data sovereignty

    No telemetry is sent; OpenTelemetry export is opt-in to an owner-set endpoint. The vendor runs no service that could collect or train on data.

    Pass
  • C5
    Credential custody

    Secrets are stored in config.toml, encrypted with ChaCha20-Poly1305 under a local `.secret_key` (or in plaintext by choice), and can be inspected and revoked. Export lists the required secrets for re-entry.

    Pass
  • C6
    Full deletion

    All state lives in the local install directory and can be deleted after `install.sh --uninstall` or `zeroclaw service uninstall`. The vendor retains nothing; third-party model-provider retention is outside the runtime.

    Pass
Something wrong or out of date?

Vendors and the public can dispute any finding with evidence. Disputes and their resolutions are published.

Dispute a finding