mrkeyoor.com_
Tue 01 Sept 17:45 UTC
Automationevaluationupdated 26 Aug 2026

nanoclaw review

NanoClaw is a self-hosted personal AI assistant that receives messages, runs each agent in a container, remembers conversations, and handles scheduled work. It connects to chat services through installable skills and routes model credentials through a separate vault instead of placing raw keys inside agent containers.

+37stars / 7d
Verdict

Our NanoClaw build finished in 13 seconds, but 95 of 2,044 tests failed after a 762-second run, so the current checkout belongs in a trial environment before it gets access to messages, files, or scheduled jobs. It is a sensible fit for one technical owner who values per-agent containers and is willing to maintain a fork with Claude Code. Choose a workflow system or a packaged assistant if code edits, Docker policy, and chat delivery edge cases are more upkeep than you want.

We ran it

Install✓ · 19s242 packages · 152 MB
Build✓ · 13s
Tests✗ · 762s1949 passed · 95 failed of 2044 (vitest)
Repo875 files~115,729 lines of source · 15 MB · 7 CI workflows

Answers from our run

Does nanoclaw build from source?

Dependencies installed in 19 seconds (242 packages), and the build succeeded in 13 seconds. We cloned commit 6137e0e into a clean Debian container with 3 CPUs and no project-specific setup.

Do nanoclaw's tests pass?

Not all of them: 1949 of 2044 passed and 95 failed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use nanoclaw?

Teams requiring a green test suite before adoption: our run ended with 95 failures out of 2,044 tests, mostly after repeated 5-second timeouts in the log tail.

What are the alternatives to nanoclaw?

OpenClaw, Khoj, n8n. Our NanoClaw build finished in 13 seconds, but 95 of 2,044 tests failed after a 762-second run, so the current checkout belongs in a trial environment before it gets access to messages, files, or scheduled jobs.

Setup3/519-second install, but Docker, credentials, and channels remain
Docs4/5Architecture and migrations are clear; debugging assumes Claude Code
Community5/530,625 stars and active August 2026 issue and pull request traffic
Maturity3/5v2.3.0 is active, but our suite had 95 failures

Who it’s for

Individual developers who want an assistant inside Slack, Telegram, WhatsApp, Discord, or another existing chat surface.
Self-hosters who prefer container boundaries around agents and can audit every mounted directory.
Claude Code users comfortable maintaining a personal fork as part of normal operation.
Builders who need scheduled agents, separate memories, MCP tools, and different model providers per group.

Who it’s NOT for

Teams requiring a green test suite before adoption: our run ended with 95 failures out of 2,044 tests, mostly after repeated 5-second timeouts in the log tail.
Administrators who want a dashboard and stable configuration surface: the README says customization means code changes and debugging is handed to Claude Code.
Hosts that cannot run Docker, Node 22+, pnpm 10+, and Claude Code; those are documented requirements rather than optional extras.
Operators assuming a tool grant stays limited to current agents: open issue 3532 reports that a newly created group can receive a tool that was scoped away from other groups.
Messaging workflows where a duplicate is costly: open issue 2404 documents double delivery when two supported response paths emit the same message.

Setup reality

Our sandbox installed 242 pnpm packages in 19 seconds and used 152 MB, then built successfully in 13 seconds. Tests ran for 762 seconds and failed: 1,949 passed and 95 failed out of 2,044. The log tail repeatedly showed 5,000 ms timeouts, including a scheduling recurrence case, without establishing the cause.

A useful installation also needs Docker, Node 22+, pnpm 10+, a model provider, OneCLI credential storage, and at least one messaging channel. The setup script can install host tools and invokes Claude Code when a step needs diagnosis. Channel and provider skills copy code into your fork.

NanoClaw supports macOS, Linux, and Windows through WSL2, but agents depend on mounted folders and outbound policy being correct. Version 2.3.0 raises the Node requirement and contains several migration notes for customized installs. There is no monitoring or debugging dashboard; the documented path is logs, chat, and Claude Code.

A 152 MB host coordinates isolated agent containers

NanoClaw puts a personal assistant behind the messaging tools people already check. A Node host receives a message, maps the sender and conversation to an agent group, writes work to SQLite, and wakes that group's container. The runner calls a model, uses approved tools, and returns a response through another database. Each group can have its own instructions, memory, workspace mounts, skills, MCP tools, and provider. That is a useful boundary when one assistant handles family chat while another touches source code.

Our checkout contained 875 files and about 115,729 lines of source, much more than the README's informal description of a handful of files. It is still understandable as one host process plus short-lived or persistent agent containers, rather than a cluster of services. The trade is visible: every channel adapter, model route, mount, credential rule, delivery path, and scheduled task becomes part of the installation you operate.

Docker limits file access, while mounts decide the real boundary

