nanobot README

The project's README from github.com/HKUDS/nanobot. As one markdown file: README.md.

nanobot README cover

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:

💡 Why nanobot

📦 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.

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. Start it with nanobot webui.

The screenshots below use example conversations, illustrative token counts, and paused schedules.

nanobot WebUI preview with model, project, Apps, Skills, and Automations controls

Use it to:

Group up to four conversations and arrange them in columns, rows, a grid, or a main pane with supporting panes. Each topic keeps its own history. Select another topic from the @ menu, or drag it into the composer, to let the agent read its context and coordinate work across sessions.

Three conversations in one workbench: a release plan beside quick-start work and documentation review

Choose a project, access mode, and model for each task. Attach documents or images, then send follow-ups immediately or queue them for the next response. Explore topics and panes →

Inspect the work and its context

Expand agent activity to see reasoning, tool calls, and file changes. Switch Settings → Appearance → File edit display to Diff for inline patches. The composer's context indicator shows the current context size, input tokens by round, and cache reuse when the provider reports it.

An expanded file-edit diff above the context usage chart, with input tokens and cache reuse shown across four rounds

Context compaction also appears in the conversation timeline. Explore activity and context →

Bring your tools into the conversation

Use Apps to connect MCP servers, enable Agent Plugins, and manage local CLI App adapters. Add a preset or a custom server, then attach an available tool with @. Skills provide reusable instructions; Settings holds model, voice, image, web, and chat-channel setup.

The Apps MCP catalog with integration presets and controls to add or import a custom MCP server

Explore Apps → · Discover Skills → · Connect chat apps →

Let recurring work run on a schedule

Ask for an automation from the topic that should receive its results. Review the message, schedule, linked chat, and run history in Automations; pause or edit it as your needs change. Local triggers let a script start a saved task on demand.

The Automations view with example recurring tasks, a selected daily brief, its schedule, linked chat, and management controls

Keep the gateway running for scheduled delivery. Explore Automations →

For a conversation that should stay out of saved topic history and long-term memory, use Temporary chat from the header. Temporary chats end when the connection closes and use the default workspace in Restricted mode.

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.

R

nanobot (HKUDS/nanobot)

Searching Database…

49.1K ·GitHub
这是什么?nanobot 是一个超轻量、开源、可自托管的个人 AI 智能体框架,使用 Python 编写。它可以以浏览器 WebUI、终端客户端或聊天应用集成的形式运行,并通过兼容 OpenAI 的 API 整合工具、长期记忆、MCP、多智能体委派和定时自动化功能。
这是聊天机器人应用还是开发者框架?两者都是:它是一个小型 Python 框架,提供 Python SDK 和兼容 OpenAI 的 API 供集成使用;同时也附带现成的浏览器 WebUI、TUI 和 CLI,因此无需编写任何代码,就能把它当作成品个人助手使用。
我该如何安装并启动它?在 macOS/Linux 上运行一条命令的安装脚本,或在 Windows 上运行 PowerShell 命令;它会从 PyPI 安装 nanobot-ai,并在全新安装的桌面环境中自动启动 'nanobot webui',然后你可以在 Settings → Models 中选择服务商和模型。你也可以使用 uv、pip 安装,或从源代码检出安装。
运行它除了 Python 还需要别的东西吗?只需要 Python 3.11 或更高版本;只有在从可编辑的源代码检出安装,而不是通过 PyPI、uv 或 pip 安装时,才需要 Git 和 Bun。
WebUI 默认会对我的局域网开放吗?不会。首次运行时,WebUI 只绑定到 localhost,因此局域网内的其他设备无法访问,除非你另外进行配置。
'Dream' 功能是什么?Dream 是 nanobot 的长期记忆系统,会保存会话历史和上下文,让智能体能够回忆超出单次会话范围的过往工作和对话。
智能体可以使用哪些内置工具?开箱即用时,智能体可以使用文件、shell、网页搜索、网页抓取、MCP 服务器、cron 定时调度、图像生成,以及用于委派任务的子智能体(subagents)。
我能把 nanobot 部署到云端,而不是在本地运行吗?可以。提供一键部署的 Render Blueprint,可部署网关和内置的 WebUI;另外还提供 Docker、Docker Compose、Linux 服务以及 macOS LaunchAgent 的指南,方便你在其他环境中自行托管。
nanobot 能自己运行定时任务或长时间运行的任务吗?可以。它支持长周期目标,以及在 WebUI 的 Automations 面板中配置的定时自动化任务;只要网关保持在线,这些任务就会持续运行。
Creator
HKUDS
Size
75.8 MB
Stars
49.1K
Age
8mo
Commits · 90 Days