When using macOS app with WhatsApp issues: 1. Run pnpm gateway:watch (Node instead of bun) 2. Enable 'External gateway' in app debug settings Verified gateway:watch command exists in package.json
406 lines
12 KiB
Markdown
406 lines
12 KiB
Markdown
---
|
|
summary: "Frequently asked questions about Clawdis setup, configuration, and usage"
|
|
---
|
|
# FAQ 🦞
|
|
|
|
Common questions from the community. For detailed configuration, see [configuration.md](./configuration.md).
|
|
|
|
## Installation & Setup
|
|
|
|
### Where does Clawdis store its data?
|
|
|
|
Everything lives under `~/.clawdis/`:
|
|
|
|
| Path | Purpose |
|
|
|------|---------|
|
|
| `~/.clawdis/clawdis.json` | Main config (JSON5) |
|
|
| `~/.clawdis/credentials/` | WhatsApp/Telegram auth tokens |
|
|
| `~/.clawdis/sessions/` | Conversation history & state |
|
|
| `~/.clawdis/sessions/sessions.json` | Session metadata |
|
|
|
|
Your **workspace** (AGENTS.md, memory files, skills) is separate — configured via `agent.workspace` in your config (default: `~/clawd`).
|
|
|
|
### What platforms does Clawdis run on?
|
|
|
|
**macOS and Linux** are the primary targets. Anywhere Node.js 22+ runs should work in theory.
|
|
|
|
- **macOS** — Fully supported, most tested
|
|
- **Linux** — Works great, common for VPS/server deployments
|
|
- **Windows** — Should work but largely untested! You're in pioneer territory 🤠
|
|
|
|
Some features are platform-specific:
|
|
- **iMessage** — macOS only (uses `imsg` CLI)
|
|
- **Clawdis.app** — macOS native app (optional, gateway works without it)
|
|
|
|
### I'm getting "unauthorized" errors on health check
|
|
|
|
You need a config file. Run the onboarding wizard:
|
|
|
|
```bash
|
|
pnpm clawdis onboard
|
|
```
|
|
|
|
This creates `~/.clawdis/clawdis.json` with your API keys, workspace path, and owner phone number.
|
|
|
|
### How do I start fresh?
|
|
|
|
```bash
|
|
# Backup first (optional)
|
|
cp -r ~/.clawdis ~/.clawdis-backup
|
|
|
|
# Remove config and credentials
|
|
rm -rf ~/.clawdis
|
|
|
|
# Re-run onboarding
|
|
pnpm clawdis onboard
|
|
pnpm clawdis login
|
|
```
|
|
|
|
### Something's broken — how do I diagnose?
|
|
|
|
Run the doctor:
|
|
|
|
```bash
|
|
pnpm clawdis doctor
|
|
```
|
|
|
|
It checks your config, skills status, and gateway health. It can also restart the gateway daemon if needed.
|
|
|
|
### Terminal onboarding vs macOS app?
|
|
|
|
**Use terminal onboarding** (`pnpm clawdis onboard`) — it's more stable right now.
|
|
|
|
The macOS app onboarding is still being polished and can have quirks (e.g., WhatsApp 515 errors, OAuth issues).
|
|
|
|
---
|
|
|
|
## Authentication
|
|
|
|
### OAuth vs API key — what's the difference?
|
|
|
|
- **OAuth** — Uses your Claude Pro/Max subscription ($20-100/mo flat). No per-token charges. ✅ Recommended!
|
|
- **API key** — Pay-per-token via console.anthropic.com. Can get expensive fast.
|
|
|
|
They're **separate billing**! An API key does NOT use your subscription.
|
|
|
|
**For OAuth:** During onboarding, pick "Anthropic OAuth", log in to your Claude account, paste the code back.
|
|
|
|
**If OAuth fails** (headless/container): Do OAuth on a normal machine, then copy `~/.clawdis/` to your server. The auth is just a JSON file.
|
|
|
|
### OAuth callback not working (containers/headless)?
|
|
|
|
OAuth needs the callback to reach the machine running the CLI. Options:
|
|
|
|
1. **Copy auth manually** — Run OAuth on your laptop, copy `~/.clawdis/credentials/` to the container.
|
|
2. **SSH tunnel** — `ssh -L 18789:localhost:18789 user@server`
|
|
3. **Tailscale** — Put both machines on your tailnet.
|
|
|
|
---
|
|
|
|
## Migration & Deployment
|
|
|
|
### How do I migrate Clawdis to a new machine (or VPS)?
|
|
|
|
1. **Backup on old machine:**
|
|
```bash
|
|
# Config + credentials + sessions
|
|
tar -czvf clawdis-backup.tar.gz ~/.clawdis
|
|
|
|
# Your workspace (memories, AGENTS.md, etc.)
|
|
tar -czvf workspace-backup.tar.gz ~/path/to/workspace
|
|
```
|
|
|
|
2. **Copy to new machine:**
|
|
```bash
|
|
scp clawdis-backup.tar.gz workspace-backup.tar.gz user@new-machine:~/
|
|
```
|
|
|
|
3. **Restore on new machine:**
|
|
```bash
|
|
cd ~
|
|
tar -xzvf clawdis-backup.tar.gz
|
|
tar -xzvf workspace-backup.tar.gz
|
|
```
|
|
|
|
4. **Install Clawdis** (Node 22+, pnpm, clone repo, `pnpm install && pnpm build`)
|
|
|
|
5. **Start gateway:**
|
|
```bash
|
|
pnpm clawdis gateway
|
|
```
|
|
|
|
**Note:** WhatsApp may notice the IP change and require re-authentication. If so, run `pnpm clawdis login` again. Stop the old instance before starting the new one to avoid conflicts.
|
|
|
|
### Can I run Clawdis in Docker?
|
|
|
|
There's no official Docker setup yet, but it works. Key considerations:
|
|
|
|
- **WhatsApp login:** QR code works in terminal — no display needed.
|
|
- **Persistence:** Mount `~/.clawdis/` and your workspace as volumes.
|
|
- **pnpm doesn't persist:** Global npm installs don't survive container restarts. Install pnpm in your startup script.
|
|
- **Browser automation:** Optional. If needed, install headless Chrome + Playwright deps, or connect to a remote browser via `--remote-debugging-port`.
|
|
|
|
**Volume mappings (e.g., Unraid):**
|
|
```
|
|
/mnt/user/appdata/clawdis/config → /root/.clawdis
|
|
/mnt/user/appdata/clawdis/workspace → /root/clawd
|
|
/mnt/user/appdata/clawdis/app → /app
|
|
```
|
|
|
|
**Startup script (`start.sh`):**
|
|
```bash
|
|
#!/bin/bash
|
|
npm install -g pnpm
|
|
cd /app
|
|
pnpm clawdis gateway
|
|
```
|
|
|
|
**Container command:**
|
|
```
|
|
bash /app/start.sh
|
|
```
|
|
|
|
Docker support is on the roadmap — PRs welcome!
|
|
|
|
### Can I run Clawdis headless on a VPS?
|
|
|
|
Yes! The terminal QR code login works fine over SSH. For long-running operation:
|
|
|
|
- Use `pm2`, `systemd`, or a `launchd` plist to keep the gateway running.
|
|
- Consider Tailscale for secure remote access.
|
|
|
|
### bun binary vs Node runtime?
|
|
|
|
Clawdis can run as:
|
|
- **bun binary** — Single executable, easy distribution, auto-restarts via launchd
|
|
- **Node runtime** (`pnpm clawdis gateway`) — More stable for WhatsApp
|
|
|
|
If you see WebSocket errors like `ws.WebSocket 'upgrade' event is not implemented`, use Node instead of the bun binary. Bun's WebSocket implementation has edge cases that can break WhatsApp (Baileys).
|
|
|
|
**For stability:** Use launchd (macOS) or the Clawdis.app — they handle process supervision (auto-restart on crash).
|
|
|
|
**For debugging:** Use `pnpm gateway:watch` for live reload during development.
|
|
|
|
### WhatsApp keeps disconnecting / crashing (macOS app)
|
|
|
|
This is often the bun WebSocket issue. Workaround:
|
|
|
|
1. Run gateway with Node instead:
|
|
```bash
|
|
pnpm gateway:watch
|
|
```
|
|
2. In **Clawdis.app → Settings → Debug**, check **"External gateway"**
|
|
3. The app now connects to your Node gateway instead of spawning bun
|
|
|
|
This is the most stable setup until bun's WebSocket handling improves.
|
|
|
|
---
|
|
|
|
## Multi-Instance & Contexts
|
|
|
|
### Can I run multiple Clawds (separate instances)?
|
|
|
|
The intended design is **one Clawd, one identity**. Rather than running separate instances:
|
|
|
|
- **Add skills** — Give your Clawd multiple capabilities (business + fitness + personal).
|
|
- **Use context switching** — "Hey Clawd, let's talk about fitness" within the same conversation.
|
|
- **Use groups for separation** — Create Telegram/Discord groups for different contexts; each group gets its own session.
|
|
|
|
Why? A unified assistant knows your whole context. Your fitness coach knows when you've had a stressful work week.
|
|
|
|
If you truly need full separation (different users, privacy boundaries), you'd need:
|
|
- Separate config directories
|
|
- Separate gateway ports
|
|
- Separate phone numbers for WhatsApp (one number = one account)
|
|
|
|
### Can I have separate "threads" for different topics?
|
|
|
|
Currently, sessions are per-chat:
|
|
- Each WhatsApp/Telegram DM = one session
|
|
- Each group = separate session
|
|
|
|
**Workaround:** Create multiple groups (even just you + the bot) for different contexts. Each group maintains its own session.
|
|
|
|
Feature request? Open a [GitHub discussion](https://github.com/steipete/clawdis/discussions)!
|
|
|
|
### How do groups work?
|
|
|
|
Groups get separate sessions automatically. By default, the bot requires a **mention** to respond in groups.
|
|
|
|
Per-group activation can be changed by the owner:
|
|
- `/activation mention` — respond only when mentioned (default)
|
|
- `/activation always` — respond to all messages
|
|
|
|
See [groups.md](./groups.md) for details.
|
|
|
|
---
|
|
|
|
## Context & Memory
|
|
|
|
### How much context can Clawdis handle?
|
|
|
|
Claude Opus has a 200k token context window, and Clawdis uses **autocompaction** — older conversation gets summarized to stay under the limit.
|
|
|
|
Practical tips:
|
|
- Keep `AGENTS.md` focused, not bloated.
|
|
- Use `/new` to reset the session when context gets stale.
|
|
- For large memory/notes collections, use search tools like `qmd` rather than loading everything.
|
|
|
|
### Where are my memory files?
|
|
|
|
In your workspace directory (configured in `agent.workspace`, default `~/clawd`). Look for:
|
|
- `memory/` — daily memory files
|
|
- `AGENTS.md` — agent instructions
|
|
- `TOOLS.md` — tool-specific notes
|
|
|
|
Check your config:
|
|
```bash
|
|
cat ~/.clawdis/clawdis.json | grep workspace
|
|
```
|
|
|
|
---
|
|
|
|
## Platforms
|
|
|
|
### Which platforms does Clawdis support?
|
|
|
|
- **WhatsApp** — Primary. Uses WhatsApp Web protocol.
|
|
- **Telegram** — Via Bot API (grammY).
|
|
- **Discord** — Bot integration.
|
|
- **iMessage** — Via `imsg` CLI (macOS only).
|
|
- **Signal** — Via `signal-cli` (see [signal.md](./signal.md)).
|
|
- **WebChat** — Browser-based chat UI.
|
|
|
|
### Can I use multiple platforms at once?
|
|
|
|
Yes! One Clawdis gateway can connect to WhatsApp, Telegram, Discord, and more simultaneously. Each platform maintains its own sessions.
|
|
|
|
### WhatsApp: Can I use two numbers?
|
|
|
|
One WhatsApp account = one phone number = one gateway connection. For a second number, you'd need a second gateway instance with a separate config directory.
|
|
|
|
---
|
|
|
|
## Skills & Tools
|
|
|
|
### How do I add new skills?
|
|
|
|
Skills are auto-discovered from your workspace's `skills/` folder. After adding new skills:
|
|
|
|
1. Send `/reset` (or `/new`) in chat to start a new session
|
|
2. The new skills will be available
|
|
|
|
No gateway restart needed!
|
|
|
|
### How do I run commands on other machines?
|
|
|
|
Use **[Tailscale](https://tailscale.com/)** to create a secure network between your machines:
|
|
|
|
1. Install Tailscale on all machines (it's separate from Clawdis — set it up yourself)
|
|
2. Each gets a stable IP (like `100.x.x.x`)
|
|
3. SSH just works: `ssh user@100.x.x.x "command"`
|
|
|
|
Clawdis can use Tailscale when you set `bridge.bind: "tailnet"` in your config — it auto-detects your Tailscale IP.
|
|
|
|
For deeper integration, look into **Clawdis nodes** — pair remote machines with your gateway for camera/screen/automation access.
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Build errors (TypeScript)
|
|
|
|
If you hit build errors on `main`:
|
|
|
|
1. Pull latest: `git pull origin main && pnpm install`
|
|
2. Try `pnpm clawdis doctor`
|
|
3. Check [GitHub issues](https://github.com/steipete/clawdis/issues) or Discord
|
|
4. Temporary workaround: checkout an older commit
|
|
|
|
### WhatsApp logged me out
|
|
|
|
WhatsApp sometimes disconnects on IP changes or after updates. Re-authenticate:
|
|
|
|
```bash
|
|
pnpm clawdis login
|
|
```
|
|
|
|
Scan the QR code and you're back.
|
|
|
|
### Gateway won't start
|
|
|
|
Check logs:
|
|
```bash
|
|
cat /tmp/clawdis/clawdis-$(date +%Y-%m-%d).log
|
|
```
|
|
|
|
Common issues:
|
|
- Port already in use (change with `--port`)
|
|
- Missing API keys in config
|
|
- Invalid config syntax (remember it's JSON5, but still check for errors)
|
|
|
|
**Debug mode** — use watch for live reload:
|
|
```bash
|
|
pnpm gateway:watch
|
|
```
|
|
|
|
**Pro tip:** Use Codex to debug:
|
|
```bash
|
|
cd ~/path/to/clawdis
|
|
codex --full-auto "debug why clawdis gateway won't start"
|
|
```
|
|
|
|
### Processes keep restarting after I kill them (Linux)
|
|
|
|
Something is supervising them. Check:
|
|
|
|
```bash
|
|
# systemd?
|
|
systemctl list-units | grep -i clawdis
|
|
sudo systemctl stop clawdis
|
|
|
|
# pm2?
|
|
pm2 list
|
|
pm2 delete all
|
|
```
|
|
|
|
Stop the supervisor first, then the processes.
|
|
|
|
### Clean uninstall (start fresh)
|
|
|
|
```bash
|
|
# Stop processes
|
|
pkill -f "clawdis"
|
|
|
|
# If using systemd
|
|
sudo systemctl stop clawdis
|
|
sudo systemctl disable clawdis
|
|
|
|
# Remove data
|
|
rm -rf ~/.clawdis
|
|
|
|
# Remove repo and re-clone
|
|
rm -rf ~/clawdis
|
|
git clone https://github.com/steipete/clawdis.git
|
|
cd clawdis && pnpm install && pnpm build
|
|
pnpm clawdis onboard
|
|
```
|
|
|
|
---
|
|
|
|
## Chat Commands
|
|
|
|
Quick reference (send these in chat):
|
|
|
|
| Command | Action |
|
|
|---------|--------|
|
|
| `/status` | Health + session info |
|
|
| `/new` or `/reset` | Reset the session |
|
|
| `/think <level>` | Set thinking level (off\|minimal\|low\|medium\|high) |
|
|
| `/verbose on\|off` | Toggle verbose mode |
|
|
| `/activation mention\|always` | Group activation (owner-only) |
|
|
|
|
---
|
|
|
|
*Still stuck? Ask in [Discord](https://discord.gg/qkhbAGHRBT) or open a [GitHub discussion](https://github.com/steipete/clawdis/discussions).* 🦞
|