nanobot-rs
中文文档: README.md
nanobot-rs is a complete Rust port of the original nanobot, designed to preserve the original workflow and toolchain while improving stability for concurrency and deployment.
Features
- Agent loop: LLM calls, tool execution, session context, and error handling
- Config system:
~/.nanobot/config.jsonwith provider auto-matching - Session and memory: JSONL session persistence +
memory/MEMORY.md - Tooling:
read_file/write_file/edit_file/list_direxecweb_search/web_fetchmessage/spawn/cron
- Scheduling and heartbeat:
CronService(add/list/remove/enable/run + persistence)HeartbeatService
- Multi-channel support:
- Telegram (long polling, media download, voice transcription)
- Discord (Gateway + REST, with typing indicator)
- WhatsApp (Node bridge)
- Feishu (REST send; optional WebSocket receive feature)
- DingTalk (optional Stream receive feature)
- Built-in skills synced from the original project (
skills/*)
Requirements
- Rust stable (recommended 1.85+)
- Optional:
- Node.js 18+ (for WhatsApp bridge login)
- Brave Search API key (
web_search) - Groq API key (audio transcription)
Quick Start
1. Initialize
2. Configure API key
Edit ~/.nanobot/config.json:
If you use DingTalk, add this under channels:
3. Chat directly
4. Start gateway
Common Commands
# Status and version
# Interactive mode
# Channels
# Cron jobs
Feishu WebSocket Receive
Default build supports Feishu sending. To enable Feishu WebSocket receive:
DingTalk Stream Receive
Default builds do not include DingTalk Stream. Enable it with:
WhatsApp Login
channels login will automatically:
- Prepare
~/.nanobot/bridge - Run
npm install - Run
npm run build - Start bridge and print QR login flow in terminal
Development
License
MIT