openclaw/docs/moltmates/faq.md
Robby 7f24653e0a docs: add comprehensive Moltmates documentation section
- Landing page with overview and comparison
- Extensive FAQ (60+ questions)
- Step-by-step setup guide
- Security documentation
- Personas customization guide
2026-01-28 12:59:38 +00:00

548 lines
12 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
summary: "Moltmates FAQ - Comprehensive answers to common questions"
read_when:
- Troubleshooting Moltmates issues
- Understanding how Moltmates works
- Comparing Moltmates to alternatives
---
# 🦞 Moltmates FAQ
> Comprehensive answers to frequently asked questions about Moltmates.
---
## General Questions
### What is Moltmates?
**Moltmates** is a multi-user fork of [Moltbot](https://github.com/moltbot/moltbot) that lets you run AI assistants for multiple people from a single server. Each user gets their own isolated workspace and Docker sandbox.
### How is Moltmates different from Moltbot?
| Aspect | Moltbot | Moltmates |
|--------|---------|-----------|
| Target use | Single user (you) | Multiple users (family/team) |
| Workspace | One shared | Per-user isolation |
| Security | Trusts the user | Zero-trust sandboxing |
| Personas | One bot personality | User-selectable personas |
| Execution | Direct on host | Docker containers |
### Is Moltmates free?
Yes! Moltmates is open source (MIT license). You only pay for:
- **API costs** — Anthropic/OpenAI usage
- **Server** — VPS or home server
- **Optional:** Domain, SSL, etc.
### What AI models can I use?
Moltmates supports all models Moltbot supports:
- **Anthropic:** Claude 3.5 Sonnet, Claude 3 Opus, Claude 4 (when available)
- **OpenAI:** GPT-4o, GPT-4 Turbo, o1, o1-mini
- **Local:** Ollama, llama.cpp, vLLM
- **Other:** Groq, Together, Perplexity, etc.
### Do users share context?
**No.** Each user has completely isolated:
- Conversation history
- Memory files (MEMORY.md)
- Workspace files
- Session state
- Docker container
User A cannot see User B's conversations or files.
---
## Setup & Installation
### What are the system requirements?
**Minimum:**
- 2 CPU cores
- 4 GB RAM
- 20 GB disk
- Docker installed
- Node.js ≥22
**Recommended:**
- 4+ CPU cores
- 8+ GB RAM
- 50+ GB SSD
- Docker with BuildKit
### How do I install Moltmates?
```bash
# Clone
git clone https://github.com/YOUR_FORK/moltmates
cd moltmates
# Install dependencies
pnpm install
# Build
pnpm build
# Build sandbox image
docker build -f Dockerfile.sandbox -t moltmate-sandbox:bookworm-slim .
# Configure
cp ~/.moltmate/moltmate.example.json ~/.moltmate/moltmate.json
nano ~/.moltmate/moltmate.json
# Start
pnpm dev # or systemctl start moltmate
```
### How do I add a new user?
1. Get their Telegram/Discord/WhatsApp ID
2. Add to config:
```json
"channels": {
"telegram": {
"allowFrom": ["existing_id", "NEW_USER_ID"]
}
}
```
3. Restart: `systemctl restart moltmate`
4. User messages bot → onboarding starts
### How do I remove a user?
1. Remove their ID from `allowFrom`
2. Delete their workspace:
```bash
rm -rf ~/.moltmate/users/telegram_THEIR_ID/
```
3. Restart: `systemctl restart moltmate`
### How do I reset a user's workspace?
```bash
# Remove their workspace (they keep their allowlist entry)
rm -rf ~/.moltmate/users/telegram_THEIR_ID/
# Next message triggers fresh onboarding
```
---
## Security & Isolation
### How does sandbox isolation work?
Each user's agent runs in a Docker container with:
- **No network access** (optional)
- **Read-only root filesystem**
- **Isolated /tmp and workspace**
- **Allowlisted binaries only**
- **No access to host filesystem**
### What can users execute?
Only explicitly allowed commands:
```json
"exec": {
"security": "allowlist",
"safeBins": ["cat", "head", "tail", "grep", "wc", "pdftotext"]
}
```
Anything not in `safeBins` is blocked.
### Can users see each other's data?
**No.** Isolation is enforced at multiple levels:
1. **Session routing** — Messages go to correct user's session
2. **Workspace isolation** — Each user has own directory
3. **Docker containers** — Separate container per session
4. **Memory files** — Stored in user-specific paths
### What if a user tries to "jailbreak" the AI?
Several protections:
1. **Sandbox limits damage** — Even if jailbroken, can't access host
2. **Allowlisted tools** — Can't run arbitrary commands
3. **No network** (optional) — Can't exfiltrate data
4. **Session isolation** — Can't affect other users
### Is my API key safe?
API keys are:
- Stored in config on host (not in sandbox)
- Injected at runtime via environment
- Never visible to user agents
- Not logged or exposed
---
## Personas & Customization
### How do personas work?
On first message, users choose a persona:
```
1. ✨ Custom - Describe your own
2. 🦎 Cami - Warm and adaptive
3. 🦀 Molty - Direct and reliable
```
The selected persona template is copied to their `SOUL.md`.
### How do I add a new persona?
1. Create template in `templates/souls/`:
```bash
nano /root/moltmates/templates/souls/my-persona.md
```
2. Update `src/users/persona-setup.ts`:
```typescript
const PERSONAS = {
custom: { emoji: "✨", file: "custom.md" },
cami: { emoji: "🦎", file: "cami.md" },
molty: { emoji: "🦀", file: "molty.md" },
my_persona: { emoji: "🎭", file: "my-persona.md" } // Add
};
```
3. Rebuild: `pnpm build`
4. Restart: `systemctl restart moltmate`
### Can users change their persona later?
Yes, they can:
1. Edit their `SOUL.md` directly (if they have workspace access)
2. Ask the bot to update its personality
3. Have you reset their workspace for re-onboarding
### How do I edit a user's persona?
```bash
nano ~/.moltmate/users/telegram_THEIR_ID/SOUL.md
# Edit personality
systemctl restart moltmate
```
---
## Docker & Containers
### How do I check if sandbox is working?
```bash
# See running containers
docker ps | grep moltmate
# Should show: moltmate-sbx-SESSION_ID
```
### How do I add tools to the sandbox?
1. Edit `Dockerfile.sandbox`:
```dockerfile
RUN apt-get update && apt-get install -y \
poppler-utils \ # for pdftotext
NEW_PACKAGE \ # add here
&& rm -rf /var/lib/apt/lists/*
```
2. Rebuild image:
```bash
docker build -f Dockerfile.sandbox -t moltmate-sandbox:bookworm-slim .
```
3. Add to safeBins in config:
```json
"safeBins": ["cat", "head", "pdftotext", "NEW_BINARY"]
```
4. Restart: `systemctl restart moltmate`
### Container won't start — what do I do?
```bash
# Stop orphaned containers
docker stop $(docker ps -q --filter name=moltmate-sbx)
# Remove them
docker rm $(docker ps -aq --filter name=moltmate-sbx)
# Restart gateway
systemctl restart moltmate
# Check logs
journalctl -u moltmate -f
```
### How much disk space do containers use?
- **Base image:** ~150 MB
- **Per container:** ~50-100 MB (ephemeral)
- **Workspaces:** Varies by user (typically <100 MB each)
Containers are ephemeral they don't persist state between restarts.
---
## Channels & Messaging
### Which channels are supported?
All Moltbot channels work:
- **Telegram** (recommended)
- 💬 **WhatsApp** (via Baileys)
- 🎮 **Discord**
- 💼 **Slack**
- 📧 **Google Chat**
- 📱 **iMessage** (macOS only)
- 🔒 **Signal**
- 🏢 **Microsoft Teams**
- 🔌 **Mattermost** (plugin)
### Can different users use different channels?
Yes! User A can use Telegram while User B uses Discord. Isolation is per-user, not per-channel.
### How do I set up Telegram?
1. Create bot via [@BotFather](https://t.me/BotFather)
2. Get token
3. Add to config:
```json
"channels": {
"telegram": {
"botToken": "123456:ABC-DEF...",
"dmPolicy": "allowlist",
"allowFrom": ["YOUR_TELEGRAM_ID"]
}
}
```
4. Get your ID from [@userinfobot](https://t.me/userinfobot)
### How do I enable group chats?
```json
"channels": {
"telegram": {
"groupPolicy": "allowlist",
"groups": {
"allowFrom": ["GROUP_CHAT_ID"]
}
}
}
```
---
## Memory & Storage
### Where is user data stored?
```
~/.moltmate/
├── moltmate.json # Main config
├── users/
│ ├── telegram_123456/ # User A
│ │ ├── SOUL.md # Personality
│ │ ├── USER.md # Profile
│ │ ├── MEMORY.md # Notes
│ │ └── memory/ # Daily logs
│ └── telegram_789012/ # User B
│ └── ...
└── skills/ # Shared skills
```
### How do I backup user data?
```bash
# Backup all users
tar -czf moltmates-backup-$(date +%Y%m%d).tar.gz ~/.moltmate/users/
# Backup specific user
tar -czf user-123-backup.tar.gz ~/.moltmate/users/telegram_123456/
```
### How do I restore from backup?
```bash
# Extract backup
tar -xzf moltmates-backup-20260128.tar.gz -C ~/
# Restart
systemctl restart moltmate
```
### Does the AI remember conversations?
Yes, via:
1. **Session history** Recent messages in context
2. **MEMORY.md** Important notes the AI saves
3. **memory/*.md** Daily logs (if configured)
Memory is per-user and isolated.
---
## Troubleshooting
### Bot doesn't respond to messages
1. Check gateway is running: `systemctl status moltmate`
2. Check logs: `journalctl -u moltmate -f`
3. Verify user is in `allowFrom`
4. Check channel connection (Telegram token valid, etc.)
### "exec not working" error
1. Verify `exec` is in `tools.allow`:
```json
"tools": { "allow": ["read", "write", "edit", "exec", ...] }
```
2. Check `safeBins` includes the command
3. Verify binary exists in sandbox:
```bash
docker run --rm moltmate-sandbox:bookworm-slim which COMMAND
```
### User stuck in onboarding loop
```bash
# Reset their workspace
rm -rf ~/.moltmate/users/telegram_THEIR_ID/
# They'll get fresh onboarding on next message
```
### API rate limits / errors
1. Check your API quota (Anthropic/OpenAI dashboard)
2. Consider adding rate limits in config
3. Use cheaper model for non-critical users
4. Set up model fallbacks
### High memory usage
```bash
# Check container memory
docker stats
# Limit container memory in Dockerfile or compose
# Or reduce concurrent sessions
```
---
## Advanced Topics
### How do I run multiple instances?
Use different ports and state directories:
```bash
# Instance 1 (port 18789)
MOLTMATE_STATE_DIR=~/.moltmate-1 moltmate gateway --port 18789
# Instance 2 (port 18790)
MOLTMATE_STATE_DIR=~/.moltmate-2 moltmate gateway --port 18790
```
### Can I use different models per user?
Yes, via config overrides:
```json
"agents": {
"main": {
"model": "claude-sonnet-4-5"
}
}
```
Or let users set via `/model` command if enabled.
### How do I monitor usage?
```bash
# Check logs
journalctl -u moltmate --since "1 hour ago"
# Monitor sessions
moltmate sessions list
# API usage: check provider dashboards
```
### Can users upload files?
Yes, depending on channel:
- **Telegram:** Images, documents, voice
- **Discord:** Attachments
- **WhatsApp:** Media messages
Files are processed in the user's sandbox.
---
## Migration & Updates
### How do I update Moltmates?
```bash
cd /root/moltmates
git pull origin main
pnpm install
pnpm build
systemctl restart moltmate
```
### How do I migrate from Moltbot?
1. Export your Moltbot config
2. Install Moltmates
3. Copy config, adjusting for multi-user settings
4. Copy MEMORY.md and workspace files if desired
5. Test with one user before enabling more
### Breaking changes between versions?
Check CHANGELOG.md before updating. Major changes are documented.
---
## Getting Help
### Where can I get support?
- **GitHub Issues:** File bugs and feature requests
- **Discord:** [discord.gg/clawd](https://discord.gg/clawd)
- **Docs:** [docs.molt.bot](https://docs.molt.bot)
### How do I report a bug?
1. Check existing issues first
2. Include:
- Moltmates version
- Node.js version
- Docker version
- Relevant logs (`journalctl -u moltmate`)
- Steps to reproduce
3. File at GitHub Issues
### How do I contribute?
1. Fork the repo
2. Create feature branch
3. Make changes
4. Test thoroughly
5. Submit PR with clear description
---
**Made with 🦞 by the Moltmates community**