mrkeyoor.com_
Wed 16 Sept 23:55 UTC
AI Toolsevaluationupdated 25 Aug 2026

nanobot review

Nanobot is a self-hosted personal AI agent that runs through a browser, terminal, API, or chat app. It gives one model access to files, shell commands, web tools, memory, MCP servers, scheduled jobs, and helper agents, so a developer can operate an assistant on their own machine or server.

+295stars / 7d
Verdict

Our sandbox installed Nanobot in 45 seconds and built it in 9, but 195 tests failed and pip-audit found 42 known vulnerabilities, so we would not deploy commit 3852956 without investigation. It is still a strong trial for experienced self-hosters who want one agent across a browser, terminal, API, and chat services. Start with the released package, restrict its tools and workspace, and prove your chosen channels against a pinned version before leaving the gateway unattended.

We ran it

Lab card: what happened when we ran nanobotScreenshot of nanobot (nanobot.wiki)
Install✓ · 45s113 packages · 174 MB
Build✓ · 9s
Tests✗ · 167s316 passed · 195 failed · 16 skipped · 5 errors of 516 (pytest)
Known vulns42(pip-audit)
Repo1314 files~366,963 lines of source · 16.8 MB · 2 CI workflows · Dockerfile · tests dir

Answers from our run

Does nanobot build from source?

Dependencies installed in 45 seconds (113 packages), and the build succeeded in 9 seconds. We cloned commit 3852956 into a clean Debian container with 3 CPUs and no project-specific setup.

Do nanobot's tests pass?

Not all of them: 316 of 516 passed and 195 failed when we ran the project's own test command (pytest), with 5 collection errors. Some failures need services or credentials a bare container does not have.

Does nanobot have known vulnerabilities in its dependencies?

pip-audit flagged 42 known advisories in the dependency tree at the time of our run.

Who should not use nanobot?

Teams that require a clean source test run before evaluation: at commit 3852956, our sandbox recorded 195 failed tests, 5 collection or setup errors, and 42 known vulnerabilities.

What are the alternatives to nanobot?

OpenClaw, Leon, Dify. Our sandbox installed Nanobot in 45 seconds and built it in 9, but 195 tests failed and pip-audit found 42 known vulnerabilities, so we would not deploy commit 3852956 without investigation.

Setup3/5Fast install and build, followed by provider setup and failed tests
Docs5/5Detailed paths for first run, providers, channels, security, and deploys
Community5/5Frequent pushes and active issue and pull-request traffic
Maturity2/5Wide feature set, but our source snapshot failed 195 tests

Discussed on

  1. hnNanobot: Ultra-Lightweight Alternative to OpenClaw257 points
  2. hnNanobot: Ultra-Lightweight Personal AI Assistant3 points

Who it’s for

Developers who want one personal agent across a WebUI, terminal, API, and existing chat accounts.
Self-hosters willing to configure model providers, tool permissions, tokens, and a persistent gateway.
Python teams that want to inspect or extend the agent loop instead of adopting a closed hosted assistant.
Operators who need MCP, scheduled automations, session memory, and model routing in the same service.

Who it’s NOT for

Teams that require a clean source test run before evaluation: at commit 3852956, our sandbox recorded 195 failed tests, 5 collection or setup errors, and 42 known vulnerabilities.
Buyers expecting a tiny dependency footprint because the project calls its core lightweight: our install pulled 113 packages and occupied 174 MB.
Users who want a useful assistant without supplying a model endpoint or credential: the first-run guide requires choosing a provider, credential, and model before a normal reply can work.
Operators seeking a slow-moving appliance: GitHub reported 739 combined issues and PRs, while open reports on 2026-08-25 covered an auto-compaction NameError and Telegram rich-message behavior.

Setup reality

Our sandbox installed commit 3852956 in 45 seconds, pulling 113 packages and using 174 MB. The build completed in 9 seconds. Tests failed: 316 passed, 195 failed, 16 skipped, and 5 collection or setup errors before pytest stopped after 200 failures. Pip-audit reported 42 known vulnerabilities.

A working assistant still needs a configured model provider, credential, and model. Chat channels need their own tokens or account setup, while search, image generation, MCP servers, and observability add separate services or credentials when enabled. The WebUI starts on localhost, and remote exposure requires a web or API token.

Python 3.11 or newer is the base requirement. A source install also needs Git and Bun; the packaged route fetches a checksummed TUI archive on first use. Long-running channels and automations require the background gateway or an operating-system service. Docker, Compose, Render, Linux service, and macOS LaunchAgent paths exist, but each moves persistence and secret handling into the operator's job.

Nanobot v0.3.0 runs a full personal-agent gateway

Nanobot v0.3.0 is built for an assistant that stays around. One gateway serves a browser workbench, terminal client, OpenAI-compatible API, and chat channels. The agent can use files, shell commands, web search, MCP servers, scheduled automations, memory, and helper agents. That range makes sense for a technical user who wants the same sessions and tools available at a desk and inside messaging apps. It also gives the process meaningful access to the host, so workspace and execution controls deserve setup time.

The word lightweight describes the agent core better than the whole checkout. We measured 1,314 files and about 366,963 lines of source at commit 3852956, with a 16.8 MB checkout. The repository includes the Python runtime, bundled WebUI, native terminal client integration, numerous channels, deployment files, and extensive documentation. There is plenty here to inspect, yet this is no pocket script. A team adopting it becomes responsible for a broad application with several user interfaces and many external connections.

