Skip to content

Github · GitHub Repository Radar

HKUDS 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

Stars

47,690

Popular Active

Forks

8,418

Watchers: 47,690

Language

Python

License: MIT License

Repository Radar Score

65 / 100

Growth

7d
+0
30d
+0
%
0.0%

Not enough metric snapshots yet to chart growth for this repository.

Score breakdown

  • popularity 87
  • growth 0
  • activity 100
  • freshness 100
  • community 90

Need help integrating this stack?

Our team builds with modern open-source stacks. Tell us what you are shipping.

Get a quote →
nanobot README cover

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 WebUI binds to localhost by default and is not exposed to your LAN.

Your first three steps

  1. Open Settings → Models and choose a provider, credential, and model.
  2. Start a new topic and send Hello! to verify the connection.
  3. Before project work, choose the intended workspace and access mode from the composer.

Any normal reply means the provider, model, workspace, and browser gateway are working together.

Keep nanobot running after you close the terminal

nanobot gateway --background

This is the only command that promotes the shared gateway to persistent background mode. It leaves channels and automations running after every local TUI and WebUI launcher exits. Complete first-time model setup with nanobot webui before switching to background mode; open the same localhost WebUI again afterward.

nanobot gateway status
nanobot gateway logs
nanobot gateway restart
nanobot gateway stop

Prefer a gateway-first workflow?

nanobot gateway

This skips WebUI setup and browser opening, then runs the same complete gateway in the current terminal. It is the familiar entry point if you are coming from OpenClaw or already operate agents as long-lived services. The WebUI remains available when its channel is configured; open it manually when needed.

Use nanobot gateway --background for the same direct entry point without keeping the terminal attached. For automatic startup and supervision by the operating system, see Deployment.

Prefer to work entirely in the terminal?

nanobot

This opens the native terminal client with the launch directory as its workspace. It shares saved conversations and the local gateway with the WebUI. The explicit nanobot agent form remains available for compatibility.

  • Type / to discover commands, /sessions to switch conversations, or @ to mention an app, MCP server, or saved session.
  • Press Enter to send. While nanobot is working, Enter sends now and Tab sends after the current response. Press Shift+Enter to add a newline (Ctrl+J works in terminals that cannot distinguish modified Enter keys).
  • Use /detach to leave the current task running, or start with nanobot gateway --background when nanobot should stay online after all local clients exit.

Each launch starts a new session by default. Use --session to resume one and --workspace to choose another workspace. See the CLI reference for session branching, diffs, history, shortcuts, gateway lifecycle, and compatibility options.

For one request and an immediate exit, use:

nanobot -m "Hello!"

The one-shot form is useful for a quick provider check, shell scripts, and local automation. If you have not configured a model yet, run nanobot webui and open Settings → Models first.

Need manual JSON, another device on your LAN, or help with provider/model matching? Continue with Install and Quick Start, WebUI, or Troubleshooting.

If nanobot worked for you, a star on GitHub is the simplest way to support the project.

☁️ Deploy

Render — one click

Deploy nanobot's gateway and bundled WebUI from the repository's ready-to-use Blueprint:

Deploy to Render

Render will ask for ANTHROPIC_API_KEY and a private NANOBOT_WEB_TOKEN, then provision persistent storage for sessions, memory, and WebUI history. Persistent disks require a paid Render service.

Self-host

Prefer your own infrastructure? Follow the deployment guide for Docker, Docker Compose, Linux services, and macOS LaunchAgent setup.

🌐 WebUI

The WebUI ships inside the published wheel with no separate frontend build. It is the browser workbench for persistent topics, temporary chats, visible agent activity, workspace controls, Apps, Skills, Automations, and settings.

nanobot webui preview

Use it to:

  • keep separate topics for different tasks and projects;
  • use temporary chats when a conversation should not be saved to history or memory;
  • inspect reasoning, tool calls, file edits, diffs, command output, and generated artifacts;
  • switch models and workspaces without leaving the conversation;
  • configure providers and chat channels, connect Apps, discover Skills, and manage Automations from one place.

See the WebUI guide for LAN access, background operation, workspace controls, and the full feature tour. Working on the frontend itself? Use webui/README.md.

🏗️ Architecture

nanobot architecture

🐈 nanobot stays lightweight by centering everything around a small agent loop: messages come in from chat apps, the LLM decides when tools are needed, and memory or skills are pulled in only as context instead of becoming a heavy orchestration layer. That keeps the core path readable and easy to extend, while still letting you add channels, tools, memory, and deployment options without turning the system into a monolith.

📚 Docs

Browse the repo docs for the latest features and GitHub development version, or visit nanobot.wiki for the stable release documentation.

Releases

Latest release: v0.3.0 - The Agency Release

The Agency Release turns nanobot from a durable workbench into an agent runtime that can coordinate helpers, switch models per session, and carry authorized work through to completion.

  • Consult inline subagents without leaving the current task
  • Switch model presets per session directly from the composer
  • Start from a guided WebUI setup with clearer execution controls
  • Apply configuration changes live across a more reliable provider, channel, and tool runtime

Read the v0.3.0 release notes

Recent Updates

  • 2026-07-24 Guided first-run setup, inline subagents, and model switching from the composer.
  • 2026-07-23 Grok OAuth with hosted X Search, live image settings, and clearer fallback models.
  • 2026-07-22 Parallel Search, live configuration reloads, richer app discovery, and a smoother mobile WebUI.
  • 2026-07-21 Codex fast mode, visible skill references, safer configuration saves, and sturdier task cleanup.
  • 2026-07-20 Cleaner code blocks and copy actions, self-contained channels, and steadier QQ reconnects.

For older updates, see the release archive or GitHub releases.

Open Source Partners

Kimi Open Source Friends MiniMax

🤝 Contribute

Use nanobot for a real task, report what broke, and then pick a focused improvement.

Maintainers

Xubin Ren
Xubin Ren

Xubin Ren on X
Yongru Chen
Yongru Chen

Yongru Chen on X

Community Contributors

Thanks for visiting ✨ nanobot!

Views

Created: Feb 1, 2026

Last push: Sep 3, 2026

Default branch: main

Latest release: v0.3.0

Languages

Share of the codebase by language, based on repository metadata from the host.

  • Python 71.7%
  • TypeScript 27.7%
  • CSS 0.2%
  • Shell 0.2%
  • JavaScript 0.1%
  • PowerShell 0.1%
  • HTML 0.1%
  • Dockerfile 0.0%

Repository Radar analysis

Deterministic insights derived from public metadata and our observations — not personal testing or reviews.

Why this repository is interesting

  • High absolute popularity (47,690 stars) signals broad adoption.
  • Maintained recently (last push 2 weeks ago).

Who should use it

  • Developers working primarily with Python
  • Teams exploring AI tooling, agents, or ML infrastructure

Potential use cases

  • Reference or evaluate Python open-source approaches in this domain
  • Prototype AI/agent workflows or study reference architectures

Strengths

  • Recent repository activity
  • README present in our index
  • Declared license: MIT License
  • Substantial fork count (8,418) suggests reuse and contribution interest

Limitations / considerations

  • Insights are derived from public metadata and our observations — not a substitute for code review

What to watch

  • Re-check last push, issues, and releases on GitHub before production adoption

Strong signals: Strong community interest · Active maintenance

Source: GitHub (public metadata) + Repository Radar analysis. We do not claim ownership of third-party repositories.

Ready to ship something that compounds?

Share your roadmap. We’ll come back with scope options, timeline ranges, and who from Shriram IT Ventures should be in the room.

Popular with product teams