Paste this to any AI assistant (Kodee, Claude, ChatGPT, Gemini) to give them full context on John's Atlas/Cooper setup. All sensitive values (IPs, tokens, keys) have been redacted.
📍 Full secured version (with credentials): hub.highside-re.com/emergency-context.html — requires login
## Atlas/Cooper Infrastructure Context **Who is John Burns:** Commercial real estate developer, Austin TX. Company: Highside Real Estate (HSRE). Also runs Cooper, an AI concierge platform. **Atlas:** John's personal AI agent. Runs on OpenClaw (self-managed, NOT Hostinger-managed) inside a Docker container on a Hostinger KVM4 VPS. Communicates via Telegram (@atlas_hsre_vps_bot) and web UI. Model: Claude Sonnet (Anthropic) via Nexos. Workspace at /data/.openclaw/workspace/ inside the container. **Infrastructure stack:** - VPS: Hostinger KVM4, Ubuntu Linux, self-managed - Container: Docker (ghcr.io/hostinger/hvps-openclaw:latest), name: openclaw-om5j-openclaw-1 - Compose file: /docker/openclaw-om5j/docker-compose.yml on host - Config: /docker/openclaw-om5j/data/.openclaw/openclaw.json (+ .bak through .bak.4) - DNS/CDN: Cloudflare (domains: highside-re.com, meetcooper.ai, meetcooper.com) - Email: Microsoft 365 (jburns@highside-re.com, atlas@highside-re.com) - File storage: OneDrive (primary), Google Drive (personal only) **Critical known issues / rules:** 1. atlas-telegram PM2 process MUST stay STOPPED on host — running it conflicts with OpenClaw's built-in Telegram plugin (409 conflict loop → gateway crash) 2. When changing Telegram bot token, must update openclaw.json AND all .bak files (.bak through .bak.4) — otherwise token reverts on restart 3. sessions.json must stay under 1MB — if it hits 2MB+, gateway crashes on load 4. Code changes to PM2 scripts must go via SSH to host — the container's edit tool writes to a different filesystem (different inodes confirmed) 5. Never docker restart mid-session — kills the gateway. Use docker-compose down && up -d instead. **Cooper Platform:** AI concierge service. 15 agents, each with their own Telegram bot and personality. Agents: Rex (Kent McNeil), Nash (Andy Heard), Finn (Jeff Turnas), Maverick (Chase Belew), Ryder (Michael Broyles), Ramsey (Jack Irvine), Waylon (Josh Lackie), Ricky (Will Ambruzs), Delilah (Charlotte Burns), Bibby (John IV), Tucker (Brinley Burns), Lucy (Kylie Calvert), Honey (Stacy Burns), Charlotte (Jackson Miller), Ace (John Burns personal). **Cooper runs on:** Host VPS PM2 (NOT inside Docker container). Key process: cooper-telegram-multibot (15 bot threads). Script: /data/.openclaw/workspace/scripts/cooper-telegram-handler-multibot.py. Config: /data/.openclaw/workspace/credentials/telegram-bots.json. **Atlas-Cooper relationship:** Atlas manages and maintains Cooper. They are separate — Cooper agents run as Python processes on the host; Atlas runs inside Docker. Atlas reaches Cooper via SSH to host. **How to check system health (run on host via SSH):** - docker ps | grep openclaw → container running? - pm2 list → host processes (multibot, email-poller, oauth-callback, sms-handler should be online; atlas-telegram should be STOPPED) - docker logs openclaw-om5j-openclaw-1 --tail 30 → recent gateway logs - curl https://api.telegram.org/bot[TOKEN]/getMe → token valid? **Atlas model:** Claude Sonnet (default). Opus available for high-stakes tasks (investment memos, legal review, complex analysis) — John approves before use.
openclaw-om5j-openclaw-1
Workspace/data/.openclaw/workspace/ (bind-mounted from host)
atlas-telegram PM2 process MUST stay STOPPED. Running it alongside OpenClaw's built-in plugin causes 409 conflict loop → crash.
ssh -i [key_path] root@[VPS_IP] — key at /data/.ssh/id_ed25519
Disk193GB total | ~35GB used
RAM15.6GB total
openclaw-om5j-openclaw-1
Compose file/docker/openclaw-om5j/docker-compose.yml
Data mount/docker/openclaw-om5j/data → /data inside container
Config filesopenclaw.json + .bak through .bak.4 — ALL must match
Gateway port18789 (internal)
| Process | Should Be | Purpose |
|---|---|---|
cooper-telegram-multibot | ONLINE | 15 Cooper agent bots |
cooper-email-poller | ONLINE | Email polling |
atlas-watchdog | ONLINE | PM2 watchdog |
cooper-oauth-callback | ONLINE | OAuth handler |
cooper-sms-handler | ONLINE | SMS bridge |
atlas-telegram | STOPPED ⛔ | MUST stay stopped |
POST https://meetcooper.ai/api/chat
Agent config/data/.openclaw/workspace/clients/registry.json
Bot config/data/.openclaw/workspace/credentials/telegram-bots.json
Core scriptscripts/cooper-telegram-handler-multibot.py
AI enginescripts/cooper-ai-engine.py
| Agent | Client | Tier |
|---|---|---|
| Rex | Kent McNeil (partner) | Professional |
| Nash | Andy Heard (partner) | Professional |
| Finn | Jeff Turnas | Professional |
| Maverick | Chase Belew | Professional |
| Ryder | Michael Broyles | Professional |
| Ramsey | Jack Irvine (litigator) | Extended trial |
| Waylon | Josh Lackie | Extended trial |
| Ricky | Will Ambruzs | Extended trial |
| Delilah | Charlotte Burns (daughter) | Personal |
| Bibby | John Burns IV (son) | Personal |
| Tucker | Brinley Burns (daughter) | Personal |
| Lucy | Kylie Calvert | Personal |
| Honey | Stacy Burns (wife) | Personal |
| Charlotte | Jackson Miller | Professional |
| Ace | John Burns (personal) | Professional |
ssh root@[VPS_IP] docker ps | grep openclaw
curl "https://api.telegram.org/bot[CURRENT_TOKEN]/getMe"
# Should return: {"ok":true,"result":{"username":"atlas_hsre_vps_bot",...}}
TOKEN="[NEW_TOKEN_FROM_BOTFATHER]"
for f in /docker/openclaw-om5j/data/.openclaw/openclaw.json{,.bak,.bak.1,.bak.2,.bak.3,.bak.4}; do
python3 -c "import json; d=json.load(open('$f')); d['channels']['telegram']['botToken']='$TOKEN'; json.dump(d,open('$f','w'),indent=2)"
done
# Then recreate container:
cd /docker/openclaw-om5j && docker compose down && docker compose up -d
pm2 stop atlas-telegram && pm2 save
pm2 list # cooper-telegram-multibot should be ONLINE tail -5 /root/.pm2/logs/cooper-telegram-multibot-out.log # look for "Health: 15/15"