Tribute to nanobot
This project is built upon nanobot for secondary development. nanobot was inspired by Clawdbot, implementing complete Agent functionality with approximately 4000 lines of core code. Thanks to the nanobot community for the lightweight, readable, and extensible foundation.
This fork extends nanobot with Web UI, MCP support, additional channels (Discord, QQ, DingTalk), document/office skills, system monitoring, and more.
| Category | Features |
|---|---|
| Core Capabilities | Multi-platform: Web UI, Telegram, Feishu, CLI; Local่ฟ่ก,ไฟๆค้็ง; Support for multiple LLMs (DeepSeek, Claude, GPT, etc.) |
| Function Modules | File system operations, Code execution, Memory system (long-term + daily notes), Extensible skill system |
| Web UI | React + TypeScript SPA: Chat, Config (Channels/Providers/Models/MCP/Skills), System Status |
| Channels | Discord, QQ (qq-botpy), DingTalk (้้), plus original Telegram, WhatsApp, Feishu |
| MCP | Model Context Protocol integration โ connect external tools via stdio/HTTP/SSE |
| Skills | claude-code, git-manager, xlsx, pdf, pptx, skill-creator, mirror-system, code-review-expert |
| Cron | Schedule reminders and recurring tasks โ set fixed-time or interval-based jobs |
| Providers | Zhipu (ๆบ่ฐฑ), DashScope (้ไนๅ้ฎ), vLLM, OpenRouter, Anthropic, OpenAI, DeepSeek, Groq, Gemini, Minimax |
| Startup Scripts | nanobot-launcher.sh (Linux/macOS) + nanobot-launcher.ps1 (Windows) โ Auto environment check, dependency update, frontend build, one-click launch |
| System | StatusRepository (SQLite), SystemStatusService (uptime, session count), centralized logging |
nanobot-webui comes with a powerful skill system that extends the AI's capabilities:
| Skill | Description |
|---|---|
| claude-code | Delegate coding tasks to Claude Code CLI for advanced code generation and refactoring |
| git-manager | Git repository management โ commit, push, pull, branch operations |
| xlsx | Excel spreadsheet operations โ read, write, edit .xlsx files |
| PDF operations โ read, write, merge, split PDF documents | |
| pptx | PowerPoint presentation operations โ create and edit .pptx files |
| skill-creator | Create new skills to extend nanobot's capabilities |
| mirror-system | Self-awareness exploration system for personal growth |
| code-review-expert | Git diff code review โ analyze changes and provide feedback |
The skill system is extensible. You can create custom skills by implementing skill functions that the AI can invoke. See the skill-creator skill for a template.
nanobot-webui supports scheduled tasks through a built-in Cron system, allowing you to set up recurring reminders and automated actions:
| Feature | Description |
|---|---|
| Fixed-Time Jobs | Schedule tasks at specific times (e.g., daily 9:00 AM, weekly Monday 10:00 AM) |
| Interval Jobs | Run tasks at regular intervals (e.g., every 30 minutes, every 2 hours) |
| Recurring Reminders | Set up periodic reminders for meetings, deadlines, health checks, etc. |
| Message Channels | Send scheduled messages to any configured channel (Feishu, Telegram, Discord, etc.) |
# Set a daily reminder
"ๆฏๅคฉๆฉไธ 9 ็นๆ้ๆๅๆฐด"
# Set a weekly meeting reminder
"ๆฏๅจไธไธๅ 10 ็นๆ้ๆๅผๅจไผ"
# Set an interval check
"ๆฏๅๅฐๆถๆฃๆฅไธไธๆๅกๅจ็ถๆ"
The Cron system runs in the background and automatically delivers scheduled messages to your configured channels.
Multi-turn conversation with Nanobot, Markdown rendering, new sessions and history. Example shows weather query โ Agent fetches real-time data via MCP tools and returns structured card results.
View service health, uptime, active session count, installed Skills, workspace path, and system environment info.
Manage IM channel enablement and config โ Feishu, Discord, QQ, DingTalk, Telegram, WhatsApp, and more.
Manage AI model providers โ DeepSeek, Qwen, Zhipu, OpenAI, Anthropic, OpenRouter, vLLM, Groq, Gemini, etc. Add, edit, or remove providers.
Set the default Agent model โ model name (provider/model-name format), Temperature, Max Tokens, and other parameters.
Manage Model Context Protocol servers โ stdio, http, sse, streamable_http. Import/generate JSON or add new MCP services.
Manage AI skills โ select skill folders for upload to workspace, view installed skills (version, status, description), enable or disable.
git clone https://github.com/codemo1991/nanobot-webui.git cd nanobot-webui pip install -e .
The intelligent startup scripts in the scripts/ directory handle everything automatically โ the simplest way to get started:
Supported Platforms:
- Linux / macOS:
nanobot-launcher.sh - Windows PowerShell:
nanobot-launcher.ps1
What it does:
- โ Automatically checks Python (โฅ3.11) and Node.js environment
- โ Automatically installs/updates Python dependencies
- โ Automatically builds the frontend
- โ One-click launches the Web UI service
Usage:
- Windows (PowerShell):
.\scripts\nanobot-launcher.ps1 - Linux / macOS:
chmod +x scripts/nanobot-launcher.sh ./scripts/nanobot-launcher.sh
Then open http://127.0.0.1:6788
Tip: Run the script again anytime to update dependencies and restart the service โ the simplest way to keep your installation up-to-date!
# Build frontend (first time) cd web-ui && npm install && npm run build && cd .. # Start Web UI (backend + static files) nanobot web-ui
Open http://127.0.0.1:6788 โ Chat, Config, and System pages are available.
nanobot onboard # Initialize config # Edit ~/.nanobot/config.json with your API key nanobot agent -m "Hello!"
# Build the image docker build -t nanobot-webui . # Run (recommended: mount volume for config persistence) docker run -d -p 6788:6788 -v nanobot-data:/root/.nanobot --name nanobot nanobot-webui # Or use host path for config docker run -d -p 6788:6788 -v ~/.nanobot:/root/.nanobot --name nanobot nanobot-webui
Then open http://127.0.0.1:6788. On first launch, the app auto-creates ~/.nanobot/config.json; add your API key via the Config page in the Web UI.
- Chat โ Create sessions, multi-turn conversations, Markdown rendering, session persistence
- File Browser โ Browse and manage workspace files directly from the UI
- Session History โ View and manage conversation history
- Model Switching โ Easily switch between different AI models
- Config โ Manage Channels (IM), Providers, Models, MCP servers, Skills
- System โ Health check, uptime, session count, system info, config export
# Feishu pip install nanobot-ai[feishu] # QQ pip install nanobot-ai[qq] # DingTalk pip install nanobot-ai[dingtalk] # MCP pip install nanobot-ai[mcp]
nanobot/
โโโ agent/ # Core agent (loop, context, memory, tools)
โ โโโ tools/ # mcp.py, filesystem, shell, registry...
โโโ channels/ # telegram, whatsapp, feishu, discord, qq, dingtalk
โโโ web/ # REST API server (api.py)
โโโ mcp/ # MCP loader
โโโ storage/ # StatusRepository (SQLite)
โโโ services/ # SystemStatusService
โโโ skills/ # claude-code, git-manager, xlsx, pdf, pptx, skill-creator, mirror-system, code-review-expert...
โโโ providers/ # LLM providers (OpenAI, Anthropic, DeepSeek, etc.)
โโโ config/ # Extended schema (Discord, QQ, DingTalk, MCP)
โโโ cli/ # web-ui command, status, etc.
web-ui/ # React SPA (Chat, Config, System)
scripts/ # Startup scripts (nanobot-launcher.sh, nanobot-launcher.ps1)
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue for bugs and feature requests.
# Clone the repository git clone https://github.com/codemo1991/nanobot-webui.git cd nanobot-webui # Install in development mode pip install -e . # Install web-ui dependencies cd web-ui && npm install # Run development server cd .. nanobot web-ui
- Python: Follow PEP 8
- JavaScript/TypeScript: Follow ESLint configuration
- Commit messages: Use clear, descriptive messages
MIT License โ see LICENSE file for details.
- nanobot โ The base project this fork builds upon
- nanobot contributors โ For the lightweight, research-friendly design
Thanks for visiting โจ nanobot-webui!