HKUDS/nanobot
nanobot
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
GitHub metrics
- Stars
- 49K
- +229 this week
- Forks
- 8.6K
- 30-day growth
- —
- Open issues
- 215
| Day | GitHub stars |
|---|---|
| 2026-10-04 | 48762 |
| 2026-10-10 | 48920 |
| 2026-10-13 | 48991 |
What it does
nanobot is a self-hosted personal AI agent framework in Python from HKUDS. You run it on your own computer or server and talk to it through a browser WebUI, the terminal, or chat apps such as Telegram, Discord, Slack, WeChat, email and Mattermost.
The agent can read and write files, run shell commands, search and fetch web pages, call MCP servers, schedule jobs with cron, generate images and hand work to subagents. Session history and long-term memory are handled by a component the project calls Dream. Models come from OpenAI-compatible APIs or local servers such as Ollama and vLLM, with fallback models configurable. nanobot can also expose its own OpenAI-compatible API, and it has a Python SDK for integrations.
The stable track is the nanobot-ai package on PyPI, installed with a one-line script, uv or pip; the latest release is v0.3.5. Newer and experimental features land on the main branch first and need a source install. Documentation is at nanobot.wiki in ten languages.
Why it matters
nanobot is for people who want an always-on assistant they control. It runs on hardware you choose, reaches you through chat apps you already use, and works with hosted or local models. The authors keep the core small and readable, which helps if you plan to inspect the code or extend it. Deployment guides cover Docker, Linux services and macOS LaunchAgent.
Main features
- Browser WebUI, terminal UI and chat app channels
- Tools for files, shell, web search and fetch, MCP, cron and image generation
- Subagent delegation and long-horizon goals
- Long-term memory through the Dream component
- OpenAI-compatible providers, local models and fallback models
- OpenAI-compatible API and Python SDK for integrations
- Deployment as a long-running local or server-side gateway
Who it's for
- Developers who want a personal agent running on their own machine or server
- People who want to reach an assistant from Telegram, Discord, Slack, WeChat or email
- Builders who need an agent backend with an OpenAI-compatible API or Python SDK
- Users of local models through Ollama or vLLM
Strengths
- Fully self-hosted under the MIT licence
- Many chat channels plus a WebUI and terminal from one agent
- Works with hosted and local models, with fallbacks
- Guided setup for readers new to terminals and API keys
Limitations
- The README says the newest features require a source install, while PyPI releases trade those for stability
- Only two releases in the last 90 days, so the stable package can lag the main branch
- You supply and configure model providers and keys yourself
- Exposing the WebUI beyond localhost or deploying to the cloud needs extra setup
Getting started
The install script sets up nanobot-ai from PyPI in a virtual environment and, on a desktop, opens the WebUI to configure a model. Pass --dry-run to see the plan first, or install with uv.
curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh
curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh -s -- --dry-run
uv tool install nanobot-ai
Requirements: Python 3.11 or newer; Git and Bun only for a source install; an API key for a model provider or a local model server.
Always follow the official instructions in the README on GitHub. This overview is our summary, not a copy.
Sources
- HKUDS/nanobotRepositoryPrimarygithub.com
- nanobot - Ultra-Lightweight Open-Source AI AgentOfficial sitePrimarynanobot.wiki