nanobot

HKUDSMIT活跃维护 有专家点评

轻量级开源个人 AI 助手,支持本地 LLM、MCP 协议和多智能体协作,可接入 Discord 等聊天平台做日常自动化。

Your lightweight open-source personal agent.

v0.4.1发布于 2026-11-06 15:55 UTC50,002star +99 / 7 天8,728fork同步于 2026-11-11 05:18 UTC

专家点评

上手难度:进阶更新于 2026-11-11

自托管个人 Agent 的轻量骨架,替代 OpenClaw 那类重框架,把对话入口和工具调用压到最小

适用场景

  • 个人常驻助理:想让 Agent 长期挂在 Telegram/Slack/微信里收发消息、跑定时任务,这类场景需要进程常驻和渠道适配,自己从零写渠道层不划算
  • 本地模型用户:已经有 llama.cpp/vLLM 之类的 OpenAI 兼容端点,只缺一个带工具调用和记忆的前端,nanobot 不绑定服务商,换模型只改配置
  • 终端/浏览器双入口的日常查询:读 PDF/Excel 做摘要、跑 shell、搜网页,这些是内置工具,不用自己接 MCP server 就能用
  • 多 Agent 委派的原型验证:想试长期目标和子任务分派的结构,又不想引入 LangGraph 那种图编排的复杂度

踩坑

  • Provider 抽象层耦合:issue 里反复提到 litellm_provider.py 靠条件判断堆叠,新增服务商要改代码。你接的如果不是主流几家,先读这个文件再决定要不要 fork
  • 中文文档缺失是反应数最高的 issue,说明非英语用户占比不低但文档没跟上;配置项和渠道接入细节大概率只能读源码和英文 README
  • 安装链路有隐性依赖:pip 装要先激活 venv,源码装要 Git + Bun,首次运行还要拉 TUI 归档。离线或内网环境会在这一步卡住,curl | sh 的安装方式也不适合受控环境

同类对比

OpenClaw 是它明确对标的重量级方案,需要成熟生态和更多现成集成时选那边;要图编排、状态机式的复杂多 Agent 流程,LangGraph 更合适。

怎么上手

由 README 提炼,执行前请确认
curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh
uv tool install nanobot-ai
nanobot webui
硬件要求按 README 说明

README 未给出具体显存或 GPU 型号要求,只说明需自行接入受支持的模型服务商或本地模型服务器,硬件要求取决于所选服务;平台 wheel 覆盖 macOS 13+(Apple Silicon 与 Intel)、glibc 2.17+ Linux(ARM64/x64)、Windows x64,x64 运行时需 SSE4.2。

支持 Apple Silicon有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

超轻量开源自托管个人 AI Agent 框架,用 Python 写,浏览器、终端、聊天软件都能用

轻量级开源个人 AI 助手,支持本地 LLM、MCP 协议和多智能体协作,可接入 Discord 等聊天平台做日常自动化。

核心能力

  • 内置 WebUI 与终端 TUI,浏览器或命令行直接对话
  • 接入 Telegram、Discord、Slack、微信、邮件等聊天渠道
  • 内置文件工具读取 PDF、Word、Excel、PPT 做总结
  • 支持 shell、网页搜索抓取、MCP、定时任务与多 Agent 委派
  • 通过 Dream 保留会话历史与长期记忆,支持长期目标

容易踩的坑

