nano-claw
v0.1.0
Published
Ultra-lightweight personal AI assistant (TypeScript + Node.js)
Maintainers
Readme
About
nano-claw is a TypeScript + Node.js implementation of nanobot, an ultra-lightweight personal AI assistant inspired by OpenClaw.
🪶 Ultra-Lightweight: Just ~2,500 lines of core TypeScript code
🔬 Research-Ready: Clean, readable code that's easy to understand and extend
⚡️ Lightning Fast: Minimal footprint for faster startup and lower resource usage
💎 Easy-to-Use: Simple configuration and intuitive CLI
Architecture
nano-claw/
├── src/
│ ├── agent/ # 🧠 Core agent logic
│ │ ├── loop.ts # Agent loop (LLM ↔ tool execution)
│ │ ├── context.ts # Prompt builder
│ │ ├── memory.ts # Persistent memory
│ │ ├── skills.ts # Skills loader
│ │ ├── subagent.ts # Background task execution
│ │ └── tools/ # Built-in tools
│ ├── skills/ # 🎯 Bundled skills (github, weather, etc.)
│ ├── channels/ # 📱 Chat channel integrations
│ ├── bus/ # 🚌 Message routing
│ ├── cron/ # ⏰ Scheduled tasks
│ ├── heartbeat/ # 💓 Proactive wake-up
│ ├── providers/ # 🤖 LLM providers (OpenRouter, etc.)
│ ├── session/ # 💬 Session management
│ ├── config/ # ⚙️ Configuration
│ └── cli/ # 🖥️ Command-line interface
└── package.jsonFeatures
Core Agent
- Agent Loop: LLM and tool execution loop
- Context Builder: Construct prompt context
- Memory: Persistent conversation memory
- Skills Loader: Dynamic skill loading from Markdown files
- Subagent: Background task management
- Tools: Built-in tools (shell, file operations, etc.)
LLM Providers
Support for multiple LLM providers:
- OpenRouter (recommended, access to all models)
- Anthropic (Claude)
- OpenAI (GPT)
- DeepSeek
- Groq
- Gemini
- MiniMax
- AiHubMix (API gateway, all models) ✨ NEW
- Dashscope (Qwen)
- Moonshot (Kimi)
- Zhipu (GLM)
- vLLM (local models)
Chat Channels
Support for multiple chat platforms:
- Telegram ✅ Implemented
- Discord ✅ Implemented
- DingTalk / 钉钉 ✅ Implemented
- WhatsApp (config ready)
- Feishu / 飞书 (config ready)
- Slack (config ready)
- Email (config ready)
- QQ (config ready)
- Mochat (config ready)
Note: Telegram, Discord, and DingTalk channel adapters are fully implemented. Additional channel adapters can be added by extending the
BaseChannelclass.
Other Features
- Gateway Server: Central hub for channel management ✨ NEW
- Message Bus: Event-driven message routing ✨ NEW
- Cron Tasks: Schedule tasks with cron expressions
- Heartbeat: Proactive wake-up mechanism ✨ NEW
- Session Management: Multi-user, multi-channel session support ✨ ENHANCED
- Subagent Tasks: Background task execution ✨ NEW
- Configuration: JSON configuration files with Zod validation
Installation
# Clone the repository
git clone https://github.com/hustcc/nano-claw.git
cd nano-claw
# Install dependencies
npm install
# Build the project
npm run build
# Link for global usage (optional)
npm linkQuick Start
1. Initialize
nano-claw onboard2. Configure (~/.nano-claw/config.json)
For OpenRouter (recommended):
{
"providers": {
"openrouter": {
"apiKey": "sk-or-v1-xxx"
}
},
"agents": {
"defaults": {
"model": "anthropic/claude-opus-4-5"
}
}
}3. Chat
nano-claw agent -m "What is 2+2?"CLI Commands
nano-claw onboard- Initialize configurationnano-claw agent -m "..."- Chat with agent (single message)nano-claw agent- Interactive modenano-claw gateway- Start gateway server for channels ✨ NEWnano-claw status- Show system statusnano-claw channels login- Login to channels (e.g., WhatsApp)nano-claw cron add/list/remove- Manage scheduled tasks
Development
# Watch mode (auto-rebuild on changes)
npm run dev
# Lint code
npm run lint
# Format code
npm run format
# Run tests
npm run testConfiguration
Configuration file location: ~/.nano-claw/config.json
See CONFIGURATION.md for detailed configuration options including:
- All 11 LLM providers setup
- Agent behavior customization
- Tool execution security
- Chat channel integrations
- Environment variables
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details
