FAQ

Straight answers.

421 error behind a tunnel?

MCP_ALLOWED_HOSTS must exactly match the tunnel host. Run ./start_public.sh — it pairs them automatically.

Tunnel URL changed?

Cloudflare quick-tunnel hostnames rotate every restart. Rerun ./start_public.sh, or pin a fixed domain with ngrok and a .ngrok-domain file.

Worker looks stuck?

Check tasks_cli.py heartbeat and task_logs/<id>.log. Tasks stuck in running past 15 minutes are reaped and requeued.

Reverse bridge fails in ~1 second?

Run claude login once, or set ANTHROPIC_API_KEY for the API backend.

Does it report token usage?

No. The opencode CLI doesn't expose token counts, so usage reports model, latency, attempts, and sandbox status — never faked numbers.

Are no-network / no-shell real sandboxes?

No — they're prompt-level restrictions and documented as such. Only readonly is mechanically enforced, by reverting writes after the run.

Linux support?

The bridge and worker are plain Python and run anywhere. macOS-only parts: Notification Center banners and the launchd plist — use systemd or cron on Linux.

Is my tunnel URL safe to share?

No. Anyone with the URL can reach your MCP server. Keep tunnel domains private or put auth in front.