需要 Python 3.11 或更新版本,且必须自备模型服务商账号或本地模型服务器,nanobot 不提供模型账号;用 pip 安装前要先激活虚拟环境,否则可能报 externally-managed-environment;从源码安装需要额外装 Git 和 Bun,且首次使用可能下载与版本匹配的 TUI 归档。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.4.1
  1. v0.4.1最新正式版2026-11-06 · 2026-11-06 15:55 UTC

    Changes

    • Fix TLS certificate verification, sandboxed shell execution and workspace permissions for queued inputs.
    • Keep idle maintenance from blocking active work or incorrectly refusing an update. Improve retry, reconnection and recovery behavior, and preserve native provider state through compaction.
    • Add a file-context graph with file previews, local Markdown links and recent context snapshots. Switching topics keeps each conversation's context separate.
    • Share syntax highlighting across code, source previews and read-only diffs, with complete source copying and plain-text fallbacks.
    • Reduce unnecessary memory copies in file reads, session history and provider requests. Improve navigation, context-usage display, history loading and skill-source identification.
    • Retain legacy history and proxy migration throughout 0.4.x, including original workspace ownership for unmigrated conversations.

    Upgrade notes

    • Stop affected processes and back up configuration and conversations before an external upgrade. Use the original installer, package manager or container workflow, then verify the running version, old conversations, a new message and another restart. See Updating nanobot.
    • 0.3.5 can upgrade directly to 0.4.1 through its original installation method. No intermediate 0.4.0 installation is required. Legacy JSONL and proxy importers remain available throughout 0.4.x and are scheduled for removal in 0.5.0; retain original files and migration backups.
    • 0.4.1 is the final release accepting the temporary OpenAI apiType / api_type conversion introduced in 0.4.0. Save the migrated api configuration and replace old environment variables before a later upgrade; saving configuration does not rewrite the process environment.
    • Managed program recovery is conditional and does not restore old chats over current data. Changed data can prevent safe program rollback; other installation owners retain their repair route.
    • In-app automatic installation is not enabled for this version. Publishing packages does not enable release approval proof, change update subscriptions or activate a public Preview feed.
    • Large or growing graphs and very large diffs can still be less responsive on slower devices. The memory changes are not a general latency guarantee; missing historical graph snapshots are not reconstructed from current files.

    Packages and verification

    The platform wheels include the built WebUI and matching native TUI. Native installation, terminal and update/recovery checks passed on macOS arm64/x64, Linux arm64/x64 and Windows x64. Original public 0.3.5 and 0.4.0 upgrade paths were additionally tested on macOS with disposable data; this is not a guarantee for every environment.

    Packages are attached below and available on PyPI.

    Full Changelog: https://github.com/HKUDS/nanobot/compare/v0.4.0...v0.4.1

  2. v0.4.02026-10-28 · 2026-10-28 10:50 UTC
    查看更新说明

    🐈 nanobot v0.4.0 makes everyday work easier to continue — with durable conversation history, a more capable workbench, and a clearer path to the next update.

    Keep moving. The gateway now stores model history and browser transcripts in SQLite, imports existing conversations, and coordinates updates around saved state. Stable and opt-in Preview releases share one update flow, with explicit confirmation before installation and restart.

    The browser workbench is easier to navigate and connect: complete prompt-history navigation, remote instances, clearer delegated-task details, richer attachments, and more consistent mobile controls. The terminal gains Mermaid diagram viewing and target-specific native bundles. Both clients continue to use the same Python gateway.

    This release also makes installation ownership explicit. Supported managed installations can update and recover the program through the app; other installations receive instructions for their original package manager or deployment. Recovery does not mean restoring an old copy of your chats. Please read the upgrade notes before replacing an existing installation.

    Highlights

    • One update flow, with your confirmation — Check releases in Settings → About, choose whether to receive Preview updates, review the exact version, and confirm installation and restart. Supported official-installer and POSIX uv environments can use the in-app flow once the public release has verified approval proof.
    • Recovery that protects current data — Installer-managed updates can attempt repair and, when safe, restore the original program and service. Configuration and conversations are not automatically replaced with an older backup. Installation owners outside that flow keep their own repair route.
    • Durable conversation history — SQLite brings model history and WebUI display history under gateway ownership. Existing JSONL history is imported with source backups retained. Paging, live-output reconciliation, queued follow-ups and goal continuation receive reliability fixes.
    • A clearer browser workbench — Navigate the full prompt history with bounded loading, search loaded messages and session handles, rename topics inline, and archive topics in batches. Delegated tasks have clearer run state and detail views.
    • Your workbench, on the right host — Connect to existing remote instances with explicit host identity, pairing and reconnect feedback. Update instructions identify the gateway computer, rather than assuming it is the device displaying the page.
    • Richer files and a better small-screen experience — Local-file and video attachments, image thumbnails, file cards, Markdown source views, reading-size controls, and touch and theme improvements. External websites open in the browser instead of an arbitrary embedded preview.
    • Diagrams in the terminal — View, zoom, pan and copy Mermaid diagrams without leaving the conversation. Platform wheels contain the matching native TUI and built WebUI; supported wheel installations need neither Bun nor a first-launch TUI download.
    • More control over models and integrations — Searchable providers, explicit API choices, per-preset request overrides, shared proxy choices, Linear and WhatsApp Agent Platform channels, QQ QR setup, and DeepSeek Search. Scheduled jobs can be edited, enabled and disabled in place, with recent runs available for inspection.
    • A fix for Windows idle memory growth — Process-status polling now reuses native type and API bindings on Python versions before 3.14, while keeping live process checks and handle cleanup.

    Upgrade Notes

    • Distribution availability. The verified v0.4.0 packages are available in this GitHub Release and on PyPI. In-app automatic installation is not enabled for this release yet: it requires verified release approval proof and the applicable public release sources. Publishing these files does not enroll users
  3. v0.3.52026-09-15 · 2026-09-15 19:05 UTC
    查看更新说明

    🐈 nanobot v0.3.5 brings the workbench to the terminal — and makes conversations easier to continue across the browser, terminal, and chat apps.

    The headline is one agent, more places to work. Run nanobot for the native terminal client or nanobot webui for the browser. Both use the same gateway and saved WebSocket conversations. Terminal sessions can be resumed, forked, inspected, and detached without building a separate agent runtime.

    The browser workbench has grown around real multitasking: grouped conversation panes, temporary chats, persistent sidebar ordering, session mentions, a skills marketplace, portable Agent Plugins, and browser OAuth for remote MCP servers. Automations now have task and calendar views, clearer scheduling controls, and per-run replies. Mobile composition, settings, context charts, app logos, and branded mentions received another round of focused polish.

    The other story is continuity you can inspect. Context usage and compaction are visible, interrupted work has clearer recovery controls, and session history is more durable across pagination, reconnects, and upgrades. This release also tightens attachment, process, workspace, and email-authentication boundaries. Please read the upgrade notes before replacing an existing installation.

    Highlights

    • A native terminal workbench — Start with nanobot, switch sessions, paste supported clipboard images, complete app and skill references, inspect context and file diffs, queue follow-ups, and use /detach to leave the gateway running.
    • Browser conversations side by side — Arrange up to four topics in resizable groups, keep sidebar ordering, drag saved sessions into mentions, and use temporary chats when you do not want a persistent topic.
    • Automations that are easier to manage — Switch between task and calendar views, inspect run replies, and adjust schedules with clearer controls. Editing a job preserves pending executions; deleting one no longer leaves navigation blocked.
    • Visible context and steadier long sessions — Per-round token/cache charts, context-compaction progress, paged history search, cumulative summaries, and file-read deduplication scoped to the actual model context.
    • Apps and skills with clearer identities — SkillHub discovery, portable Agent Plugins, remote MCP OAuth and token refresh, visible connection failures, and consistent app logos and brand names in chat.
    • A better small-screen experience — Home-screen installation through PWA support, narrower composer controls, draggable context sheets, touch-friendly chart details, and settings navigation that matches its opening direction.
    • Broader model and search choices — DeepSeek Responses and V4 vision support, Eden AI and OrcaRouter gateways, AnySearch, online OAuth model catalogs, and more resilient provider fallback and Responses-history handling.
    • More reliable channels and runtime boundaries — Rich Telegram streaming, improved Feishu onboarding, safer QQ attachments, trusted email authentication results, optional macOS Seatbelt isolation, and fewer leaked credentials in subprocess environments.
    • Embedding and operations — SDK host integration hooks, explicit Desktop attachment, gateway readiness reporting, and checked, version-matched terminal distributions.

    Upgrade Notes

    • Back up configuration, workspaces, and session storage; stop old processes first. Session JSONL files now live under the configuration directory's sessions/<workspace-id>/ tree. The first upgraded start migrates existing workspace sessions after verifying the copy. Do not let old and new versions write the same workspace concurrently. Before downgrading, stop nanobot and use nanobot sessions restore-workspace --config <config.json> --workspace <workspace>; the command refuses to overwrite a different existing file. See the [session storage and rollback guide](https://github.com/HKUDS/nanobot/blob/v0.3.5/docs/cli-reference.md#session-
  4. v0.3.02026-07-25 · 2026-07-25 08:08 UTC
    查看更新说明

    🐈 nanobot v0.3.0 is here: 260 PRs merged and 38 new contributors. The agent gained agency.

    The fastest way to experience the release is one command:

    nanobot webui
    

    It prepares the local WebUI, starts the gateway, and opens the browser workbench. On a fresh install, guided setup helps you choose a provider and configure access without beginning in a JSON file. The published package already includes the WebUI, so there is no separate frontend build.

    The product story is a WebUI that now feels like the front door to nanobot. Chats read as topics; documents, quoted follow-ups, multimodal tool results, file diffs, code previews, and model fallback are visible in the conversation. Model presets can be switched from the composer, native desktop hosts can open a system folder picker, settings work better across narrow screens and dark mode, and the interface now includes Brazilian Portuguese plus substantially improved Traditional Chinese.

    Underneath that experience is agency with boundaries. nanobot can consult inline subagents, carry explicitly authorized work through verification, route turn state through a clearer runtime context, and switch model presets per session. Long-running behavior is deliberate: /goal opts a task into sustained execution, while ordinary conversations remain ordinary conversations.

    The foundation is a runtime built for real deployment. Configuration can reload without tearing down the process, channels have clearer package boundaries, gateway restart and shutdown paths are sturdier, and Docker and Render deployment are easier to reproduce. Provider-scoped proxies, OpenCode, Kimi Coding, Grok OAuth with hosted X Search, Parallel Search, Serper, Mattermost, and the native Neonize WhatsApp channel broaden where nanobot can run and what it can reach.

    Highlights

    • One command to the workbench - nanobot webui prepares the local channel, starts the gateway, opens the browser, and leads first-time users into guided setup.
    • A stronger browser workbench - Topic-style chats, composer model switching, quoted follow-ups, document attachments, native folder selection, responsive settings, and clearer fallback state.
    • Agent coordination without core sprawl - Inline subagents can consult inside the active task, authorized work can continue through verification, and typed runtime context keeps provider-owned state out of ad hoc loop logic.
    • Explicit long-running goals - Sustained execution is gated behind /goal, with clearer permission, cancellation, timeout, heartbeat, and local-trigger behavior.
    • Files and tool activity you can inspect - Syntax-highlighted previews, live file-edit diffs, better code-copy behavior, structured tool errors, richer MCP artifacts, and preserved multimodal tool output.
    • A more operational runtime - Live configuration reloads, bounded session and exec state, safer restart/shutdown, cleaner cancellation ownership, more reliable scheduled work, and faster CI.
    • Broader providers and search - OpenCode Zen/Go, Kimi Coding, Grok OAuth, provider-scoped proxies, Copilot Enterprise overrides, Parallel Search, Serper, and steadier authentication fallback.
    • Channels as maintainable extensions - Native Neonize WhatsApp, Mattermost, improved Feishu/Telegram/Discord/Matrix/QQ behavior, optional channel dependencies, and clearer setup flows.
    • Security tightened at the edges - Chained-command allowlist bypasses are blocked, SSRF checks pin validated DNS, credentials are redacted from MCP URLs, remote API binds require authentication, and attachment ingress is constrained.
    • Documentation and delivery caught up - Workflow-oriented docs, an automation guide, one-click Render deployment, stronger Docker controls, community-maintained project language, and a refreshed SVG identity.

    Upgrade Notes

    • WhatsApp now uses Neonize instead of the old Node.js/Baileys bridge. Remove `brid
  5. v0.2.22026-06-23 · 2026-06-23 01:37 UTC
    查看更新说明

    🐈 nanobot v0.2.2 is here — 140 PRs merged, 21 new contributors. The agent got sturdier!

    The headline is durability. WebUI conversations now survive more of real life: transcripts are segmented instead of living in one fragile file, forked chats preserve replies more reliably, active turns scroll and replay more predictably, startup paths block less, and gateway shutdown is much calmer. Long sessions, stale providers, slow routes, broken config files, malformed history, stream stalls, and empty provider responses all got less likely to derail the work.

    The second story is nanobot becoming a real Python runtime. The SDK is no longer just a thin convenience layer around the agent loop: concurrent run() calls are isolated, hooks are cleaner, MCP lifecycle handling is safer, runtime controls are broader, and the docs now teach the SDK from first principles. If you want to embed nanobot inside your own application, v0.2.2 is the first release where that path feels intentional.

    The third story is the workbench getting broader and easier to live in. The WebUI gained automation management, prompt navigation, token usage visibility, mobile polish, better update checks, richer activity timing, and a faster settings surface. The ecosystem expanded with Firecrawl as a keyless Web Data app, Exa / Bocha / Keenable / Volcengine search, more transcription providers, custom image generation, better Mistral and Kimi handling, and many channel fixes across Telegram, Feishu, WhatsApp, Slack, Email, QQ, DingTalk, and more.

    Highlights

    • More durable WebUI sessions — Segmented transcript storage keeps large conversations readable without throwing away old turns, fork/replay paths preserve assistant replies more reliably, session deletion cleans up legacy files, refreshes no longer revive stale content, and active turns stay anchored while the model works. The WebUI also got prompt navigation, better mobile layout, clearer activity durations, token usage rendering, safer startup fetches, and on-demand version checks.

    • Python SDK as a first-class runtime — The SDK now has safer concurrent run() behavior, explicit runtime controls, cleaner per-run hook handling, better MCP cleanup, improved facade lifecycle behavior, and more beginner-friendly documentation. This makes nanobot easier to embed in scripts, services, evaluations, and custom agent products.

    • Gateway and onboarding polish — The gateway gained background/service controls, cleaner foreground shutdown, safer Ctrl+C behavior, and better MCP stdio cleanup. The onboarding flow was simplified around provider-first Quick Start, more neutral provider selection, safer WebUI setup, rollback on WebSocket failure, and better keyboard navigation.

    • Search, speech, and provider coverage — Web search now covers Firecrawl, Exa, Bocha, Keenable, and Volcengine paths; transcription expanded with shared voice input plus OpenRouter, StepFun, SiliconFlow, Xiaomi MiMo, and AssemblyAI support. Providers got better Mistral reasoning handling, Kimi K2.7 thinking, OpenAI-compatible query/body controls, custom image generation, OpenAI image edits, safer Anthropic tool IDs, and stronger retry/fallback behavior.

    • Reliability hardening across the agent core — Recent-history context is token-capped, idle auto-compact is on by default, Dream explains empty runs, malformed history is skipped, history cursors stay monotonic, tool schema estimates are cached, unknown builtin tool parameters are rejected, provider fallback logs the primary error, and stream stalls can retry or fall back without returning a truncated answer.

    • Channels that behave more like real apps — Telegram gained richer message support with safer fallback detection; Feishu got streaming recovery, WebSocket card reading, table extraction, lazy SDK loading, and QR login; WhatsApp got read receipts, forwarded-message handling, and LID mapping; Slack allowlisted channels can re

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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 backgroundStart Without Technical Background
    Install quickly and get your first replyInstall and Quick Start
    Open the bundled browser UIWebUI
    Connect Telegram, Discord, WeChat, Slack, Email, Mattermost, Linear, or another channelChat app guide
    Configure providers, fallback models, Langfuse, MCP, web tools, or securityDocs and Configuration
    Develop the browser UIInstall current source, then WebUI development and Contributing
    Integrate from Python or HTTPPython SDK or Agent API
    Understand or extend the internalsArchitecture, Contributing, and Provider extensions
    Deploy to the cloud or keep nanobot running as a serviceDeployment

    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 reports
    • use shell, web search/fetch, MCP integrations, cron, image generation, and multi-agent delegation
    • 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: 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.

    TrackInstall withUpdate withWhat runs
    Stableinstaller, uv, or pipmanaged installer: WebUI update; other installs: original package toolone released Python/WebUI/TUI version
    Current sourceeditable Git checkoutgit pull --ff-only + editable dependency syncPython, 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.

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

    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-run
    

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

    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-ai
    

    pip: activate your virtual environment first

    python -m pip install nanobot-ai
    

    Then 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

    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 .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. After stopping the old instance, git pull --ff-only updates the Python, TUI, and WebUI source together; rerun python -m pip install -e . when Python dependencies change, then restart the instance. Contributors should also read CONTRIBUTING.md.

    Published packages include the WebUI, and supported platform wheels also include the native TUI. A source-distribution install can fetch a checksummed, version-matched TUI archive—with its licenses, notices, corresponding application source, source offer, and relinking instructions—on first use.

    Platform wheels include both the WebUI and the native terminal UI: macOS 13+ (Apple Silicon and Intel), glibc 2.17+ Linux (ARM64 and x64), and Windows x64. The x64 runtime requires SSE4.2. Pip selects the matching wheel; opening the TUI does not need a separate GitHub download or Bun installation. A source-distribution install on a supported target can use the matching checksummed GitHub release archive. On other platforms, use nanobot --classic or the WebUI.

    [!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:

    TrackInstall withUpdate withWhat runs
    Stableinstaller, uv, or pipsame installation methodone released Python/WebUI/TUI version
    Current sourceeditable Git checkoutgit pull --ff-only + editable dependency syncPython, WebUI, and TUI from that checkout

    Verify the install:

    nanobot --version
    

    If nanobot is not on PATH, reuse the installer's printed command or run the Python executable from the existing installation with -I -m nanobot. For uv/pipx, locate that environment with the original manager. Do not use a temporary tool environment to manage an existing installation.

    After installation, continue with Quick Start. Use the exact command printed by the installer if nanobot is not on PATH.

    🚀 Quick Start

    Open nanobot in your browser

    If the installer already opened the WebUI, continue there. Otherwise run:

    nanobot webui
    

    Keep the launcher terminal open while using the browser. It starts or joins the shared local gateway and binds the first-run WebUI to localhost. If the browser does not open, copy the complete login link printed in the terminal, including everything after #; keep this credential private. For SSH or a headless host, use the remote-browser or terminal-only instructions below.

    Your first three steps

    1. Open Settings → Models and save a provider/model preset with your credential or supported sign-in. See model setup if you need the full steps.
    2. Start a new topic and send Hello! to verify the model connection.
    3. To try file work, put a copy of notes.txt in a practice folder, select that folder and Default Permission (workspace-only access), and ask: "Read notes.txt and write a short summary to summary.md." Open summary.md in that folder to check the result. See Your first file task.

    A normal reply verifies the provider/model and browser connection. The file task separately checks the selected project and its file permissions. Attaching a file sends it to the conversation; it does not change the selected project folder.

    Then describe your next goal in the same chat, for example: "I am already using the WebUI. Help me connect Telegram and allow only my account." An enabled nanobot-document skill can consult the documentation bundled with your installation; see Continue with nanobot for examples, explicit invocation, and availability.

    After installing nanobot on the server, start its WebUI without opening a server-side browser:

    nanobot webui --no-open
    

    Keep that server terminal running. In a second terminal on your own computer, forward the default WebUI port through SSH:

    ssh -N -L 127.0.0.1:8765:127.0.0.1:8765 user@SERVER
    

    Replace user@SERVER with your SSH login and leave the tunnel open. In your local browser, open the complete login link printed by the server launcher, preserving its # fragment. It uses http://127.0.0.1:8765, which now reaches the server through the tunnel. Complete Settings → Models and send Hello!. If local port 8765 is occupied, use another local port in the tunnel and change only the port in the browser link. Keep the server listener on localhost. For Docker, public endpoints, or service management, see Deployment.

    If a model is not configured yet, use the terminal wizard:

    nanobot onboard --wizard
    

    Check one reply without opening the browser:

    nanobot -m "Hello!"
    

    For interactive work, open the terminal client:

    nanobot
    

    The native TUI uses the launch directory as its project workspace and 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.
    • Paste clipboard images with Ctrl+V or Alt+V, and use $ to complete skill references.
    • Use /diff to inspect file changes, /context to inspect session context, or /branch to continue from a completed reply in a new 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 promote the gateway to background mode and close the TUI while work continues.

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

    State a specific preference in your chat, for example: "For release notes, use concise bullet points." To consolidate it now, send /compact and then /dream, waiting for each to finish, and review /dream-log. Check the actual changes to USER.md or memory/MEMORY.md in the configured agent workspace, then test reuse in a new topic in the same instance. Dream may decide that no durable change is needed; a conversational acknowledgement alone does not prove the preference was saved. See Save and Check a Preference for file access, correction, and restoration steps.

    Use a regular topic for a bounded objective with a clear completion condition, for example:

    /goal Review this project's tests and list the smallest missing test case.
    

    An active goal keeps nanobot working beyond the ordinary iteration limit until it records completion, cancellation, or a blocked state. This can use more model tokens; /stop interrupts the current work, while asking nanobot to cancel the goal abandons the objective. Execution errors can also stop the work. A scheduled automation instead starts work at specified times. Keep the gateway running for unattended work using the background or service options below.

    After a gateway restart, reopen the original topic and review saved results before explicitly continuing any interrupted work. Recovery does not blindly replay uncertain tool actions. See the long-running agent guide for starting conditions and related automation options.

    After model setup, keep channels and automations running when interactive launchers close:

    nanobot gateway --background
    

    This starts or promotes the shared gateway to persistent background mode. Fresh official-installer environments already use that lifetime when you open nanobot webui; other Python installations can explicitly use nanobot webui --detach. Channels and automations remain active after local clients exit. Complete first-time model setup in the WebUI, and use the gateway commands below to manage the same instance.

    From the TUI, /detach does the same before closing that client. Background mode does not configure startup after a machine reboot or restart after a crash; use an OS-managed service for that. Interrupted subagent tasks are not automatically relaunched after a restart, and missed scheduled times are not replayed; see subagent recovery and automation delivery.

    Manage the background gateway with:

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

    To reopen the browser, run nanobot webui against the same instance and use its complete printed login link.

    Use this once a model is configured and you want to run the gateway directly in the current terminal:

    nanobot gateway
    

    It skips guided WebUI setup and browser opening. The WebUI remains available when its channel is configured. Use nanobot gateway --background for a detached process, or follow Deployment for startup and supervision by the operating system.

    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. WebUI access grants administration of the same agent instance; share it only with trusted operators. See Sharing access.

    The screenshots below show the current source WebUI with example conversations, illustrative token counts, and paused schedules.

    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 model presets and choose a project before starting a topic;
    • configure models in Settings, connect chat platforms in Channels, and manage Apps, Skills, and Automations.

    Keep related work side by side

    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.

    Choose a project, access mode, and model for each task. Topics separate conversation history; project folders select where file work happens. Neither creates separate long-term memory: one instance shares its agent profile, memory, and skills across projects. Use separate instances when client data or preferences must stay isolated. Explore topics and panes →

    Inspect the work and its context

    Expand agent activity to see reasoning, tool calls, and file changes. Switch Settings → Appearance → Edit preview 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.

    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, and web setup; Channels handles chat-platform connections.

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

    Before connecting a personal bot to shared channels, check the platform's DM pairing/allowlist and group-access policies separately. Approving a private sender does not restrict group access on every platform; see the channel reference.

    Let recurring work run on a schedule

    Ask for an automation from the topic that should receive its results. Use Tasks to review and manage schedules, or Calendar to scan completed and upcoming runs by date. Local triggers let a script start a saved task on demand.

    Keep the gateway running and the host awake for scheduled delivery. Missed scheduled times are not replayed after a gateway restart. See delivery and recovery rules. 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 with workspace-only permissions. Requests still go to the configured model provider, and files created by tools remain after the chat closes.

    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

    The Python gateway owns agent execution, sessions, tools, memory, and security policy for the WebUI, TUI, and chat apps. The clients share that runtime; the core agent loop builds context, calls the model, executes requested tools, and returns the result. Memory, skills, channels, and MCP integrations extend that loop.

    The Python SDK embeds the agent runtime in your application process. The OpenAI-compatible API starts a separate HTTP service for /v1/chat/completions: each request contains one user message, history is managed by the server, and the model comes from configuration. Responses return to the HTTP client; that service does not deliver tool messages to chat apps.

    See Architecture for source ownership and extension points.

    Docs

    Browse the repo docs for current source documentation, or visit nanobot.wiki for the stable release. The task guide index groups walkthroughs by outcome.

    Releases

    Latest release: v0.4.0

    v0.4.0 makes everyday work easier to continue, with durable conversation history, a more capable browser workbench, and diagrams in the terminal.

    • Keep model and browser conversation history in SQLite, with imports of existing conversations and retained source backups.
    • Navigate prompt history, search loaded messages and session handles, and keep delegated tasks within reach.
    • Work with local-file and video attachments, image thumbnails, file cards, and improved mobile and reading controls.
    • Connect remote instances, inspect Mermaid diagrams in the terminal, and edit or pause scheduled tasks in place.

    Upgrade through your original installation method and back up the complete stopped instance first. In-app automatic installation is not enabled for this release yet. See Updating nanobot and the v0.4.0 release notes and upgrade notes.

    Recent Updates

    • 2026-10-28 🚀 Released v0.4.0 with durable conversation history, remote WebUI connections, richer attachments, and terminal diagrams.
    • 2026-10-27 🗂️ Batch topic archiving, clearer mentions, and preserved partial replies after model failures.
    • 2026-10-26 🧰 WebUI ! shell commands show literal output; delegated tasks and their details stay within reach.
    • 2026-10-25 ⏰ Edit or pause scheduled tasks and inspect recent runs; Ctrl+K searches loaded messages and session handles.
    • 2026-10-24 ⚡ Smaller native terminal builds, Kimi K3.1 Pro support, and corrected API session routing.
    • 2026-10-23 🧭 Compact workspace controls, MiniMax-M3.1-Flash support, and corrected DeepSeek reasoning replay.
    • 2026-10-22 📎 Local-file and video attachments, shared proxy settings for remote MCP, and idle-compaction controls.
    • 2026-10-21 🔄 Shared SQLite history storage and update review in About, with in-app installation gated on verified release approval.
    • 2026-10-20 🖼️ Mermaid diagrams in the terminal, QQ QR-code setup, and reading-size preferences.
    • 2026-10-19 🔍 DeepSeek Search, WebUI Mermaid diagrams, and first-run Docker Compose onboarding.

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

    Open Source Partners

    🤝 Contribute

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

    Maintainers

    Community Contributors