Files

215 lines
6.3 KiB
Markdown

# MoltBot
MoltBot is a personal AI assistant that runs on your own devices. It integrates with multiple messaging platforms (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, WebChat) and provides AI-powered assistance across all your channels.
## Features
- **Multi-channel Support**: WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, BlueBubbles, Microsoft Teams, Matrix, Zalo, WebChat
- **Local-first Gateway**: Single control plane for sessions, channels, tools, and events
- **Multi-agent Routing**: Route inbound channels to isolated agents with per-agent sessions
- **Voice Wake + Talk Mode**: Always-on speech for macOS/iOS/Android with ElevenLabs
- **Live Canvas**: Agent-driven visual workspace with A2UI
- **First-class Tools**: Browser, canvas, nodes, cron, sessions, and channel-specific actions
- **Companion Apps**: macOS menu bar app + iOS/Android nodes
- **Skills Platform**: Bundled, managed, and workspace skills with install gating
## Quick Start
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Generate a secure gateway token:
```bash
# Using OpenSSL
openssl rand -hex 32
# Or using Python
python3 -c "import secrets; print(secrets.token_hex(32))"
```
3. Edit `.env` and set at least:
- `MOLTBOT_GATEWAY_TOKEN` - Your generated token
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` - If using API key auth
4. Start the gateway:
```bash
docker compose up -d
```
5. Access the Control UI:
- Open <http://localhost:18789> in your browser
- Enter your gateway token when prompted
## Configuration
### Gateway Access
The gateway can be accessed in two ways:
- **Loopback** (`MOLTBOT_GATEWAY_BIND=loopback`): Only accessible from the host machine (127.0.0.1)
- **LAN** (`MOLTBOT_GATEWAY_BIND=lan`): Accessible from your local network (0.0.0.0)
For production deployments, consider:
- Using Tailscale Serve/Funnel for secure remote access
- Setting up SSH tunnels
- Implementing reverse proxy with authentication
### Model Configuration
MoltBot supports multiple AI model providers:
- **Anthropic Claude** (Recommended): Claude Pro/Max with OAuth or API key
- **OpenAI**: ChatGPT/Codex with OAuth or API key
- **Custom Providers**: Configure via the Control UI or config file
Set API keys in `.env` or use OAuth authentication through the onboarding wizard.
### Channel Integration
To connect messaging platforms:
1. **WhatsApp**: Use the CLI to link device
```bash
docker compose run --rm moltbot-cli channels login
```
2. **Telegram**: Set `TELEGRAM_BOT_TOKEN` in config
3. **Discord**: Set `DISCORD_BOT_TOKEN` in config
4. **Slack**: Set `SLACK_BOT_TOKEN` and `SLACK_APP_TOKEN` in config
See the [official documentation](https://docs.molt.bot/channels) for detailed setup instructions.
## Using the CLI
The CLI service is available via the `cli` profile:
```bash
# Run onboarding wizard
docker compose run --rm --service-ports moltbot-cli onboard
# List providers
docker compose run --rm moltbot-cli providers list
# Send a message
docker compose run --rm moltbot-cli message send --to +1234567890 --message "Hello"
# Check health
docker compose run --rm moltbot-cli health --port 18789
```
## Security Considerations
1. **Gateway Token**: Keep your gateway token secure. This is the authentication method for the Control UI and WebSocket connections.
2. **DM Access**: By default, MoltBot uses pairing mode for direct messages from unknown senders. They receive a pairing code that you must approve.
3. **Network Exposure**: If exposing the gateway beyond localhost, use proper authentication and encryption:
- Set up Tailscale for secure remote access
- Use SSH tunnels
- Implement reverse proxy with HTTPS and authentication
4. **API Keys**: Never commit API keys to version control. Use `.env` file or secrets management.
5. **Sandbox Mode**: For group/channel safety, enable sandbox mode to run non-main sessions in Docker containers.
## Advanced Configuration
### Resource Limits
Adjust CPU and memory limits in `.env`:
```env
MOLTBOT_CPU_LIMIT=2.0
MOLTBOT_MEMORY_LIMIT=2G
MOLTBOT_CPU_RESERVATION=1.0
MOLTBOT_MEMORY_RESERVATION=1G
```
### Persistent Data
Data is stored in two Docker volumes:
- `moltbot_config`: Configuration files and credentials (~/.clawdbot)
- `moltbot_workspace`: Agent workspace and skills (~/clawd)
To backup your data:
```bash
docker run --rm -v moltbot_config:/data -v $(pwd):/backup alpine tar czf /backup/moltbot-config-backup.tar.gz /data
docker run --rm -v moltbot_workspace:/data -v $(pwd):/backup alpine tar czf /backup/moltbot-workspace-backup.tar.gz /data
```
### Custom Configuration File
Create a custom config file at `~/.clawdbot/moltbot.json` (inside the container):
```json
{
"agents": {
"defaults": {
"model": {
"primary": "anthropic/claude-opus-4-5",
"fallbacks": ["anthropic/claude-sonnet-4-5", "openai/gpt-4o"]
}
}
}
}
```
## Troubleshooting
### Gateway Won't Start
1. Check logs: `docker compose logs moltbot-gateway`
2. Verify gateway token is set in `.env`
3. Ensure port 18789 is not already in use
### Can't Access Control UI
1. Verify gateway bind setting matches your access method
2. Check firewall rules if accessing from another machine
3. Ensure container is healthy: `docker compose ps`
### Model API Errors
1. Verify API keys are correctly set in `.env`
2. Check API key validity and quota
3. Review logs for specific error messages
### Run Doctor Command
The doctor command helps diagnose common issues:
```bash
docker compose run --rm moltbot-cli doctor
```
## Documentation
- [Official Website](https://molt.bot)
- [Full Documentation](https://docs.molt.bot)
- [Getting Started Guide](https://docs.molt.bot/start/getting-started)
- [Configuration Reference](https://docs.molt.bot/gateway/configuration)
- [Security Guide](https://docs.molt.bot/gateway/security)
- [Docker Installation](https://docs.molt.bot/install/docker)
- [GitHub Repository](https://github.com/moltbot/moltbot)
## License
MoltBot is released under the MIT License. See the [LICENSE](https://github.com/moltbot/moltbot/blob/main/LICENSE) file for details.
## Community
- [Discord](https://discord.gg/clawd)
- [GitHub Discussions](https://github.com/moltbot/moltbot/discussions)
- [Issues](https://github.com/moltbot/moltbot/issues)