Overview
nanobot is a small, self-hosted personal AI agent from the HKU Data Intelligence Lab (HKUDS). You run it yourself and use it from a browser, a terminal or a chat app. It keeps memory between sessions, works with files, and can run scheduled automations. The core is kept small so you can read and extend it.
Key capabilities
- Many front ends: WebUI, terminal, and chat apps from Telegram to Slack.
- File tools: read and summarize PDF, .docx, .xlsx and .pptx files.
- Tools: shell, web search and fetch, MCP, cron, image generation and multi-agent delegation.
- Memory: session history plus long-term memory (Dream).
- Python SDK: embed the agent in your own code.
Tradeoffs
- Self-hosted: you manage the install, updates and security.
- Giving an agent shell access needs care on shared machines.
- Smaller ecosystem than large commercial assistants.
Ideal for
- Developers who want their own assistant in Telegram or Slack
- Self-hosters who care about owning their data
- Tinkering with agent internals
Not ideal for
- Users who want a managed, zero-setup assistant
- Locked-down corporate laptops
Getting started
- Make sure you have Python 3.11 or newer and access to a model provider or a local model server.
- Run the installer script for your OS from the README (or install the stable release from PyPI). It sets up an isolated environment under
~/.nanobot/venv. - On a desktop, the WebUI opens so you can choose your model.
- Connect a chat app such as Telegram or Slack using the chat app guide, then try a file task like summarizing a PDF.
Technical notes
- Requires: Python 3.11+
- Install: installer script or PyPI stable release
- License: MIT
- Source: HKUDS/nanobot
- GitHub stars: 50,033 (as of 2026-11-12)