nanobot is a free, open source ai interaction & interfaces project written in Python and released under MIT. It has 48,274 GitHub stars, 8,533 forks and 775 open issues, and was last pushed 6 hours ago. On this registry it ranks #7 of 76 tracked projects in AI Interaction & Interfaces, with 5 head-to-head comparisons available. It gained 85 stars over the last 3 tracked days.

What is nanobot?

nanobot is an ultra-lightweight, open-source, self-hosted personal AI agent framework written in Python, aimed at individual developers and small teams who want to run their own agent through a browser WebUI, a terminal, or chat apps instead of renting a hosted assistant.

What it is

nanobot is a self-hosted personal AI agent runtime distributed as the nanobot-ai package under the MIT licence. It combines tools, long-term memory, MCP (Model Context Protocol) integrations, model routing, multi-agent delegation, scheduled automation, and an OpenAI-compatible API inside a small, readable core. The same agent can run in a browser WebUI, in a terminal TUI, or through chat apps, and the project also exposes a Python SDK so other software can drive it. It sits in the Python AI-agent ecosystem and ships with deployment guidance for keeping an agent running as a long-lived local or server-side gateway.

The concrete problem it solves is the pile of ad-hoc scripts and single-surface chatbots that people otherwise assemble to give a language model access to files, a shell, the web, and messaging. Rather than a provider-locked chat window, nanobot is the runtime around the model: persistent workflows keep goals, memory, tools, and chat context alive across long-running work, session history and long-term memory are kept through Dream, and the same agent is reachable from a WebUI, the terminal, an API, or a chat service. It replaces the glue code an operator would write to bridge an LLM to tools, schedules, and chat channels, while keeping the internals inspectable and customizable.

Key capabilities

  • Runs the same core in a browser WebUI, a terminal, or chat apps; nanobot webui starts the bundled browser UI.
  • Provides tools for files, shell access, web search, web fetch, MCP, cron, image generation, and subagents.
  • Keeps session history and long-term memory through Dream, so context survives long-horizon goals and scheduled automations.
  • Supports multi-agent delegation, letting an agent hand work to subagents.
  • Connects to Telegram, Discord, Slack, WeChat, Feishu, Teams, Email, Mattermost, and other chat apps.
  • Offers model freedom through OpenAI-compatible APIs, local LLMs, model routing, and fallback models, with Langfuse available in configuration.
  • Exposes a Python SDK and an OpenAI-compatible API for integration into other systems.

Who uses it and how

  • An individual developer on a local desktop runs the one-command installer, which starts nanobot webui and lets the first provider and model be set in Settings → Models.
  • Operators who want a long-running agent gateway deploy nanobot as a local or server-side service, following the project's deployment documentation.
  • Chatops and community teams wire the agent into Telegram, Discord, Slack, WeChat, Feishu, Mattermost, or email so users reach it where they already talk.
  • Automation-minded users schedule recurring work with the built-in cron tool and run long-horizon goals that persist across sessions.
  • Integrators embed the agent through the Python SDK or the OpenAI-compatible API rather than through a chat client.
  • Users with no terminal or configuration background start from the guided zero-background walkthrough instead of the compact README path.

Getting started

Install with the one-command setup scripts (curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh on macOS and Linux, or the PowerShell equivalent on Windows), which install or upgrade nanobot-ai from PyPI; uv, pip, and pipx are supported alternatives, and editable Git checkouts are used for the newest source features. Python 3.11 or newer is required, while Git and Bun are needed only for a source install.

How it compares

No paid products or comparable alternatives are named in the facts provided for this entry, so nanobot stands alone in this registry. Any comparison against hosted agent platforms would have to rest on its MIT licence, self-hosted operation, and the operator's ownership of the stack rather than on documented feature-by-feature differences.

When to use it — and when not to

Choose nanobot when you want to own the runtime and are willing to run a Python 3.11+ environment, configure providers and API keys, and manage model routing yourself, since published packages also fetch a version-matched TUI archive on first use. Do not pick it if you want a fully managed hosted service with no operational work, or if you need a large enterprise platform around the agent. Note also the project's 775 open issues, and that the source track is described as the newest and most experimental path — install from PyPI or uv if day-to-day stability matters more.

project readme (upstream, from github) — read inline

English | 简体中文 | 繁體中文 | Español | Français | Bahasa Indonesia | 日本語 | 한국어 | Русский | Tiếng Việt

GitHub stars PyPI version PyPI downloads Test Suite Python 3.11 or newer MIT License nanobot documentation

Discord · X · WeChat / Feishu

nanobot

🐈 nanobot is an ultra-lightweight, open-source, self-hosted personal AI agent framework written in Python. It runs in a WebUI, terminal, or chat apps and combines tools, long-term memory, MCP integrations, model routing, multi-agent delegation, scheduled automation, and an OpenAI-compatible API in a small, readable core.

Start Here

