Tools / nanobot

nanobot Review

A lightweight self-hosted AI agent with a web UI, terminal, chat-app channels, and a documented security model

Last reviewed: October 2026

TL;DR

nanobot is a small Python agent framework you run yourself, usable from a browser UI, a terminal, or chat apps. It keeps memory in plain files, runs scheduled tasks, and exposes a Python SDK and an OpenAI-compatible API. It is designed to be minimal and readable, and its documentation is candid about what it does not do after a restart and about security defaults: workspace restriction is off by default, and the optional shell sandbox does not restrict network access.

License

MIT

Self-hosted

Yes

Cloud option

None

GitHub stars

49K★

Checked October 2026

Category

AI Assistants & Agents

Pricing

Free and open source; you supply your own model provider or local model

What is nanobot?

nanobot is a self-hosted personal AI agent framework in Python for working with files, keeping memory, and running scheduled tasks. Built-in surfaces are a WebUI and a terminal UI, and chat integrations named in the README include Telegram, Discord, Slack, WeChat, Email, Mattermost, Linear, Feishu, and Teams. It supports OpenAI-compatible APIs, local model servers such as Ollama and vLLM, image generation, web search, and model fallbacks, and you must supply your own model provider since none is bundled. Session history and long-term memory work through a Dream process with /compact, /dream, and /dream-log commands, with memory stored in files such as USER.md and memory/MEMORY.md, and skills provide reusable instructions. A context indicator shows context size, input tokens per round, and cache reuse when the provider reports them. The project's site describes recent releases: v0.2.2 (June 2026) added more durable conversations, broader automation controls, and a Python SDK, v0.3.0 (July 2026) added guided WebUI setup, inline subagents, and model switching within a conversation, and v0.3.5 (September 2026) added a native terminal workbench, side-by-side conversations, and a calendar for automations. OpenAlternative describes controlled token budgets, but the README describes this as visibility rather than a hard budget feature.

Installation & self-hosting

Python 3.11 or newer is required. Options include a recommended stable installer script (install.sh for macOS and Linux, install.ps1 for Windows), uv tool install nanobot-ai or python -m pip install nanobot-ai, and a source checkout in editable mode that also needs Git and Bun. Verify with nanobot --version and start the browser UI with nanobot webui. Configuration lives in ~/.nanobot/config.json (keys are camelCase, and nanobot onboard --refresh adds missing defaults without overwriting yours), and any string value can reference an environment variable as ${VAR_NAME}, resolved at startup and never written back to disk. The docs list dozens of built-in providers plus custom OpenAI-compatible endpoints, named model presets switchable with /model, and ordered fallbackModels that cover timeouts, 5xx errors, 429s, overloads, auth failures, and quota exhaustion but not malformed requests, content filtering, or context-length errors. Web search defaults to duckduckgo, and web fetch uses Jina Reader by default (set tools.web.fetch.useJinaReader to false to keep fetched URLs local). MCP servers are defined under tools.mcpServers with a 30-second default tool timeout and optional OAuth, and Langfuse tracing is enabled with nanobot plugins enable langfuse.

User experience

You chat with the agent in the WebUI, terminal, or an enabled chat app and keep its memory in readable files you can edit. The security notes are practical: WebUI access grants administration of the instance so share it only with trusted operators, keep the listener on localhost and use an SSH tunnel for remote use, and check each chat platform's DM pairing, allowlist (allowFrom), and group-access policies separately. The configuration defaults to know: tools.restrictToWorkspace is false, shell execution is enabled with a 60-second timeout, the optional exec sandbox uses bwrap on Linux or seatbelt on macOS and neither restricts network access, and tools.maxSessionMessagesPerMinute defaults to 6. This section reflects the README and configuration docs; we did not run nanobot.

Key features

  • WebUI, terminal UI, and chat channels including Telegram, Discord, Slack, and Teams
  • File-based memory with a Dream process and /compact, /dream, and /dream-log commands
  • Reusable skills, scheduled tasks, and inline subagents
  • OpenAI-compatible providers, local servers such as Ollama and vLLM, model presets, and ordered fallbacks
  • Python SDK and an OpenAI-compatible API
  • Environment-variable secrets, MCP servers, and an optional Langfuse plugin
  • Context indicator for tokens and cache reuse

What nanobot does well

  • Small and readable, so developers can understand and extend it
  • Plain-file memory you can inspect and edit, and secrets referenced from the environment instead of stored in config
  • MIT license and a strong following, with about 49,000 stars
  • Honest documentation of its failure modes and security considerations

Where nanobot falls short

  • Background mode does not survive a reboot or crash unless you run it as an OS-managed service
  • Missed scheduled times are not replayed after a gateway restart, and interrupted subagent tasks are not automatically relaunched
  • Recovery after a restart does not replay uncertain tool actions
  • Workspace restriction is off by default, and the shell sandbox does not limit network access
  • You must bring your own model account or local model, and the token-budget claim on aggregator pages is not backed by a hard budget feature in the README

Pricing

nanobot is free under the MIT license. Costs are the model provider you connect, or none with local models, and any hosting; the README notes that Render's persistent storage requires a paid plan.

nanobot vs Manus

Manus is a hosted general-purpose agent that carries out tasks autonomously, and Zo Computer and OpenAI Dots are other hosted agent products. nanobot gives you a comparable personal agent you host and can read end to end, with a deliberately small core. Compared with OpenClaw and Hermes Agent, it is lighter and simpler, with fewer channels and integrations and a smaller feature set, but a clearly documented configuration and security surface.

See all Manus alternatives

Best for

  • Developers who want a small, hackable agent they fully understand
  • People who want an agent reachable in chat apps with file-based memory
  • Self-hosters who want an OpenAI-compatible API in front of their agent

Not ideal for

  • Users who need a durable, restart-safe automation engine out of the box
  • Teams that want a managed product with support
  • Anyone who wants a large catalog of integrations and polished apps

Alternatives

Final verdict

nanobot is a good pick if you want a small, understandable personal agent. Turn on workspace restriction and an exec sandbox, run it as a managed service if scheduled jobs matter, and keep its web UI off the public internet.

Sources