The security idea is concrete. Agent commands run inside Linux containers, and only explicitly mounted paths appear inside each workspace. Raw API keys stay in OneCLI's Agent Vault; outbound requests receive credentials at the gateway according to policy and rate limits. Separate agent groups can keep their files and memories apart. This is stronger than asking one large process to respect an internal allowlist.

Isolation still depends on operator choices. NanoClaw's v2.3.0 release added admission checks around container specifications and stopped allowing credential values in container environment variables. Open issue 3532 reports a narrower policy gap: a tool scoped to selected existing agents may be available to a group created later because its new gateway identity has no copied block rules. Review newly created groups, mounts, host patterns, and secret grants before letting them accept messages.

What happened when we ran it

Our sandbox installed 242 pnpm packages in 19 seconds and occupied 152 MB. The build completed successfully in 13 seconds. We ran commit 6137e0e inside an unprivileged Node 22 container with 3 CPUs, 8 GB of RAM, and no secrets. The repository is a workspace monorepo with 7 CI workflow files and no root Dockerfile or tests directory.

The test command failed after 762 seconds. Vitest reported 1,949 passed and 95 failed out of 2,044 tests, spread across 14 failed and 146 passed test files. The log tail repeated Test timed out in 5000ms and named a recurrence test concerning script-failure backoff. It does not show why those cases timed out, so we cannot attribute them to Docker, CPU limits, or a particular dependency. The only safe conclusion is that this checkout did not pass its full suite in our stated sandbox.

Setup installs an operating model, not only dependencies

The quick-start script checks or installs Node, pnpm, and Docker, registers a model credential with OneCLI, builds an agent image, and pairs the first channel. When deterministic setup cannot continue, it invokes Claude Code to diagnose the machine and resume. That can be convenient for an experienced owner who reviews proposed changes. It is a poor control surface for a team that expects a repeatable installer with every decision captured in configuration.

Version 2.3.0 requires Node 22 or newer and carries migration work for customized source, Slack installations, database access, and the container driver boundary. An open macOS report narrows one better-sqlite3 crash to Node releases before 22.14.0 even though the declared floor accepts them. Check the patch version, build the agent image, pair a disposable channel, and test restart behavior before installing a background service on the host.

Code changes replace a conventional settings screen

NanoClaw deliberately asks users to keep a fork. Channels and alternative providers arrive through Claude Code skills that copy selected modules and dependencies into that fork. Behavior changes are also code changes: the README suggests asking Claude Code to alter trigger words, memory, replies, or recurring behavior. This keeps unused adapters out of the running tree and makes the result personal, but it moves configuration into source control and upgrades.

Open issue 3529 shows the maintenance cost. Its reporter says the update skill rejected a locally written channel adapter because no matching skill existed, and overwrote a customized Matrix adapter with the registry copy. The report includes a workaround, not a stable opt-out contract. Anyone adopting the fork model should commit local changes, inspect update diffs, and maintain a small regression set for every channel or provider they alter.

Messaging needs duplicate and failure checks

Chat delivery has more than one route because an agent can emit normal result text or call an MCP message tool. Open issue 2404 says using both for the same content can deliver that message twice. Another open report, issue 3457, describes retries hitting a SQLite unique constraint after a message had already landed. Both have specific proposed fixes, and recent pull requests show maintainers working on delivery behavior. Neither report supports assuming every installed channel is affected in all cases.

GitHub listed 992 open issues and pull requests and 30,625 stars when fetched on August 26, 2026. The repository was pushed the same day, two days after v2.3.0, so this is active software with a fast-moving queue rather than an abandoned experiment. Use an expendable chat first. Send duplicate-sensitive prompts, stop the host mid-turn, restart it, force a provider error, and verify what the recipient sees before assigning a scheduled job that can send mail or change files.

Alternatives

ProjectWhat it isPick it when
OpenClaw gh↗A broader personal assistant that supports many platforms and integrations in one project.pick this instead when built-in breadth matters more than NanoClaw's per-agent container design and fork-based customization.
KhojA self-hostable assistant for documents, web research, custom agents, and scheduled automations.pick this instead when searching personal knowledge and using a supplied application matter more than chat-channel isolation.
n8n gh↗A visual workflow automation system with integrations, code steps, and AI nodes.pick this instead when deterministic workflows, visible execution history, and a graphical editor are more useful than a conversational agent.

What people are saying

  1. [velocity-scout] nanocoai/nanoclaw

Sources

  1. NanoClaw repository and README
  2. NanoClaw v2.3.0 release
  3. Future-agent tool scoping report
  4. Customized adapter update report
  5. Node patch-level SQLite crash report
  6. Double message delivery report
  7. Retried mailbox delivery report

More automation reviews

rclone · lego · OpenCLI · web-access · Karabiner-Elements · WiiUDownloader · the whole board →