What happened when we ran it

Our sandbox installed Nanobot in 45 seconds. The process pulled 113 packages and occupied 174 MB on disk, then the build completed in 9 seconds. Those results support the README's claim that a developer can get the code installed without assembling a large cluster or a GPU stack. The measured environment was a fresh Debian container with 3 CPUs and 8 GB of RAM, running Python 3.12 without secrets or privileged container access.

The test result changes the recommendation. Pytest reported 316 passed, 195 failed, 16 skipped, and 5 collection or setup errors before stopping after 200 failures. The log tail names errors in QQ reconnect backoff, API attachments, API streaming, the OpenAI API, and the NapCat channel; it does not establish why they failed. We will not guess. Pip-audit also reported 42 known vulnerabilities, which calls for dependency triage before this snapshot handles credentials, files, or shell access.

Python 3.11 gets the UI open, then provider setup begins

Python 3.11 or newer is the published baseline. The stable routes are an installer, uv, or pip, and the README sends a new desktop user directly to nanobot webui. The browser opens on localhost and walks through choosing a model provider, credential, and model. Source users add Git and Bun because the checkout runs matching frontend and terminal code. The packaged route includes the WebUI and downloads a checksummed terminal archive on its first use.

Installation therefore covers only the local program. Our 113-package, 174 MB result did not include a model account, chat tokens, search credentials, or production persistence. A useful first reply requires a provider configuration, even if the endpoint is a local Ollama or vLLM server. Telegram, Discord, Slack, email, Mattermost, WeChat, and other channel choices each bring their own setup. Keeping any of them online after the terminal closes means running the gateway in background mode or under a service manager.

Chat integration is Nanobot's clearest reason to choose it

Release v0.3.0 treats the WebUI as the front door, while the same gateway carries conversations into chat services and terminal sessions. Saved topics, temporary chats, model switching, workspace selection, tool activity, diffs, and generated artifacts are visible in the browser. Long-running work is explicit through goals, and scheduled automations can keep operating through a persistent gateway. This is a coherent product shape for one technical user who moves between devices and does not want separate assistants in every interface.

That surface area is still moving. The 195 failed tests in our run included channel and API areas, and an open Telegram report dated 2026-08-25 says rich messages do not render when default streaming is enabled. Another report against v0.3.0 shows auto-compaction raising a NameError for a missing import. Neither report proves the whole feature is broken, but both identify paths that matter during long conversations. Test the exact model, channel, and background mode you intend to use.

The 2026-08-25 activity shows speed and churn

GitHub showed 739 open issues and PRs combined, split into 206 issues and 533 pull requests when we checked. The repository's last push was 2026-08-25, and several pull requests were merged or updated that same day. The latest release, v0.3.0, arrived on 2026-07-25. This is active maintenance rather than an abandoned tag, though the queue and daily changes make version pinning sensible for an always-on service. Read release upgrade notes before moving production channels forward.

The repository also has 2 CI workflow files, a Dockerfile, a Compose file, and a tests directory. That is useful operational evidence, but our 195 failures show that having test infrastructure does not guarantee a clean result in a fresh container. The documentation is unusually thorough: separate guides cover providers, configuration, architecture, security, troubleshooting, chat apps, automations, the API, SDK, and deployments. Docs score well because they expose the work, even when the measured snapshot raises hard questions.

The 174 MB install suits a careful self-hoster

Nanobot is easiest to recommend as a controlled trial for an experienced self-hoster. The WebUI and package installer reduce initial friction, while the shared gateway solves a real problem for people who want one assistant across local tools and chat accounts. Use the stable package path, bind the first setup to localhost, give it a narrow workspace, and enable channels one at a time. A remote WebUI or API should have its required token before it leaves loopback.

Our 3-CPU, 8 GB sandbox proved that installation and build can finish quickly, then exposed 195 failed tests and 42 known vulnerabilities at commit 3852956. That combination is the buying decision. Nanobot has enough product depth and documentation to merit evaluation, but this measured snapshot does not earn unattended access to a production host. Pin a version, audit the reported dependencies, rerun the relevant tests in your target environment, and verify recovery behavior before trusting persistent goals or scheduled work.

Alternatives

ProjectWhat it isPick it when
OpenClaw gh↗A personal AI assistant designed to run across operating systems and messaging platforms.pick this instead when cross-platform personal-assistant use matters more than working inside a Python-first codebase.
LeonA self-hosted personal assistant with its own skills and user-facing experience.pick this instead when you want a conventional personal assistant and do not need Nanobot's agent gateway and MCP scope.
Dify gh↗A collaborative platform for agent workflows, retrieval pipelines, and self-hosted AI applications.pick this instead when a team needs a visual application platform and shared workflow management rather than one personal agent.

Sources

  1. Nanobot repository and README
  2. Nanobot v0.3.0 release notes
  3. Nanobot auto-compaction missing import report
  4. Nanobot Telegram rich-message streaming report
  5. MrKeyoor lab testing methodology

More ai tools reviews

eve · MemOS · LongCat-Video · Concat · DLSS5-Feeder · Concat · the whole board →