OpenClaw ReadyMode Bot — Fleet Overview¶
Status as of: 2026-08-06
Lead engineer: Miguel Legarda and Juan Esteban Paez
Version: 2.0 — Python + Playwright + Claude Haiku (replaces original OpenClaw gateway, June 2026)
Quick Reference¶
| Property | Value |
|---|---|
| Interaction channel | Discord (per-agency channel IDs or ticket-channel regex) |
| Infrastructure | AWS EC2 + Docker — one container per agency |
| LLM | Claude Haiku (intent parsing + response phrasing) |
| Browser automation | Playwright (Chromium, headless) |
| Bot framework | Python + nextcord |
| Fleet | 15 containers in operation as of 2026-08-06 |
| Total known accounts | 21 |
| Automated operations | 7 intents + KB fallback |
| Code repository | GitHub — branch-per-agency (agency/<name>) |
What This Is¶
A self-hosted, multi-tenant Discord bot fleet that allows call-center managers to control ReadyMode CRM using natural-language commands in Discord. Each client agency gets its own isolated Docker container with its own bot token, ReadyMode credentials, and Anthropic API key. No operation in one container can affect any other.
This system fully replaced the original OpenClaw Node.js gateway in June 2026. The original system ran a single client (Arpa Growth / arpagrowth.readymode.com) on a DigitalOcean droplet using bash scripts driven by Chrome DevTools Protocol (CDP) and gpt-4.1-mini for intent parsing. The current system is Python + Playwright + Claude Haiku, multi-tenant from the ground up, running on AWS EC2.
Why ReadyMode has no API¶
ReadyMode exposes no public API and actively blocks AI-agent traffic at the API layer. All automation drives the live UI via Playwright (headless Chromium), exactly as a human operator would.
Current Fleet Status¶
| Containers running | Messaging sessions active | Accounts with ticket-channel access |
|---|---|---|
| 15 / 15 | 14 / 14 | 5 verified |
Six additional accounts are known but not yet mounted. Two accounts (Hooper, Surf) had zero inventory as of 2026-08-05 — their ReadyMode dialers had not been populated by the clients yet.
See fleet-status.md for the full per-account table.
7 Automated Operations + KB¶
| Operation | Intent key | Notes |
|---|---|---|
| Create User | create_user |
Account + playlist + state/campaign filters + member assignment |
| Create Playlist | create_playlist |
Standalone playlist without account creation |
| Reset Leads | reset_leads |
Resets leads queue for a specified agent |
| Clear Licenses | clear_licenses |
Signs out inactive users to free ReadyMode licenses |
| User Exists | user_exists |
Confirms whether an agent account exists |
| User Playlist | user_playlist |
Finds which playlist a specific agent belongs to |
| Playlist Members | playlist_members |
Lists all agents assigned to a specific playlist |
| KB Support | kb_support |
Hardcoded Q&A for common ReadyMode questions (bilingual ES/EN, no Playwright) |
kb_support does not open a browser session — it is a direct dictionary lookup via kb.py.
Architecture at a Glance¶
Discord message
→ Bot (nextcord)
→ Validation
→ Intent Parser (Claude Haiku)
→ Dispatcher
→ Executor (Playwright + Chromium)
→ Responder (Claude Haiku)
→ Discord reply
Six layers, strict separation of concerns. See architecture.md for full detail.
Key Constraints¶
- No API. Everything goes through Playwright clicking the ReadyMode UI.
- React SPA. All inputs require the native value setter +
inputevent dispatch pattern. - Global job lock per container. One Playwright session at a time — concurrent ReadyMode logins on the same account kick each other out.
- One container = one agency. A crash in one container does not affect any other.
READYMODE_HEADLESS=falseis production-banned. EC2 has no display; setting it crashes the browser silently.- Queue discovery needs retries. ReadyMode's queue list renders asynchronously; the bot retries up to 6 times before aborting.
Documentation Index¶
| File | Contents |
|---|---|
architecture.md |
6-layer architecture, file structure, branch strategy, deployment |
fleet-status.md |
All 21 accounts — status, inventory, pending items |
operations.md |
Per-operation detail, executor patterns |
engineer-onboarding.md |
Day-1 guide for new engineers |
server-guide.md |
EC2 + Docker + systemd setup and maintenance |
incidents.md |
All incidents and lessons learned |
gap-analysis-roadmap.md |
Open gaps and prioritized roadmap |
security-audit.md |
Server hardening and audit findings |