You want to... Go to
Install nanobot with no terminal/config background Start Without Technical Background
Install quickly and get one CLI reply Install and Quick Start
Open the bundled browser UI WebUI
Connect Telegram, Discord, WeChat, Slack, Email, Mattermost, or another chat app Chat Apps
Configure providers, fallback models, Langfuse, MCP, web tools, or security Docs and Configuration
Understand or extend the internals Architecture and Development
Deploy to the cloud or keep nanobot running as a service Deployment

What can nanobot do?

nanobot is a self-hosted personal AI agent runtime. It can:

  • run in a browser WebUI or terminal
  • connect to Telegram, Discord, Slack, WeChat, Email, Mattermost, and other chat apps
  • use tools such as files, shell, web search, web fetch, MCP, cron, image generation, and subagents
  • keep session history and long-term memory through Dream
  • run long-horizon goals and scheduled automations
  • expose a Python SDK and OpenAI-compatible API for integrations
  • deploy as a long-running local or server-side agent gateway

💡 Why nanobot

  • Persistent workflows: goals, memory, tools, and chat context survive long-running work.
  • Chat-native reach: WebUI, API, Telegram, Feishu, Slack, Discord, Teams, email, and Mattermost.
  • Model freedom: OpenAI-compatible APIs, local LLMs, image generation, search, and fallbacks.
  • Small core: readable internals with MCP, memory, deployment, and automation built in.
  • Own your stack: inspect, customize, self-host, and extend without a giant platform.

📦 Install

[!IMPORTANT] If you want the newest features and experiments, install from source.

If you want the most stable day-to-day experience, install from PyPI or with uv.

Pick one install method:

Track Install with Update with What runs
Stable installer, uv, or pip the same package tool one released Python/WebUI/TUI version
Current source editable Git checkout git pull --ff-only + editable dependency sync Python, WebUI, and TUI from that checkout

Prerequisites: Python 3.11 or newer. Git and Bun are only needed for a source install. Published packages include the WebUI and fetch a checksummed, version-matched TUI archive—with its licenses, notices, corresponding application source, source offer, and relinking instructions—on first use.

If terminals, API keys, or config files are new to you, use the guided zero-background walkthrough in Start Without Technical Background instead of this compact README path.

One-command setup

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh

Windows PowerShell:

irm https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.ps1 | iex

The default command installs or upgrades nanobot-ai from PyPI. On a fresh local desktop, it then starts nanobot webui so you can configure the first provider and model in Settings → Models. SSH, headless, existing-config, and older-release paths keep the terminal setup wizard. The installer avoids system-wide pip installs by using an active virtual environment, uv, pipx, or a managed venv under ~/.nanobot/venv. It also prints the exact command it used to run nanobot; reuse that full command below if nanobot is not on PATH.

To preview the plan without changing your environment, pass --dry-run.

curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh -s -- --dry-run
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.ps1))) --dry-run

If you prefer to inspect the script first, open scripts/install.sh or scripts/install.ps1.

Install with uv

uv tool install nanobot-ai

Install from PyPI with pip

python -m pip install nanobot-ai

If pip reports externally-managed-environment on macOS or Linux, use the one-command installer, uv tool install nanobot-ai, pipx install nanobot-ai, or install inside a virtual environment.

Install from source

Clone the repository and install it in editable mode. Bun is required because the source checkout runs the matching TUI directly instead of downloading an older release binary.

git clone https://github.com/HKUDS/nanobot.git
cd nanobot
python -m venv .venv

Activate it with source .venv/bin/activate on macOS/Linux or .venv\Scripts\Activate.ps1 in Windows PowerShell, then run:

python -m pip install -e .

After that, the normal commands are identical to a stable install. nanobot runs the TUI from this checkout, and nanobot webui rebuilds stale frontend assets automatically. A later git pull --ff-only updates the Python, TUI, and WebUI source together; rerun python -m pip install -e . when Python dependencies change. Contributors should also read CONTRIBUTING.md.

Verify the install:

nanobot --version

If nanobot is not on PATH, invoke it through the method that installed it: reuse the recommended installer's command, use uv tool run --from nanobot-ai nanobot ... or pipx run --spec nanobot-ai nanobot ..., or use the Python executable from the environment where pip installed the package.

🚀 Quick Start

Open nanobot in your browser

nanobot webui

This is the recommended first run. The launcher creates the config and workspace when needed, safely enables the local WebSocket channel after confirmation, starts or joins the shared local gateway, and opens http://127.0.0.1:8765. A fresh install can open before a model is configured, so setup continues in the browser instead of beginning in a JSON file. The first-run We

readme truncated — read the full docs on github

Frequently asked questions

Is nanobot free to use?

nanobot is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does nanobot do?

Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat ap

What is nanobot written in?

nanobot is primarily written in Python. Its source is publicly available at https://github.com/HKUDS/nanobot, and it has 48,274 GitHub stars.