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
- 49.3k stars
- 8.7k forks
- 870 open issues
- Language: Python
- License: MIT
- updated
Install
git clone https://github.com/HKUDS/nanobot && cp nanobot/*.md ~/.claude/agents/- Clone the repository and copy the agent .md definitions into ~/.claude/agents (or .claude/agents inside a project).
- Start a new Claude Code session to load the agents.
- Delegate work to them with the Task/Agent tool or by name.
Editor's note
Nanobot is a Python-based open-source AI agent framework that connects Claude (alongside OpenAI, Gemini, and other providers) to a broad set of tools and communication channels through a minimal, readable core. Users install it via pip, interact through a bundled browser-based WebUI or the CLI, and can route conversations through Telegram, Discord, WeChat, Slack, Signal, or email using a unified channel configuration. It integrates with Claude via the Anthropic API and supports MCP extensions, allowing agents to call external tools and CLI apps through a shared extension registry. Key features include persistent memory, project workspaces, model fallback routing, web search via Kagi, image generation, document extraction, and a `/goal` command introduced in v0.2.0 that maintains a sustained objective across multiple conversation turns. The v0.2.1 Workbench release added live file-edit activity tracking and clearer thought-and-response timelines in the WebUI. Developers building multi-step Claude-powered workflows and non-technical users wanting a self-hosted agent without cloud lock-in are the primary audience.
12 items in this repository
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Sustained objectives via long_task / complete_goal — idempotent goal wording, project-style modular work, early web/doc research, Runtime Context metadata.
Search conversation history and understand Dream-managed profile and memory files.
Inspect and optionally adjust the agent's runtime state. Use to check the current model or preset, context window and runtime limits, workspace and tool configuration, subagent status, and request routing metadata such as channel, chat ID, and sender ID; diagnose unavailable capabilities; change allowed runtime settings; or store temporary session scratchpad values.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
One-time setup wizard for the nanobot upgrade skill. Triggers: setup update, configure update, 设置更新, 初始化更新.
Subagents overview
English | 简体中文 | 繁體中文 | Español | Français | Bahasa Indonesia | 日本語 | 한국어 | Русский | Tiếng Việt Discord · X · WeChat / Feishu
nanobot
🐈 nanobot is an ultra-lightweight, open-source, self-hosted personal AI agent framework written in Python. Use it in a browser, terminal, or chat app to work with files, remember preferences, and schedule tasks. Connect a supported model provider or local model server to supply the AI.
Start Here
| You want to... | Go to |
|---|---|
| Install nanobot with no terminal/config background | Start Without Technical Background |
| Install quickly and get your first reply | Install and Quick Start |
| Open the bundled browser UI | WebUI |
| Connect Telegram, Discord, WeChat, Slack, Email, Mattermost, Linear, or another channel | Chat app guide |
| Configure providers, fallback models, Langfuse, MCP, web tools, or security | Docs and Configuration |
| Develop the browser UI | Install current source, then WebUI development and Contributing |
| Integrate from Python or HTTP | Python SDK or Agent API |
| Understand or extend the internals | Architecture, Contributing, and Provider extensions |
| Deploy to the cloud or keep nanobot running as a service | Deployment |
What can nanobot do?
nanobot can:
run in a browser WebUI or terminal
connect to Telegram, Discord, Slack, WeChat, Email, Mattermost, Linear, and other channels
read PDF, Word (
.docx), Excel (.xlsx), and PowerPoint (.pptx) files with built-in file tools, for tasks such as summarizing reportsuse shell, web search/fetch, MCP integrations, cron, image generation, and multi-agent delegation
keep session history and long-term memory through Dream
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: keep saved conversations, long-term memory, and task results for later work.
Chat-native reach: WebUI, API, Telegram, Feishu, Slack, Discord, Teams, email, Mattermost, and Linear.
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
You need Python 3.11 or newer and access to a supported model provider or local model server. Model fees or local hardware requirements depend on the service you choose; nanobot does not supply a model account.
Choose the stable release for everyday use or current source for development and the latest features. This README describes current source; published documentation covers the released version.
New to terminals or model credentials? Follow Start Without Technical Background. Updating an existing instance? Follow updates and recovery for your installation method, backup steps and restart checks.
| Track | Install with | Update with | What runs |
|---|---|---|---|
| Stable | installer, uv, or pip | managed installer: WebUI update; other installs: original 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 |
Stable release: automatic setup (recommended)
The installer chooses an isolated Python environment and opens setup for you. The two commands below are the same installation method for different operating systems; run only the one for your system.
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | shWindows PowerShell
irm https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.ps1 | iexInstaller details, preview, and script review
The default command installs or upgrades the stable PyPI release. Fresh installations use a dedicated environment under ~/.nanobot/venv. On a fresh local desktop it opens the WebUI for model setup. That gateway keeps running after the browser or terminal closes; use the printed gateway stop command to stop it. SSH, headless, existing-config and older-release installs use terminal setup.
Existing installations keep their package manager, extras and constraints. An active ordinary venv remains an explicit target, not an installer-managed environment. The installer avoids system-wide pip and prints the command to reuse 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-runIf you prefer to inspect the script first, open scripts/install.sh or scripts/install.ps1.
Already use uv or pip? Install the stable package yourself
Use this instead of the recommended installer when you already manage your own Python environment. These commands install the same stable nanobot-ai package; they do not launch setup.
uv: isolated CLI installation
uv tool install nanobot-aipip: activate your virtual environment first
python -m pip install nanobot-aiThen run nanobot webui for browser setup, or nanobot onboard --wizard for terminal-only setup. For the Python SDK, install nanobot-ai in your application's virtual environment so the application can import it; a separate uv tool environment does not make the SDK importable there.
If pip reports externally-managed-environment, use the recommended installer, uv tool install nanobot-ai, pipx install nanobot-ai, or an activated virtual environment. Upgrade with the same method; for uv use uv tool upgrade nanobot-ai, and for pip use python -m pip install -U nanobot-ai.
Current source: development checkout
Install current source with Git and Bun
Clone the repository and install it in editable mode. A source install requires Git and Bun; Bun runs the matching TUI directly from the checkout instead of downloading an older release binary.
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
python -m venv .venvActivate it with source .venv/bin/activate on macOS/Linux or .venv\Scripts\Activate.ps1 in Windows PowerShell, then run:
python -m pip install -e .What people ask about nanobot
What is HKUDS/nanobot?
HKUDS/nanobot is subagents for the Claude AI ecosystem. Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps It has 49.3k GitHub stars and its last recorded update is dated 2026-10-23.
How do I install nanobot?
You can install nanobot by cloning the repository (https://github.com/HKUDS/nanobot) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is HKUDS/nanobot safe to use?
Our security agent has analyzed HKUDS/nanobot and assigned a Trust Score of 97/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains HKUDS/nanobot?
HKUDS/nanobot is maintained by HKUDS. The last recorded GitHub activity is dated 2026-10-23, with 870 open issues.
Are there alternatives to nanobot?
Yes. On ClaudeWave you can browse similar subagents at /categories/agents, sorted by popularity or recent activity.
Maintain this repo? Show its Trust Score in your README
The badge shows this repository's current Trust Score and verdict, and links back to this page. It follows the catalogue data: nobody can buy or edit the score it displays.
[](https://claudewave.com/en/repo/hkuds-nanobot)<a href="https://claudewave.com/en/repo/hkuds-nanobot"><img src="https://claudewave.com/api/badge/hkuds-nanobot" alt="ClaudeWave Trust Score for HKUDS/nanobot" width="320" height="64"></a>