Bot Fleet Map

Discord, Telegram, Slack. Live-verified 2026-06-19 by hitting each platform API and probing every box. Private.

27
Discord bots (all live)
4
Telegram bots that ANSWER
10
Telegram bots to delete/retire
1
Slack app live (art)
5
servers involved
The root of the mess: bot tokens live in TWO places that disagree. The central MASTER_API_KEYS.env (synced to all boxes) has stale copies, while each box also keeps its own ~/.hermes/profiles/<x>/.env with different, sometimes still-live tokens. That is why @MacHermes and @Herman read "dead" centrally but actually answer on their box. Step one of any cleanup: pick ONE token store.

Telegram bots

BotStatusLives on / processWhat it WASWhat it CAN BESuggestion
@HQ_Oliver223botANSWERSHetzner, tg-oliver.service (token HETZNER_OLIVER_TG_TOKEN)Primary two-way command bot. Long live thread Jun 17 to nowYour single Telegram command botKEEP (the one)
@ClawControl223botLIVEHetzner, claudeclaw-os (PM2)ClaudeClaw OS alerts firehose (deploys, POWD, job pings)Alerts-only channelKEEP (alerts)
@MacHermes223_botANSWERSMac, Hermes gateway mac-main (live per-profile token)Mac Hermes gateway botFold into command bot, or retireRETIRE (dup runtime)
@Herman223botANSWERSvps3, Hermes gateway prod (live per-profile token)VPS3 Hermes relayRetire, vps3 adds nothingRETIRE (zombie node)
@Merlinoz223_botSEND ONLYnowhere (legacy), token live but no listenerOriginal "main" Mike botNothingDELETE
@Homiez223botSEND ONLYnowhere, no listener (your reply sat unread)"Homie" test botNothingDELETE
@MatteoJRbotIDLEvps1, gateway-matteo-jr configured but NOT runningMatteo JR specialist on vps1Revive only if you use vps1DELETE unless needed
@AvaMerlinoBotDEAD TOKENnone. central token 404Ava EA thread bot (your 3-bot design)Reissue if you want an EA botREISSUE or DELETE
@Oliver223botDEAD TOKENnone (Mac OliverOscar, retired)Fleet to Mike notify botNothing, @HQ_Oliver replaces itDELETE
@Ava_botz223_botDEAD TOKENnoneOlder Ava botNothingDELETE
@HermesmerlinobotDEAD TOKENnoneGeneric Hermes botNothingDELETE
@Cloudyhermes223botDEAD TOKENnoneHerc Hermes (VPS worker)NothingDELETE
@Architectz223_botDEAD TOKENnoneArchitect agent botNothingDELETE
@olivertest223botDEAD TOKENnoneOliver test botNothingDELETE

Discord bots

27 distinct bots, ALL live, all on one server (guild 1478784669515255994), all managed from ONE place. This side is clean.

StatusLives on / processDetailSuggestion
ALL LIVEHetzner, fleet-discord-presence.serviceKeeps all 27 agent bots online 24/7 (presence). Oliver, Ava, Architect, Petey, Vox, Sherlock, Gino, Matteo JR, Automa, Carlos, Cody, Dan, Einstein, Frankie, Ghost, Hawkeye, Knox, Linx, Memz, Merlin, Picasso, Queen, Raven, Shakespeare, Spielberg, Tommy, WillieKEEP all
TWO-WAYHetzner, discord-oliver.serviceDiscord Oliver responds + DMs reply as the agentKEEP

Slack

IdentityStatusDetailSuggestion
art (Art O app)LIVEFleet reporting relay / Ascend Behavioral Health dashboard. Workspace Merlino Marketing. Vercel cron 9 AM UTCKEEP
michael_merlinoLIVEYour user tokenKEEP
SLACK_BOT_TOKENDEADaccount_inactive, stalePURGE

What runs on which server

ServerRoleBots / processes runningSuggestion
Hetzner
37.27.102.230
The brain. Only box running real bot daemonstg-oliver (@HQ_Oliver223bot), discord-oliver (Oliver), fleet-discord-presence (27 Discord), claudeclaw-os (@ClawControl223bot), agentmail-oliver, inbox-dispatcher, nova-daemon, ghost-engine, audit-engineKEEP as the single hub
Mac StudioCluttered. Two runtimes overlappingHermes gateway (@MacHermes223_bot) + OpenClaw gateway/Chrome/api-bridge (RETIRED, still running) + ~15 com.merlino.* launchd jobs (paperclip, kanban-tunnel, chat-digest, fleet-broker, productos, claude-link-all, mike-memory-tree, hermes-bridge, hermes-dashboard) + ollama + Slack appCLEAN: kill OpenClaw + most launchd jobs
vps2
Hostinger
Second worker stack (redundant)PM2 claudeclaw + warroom (:7860) + OpenClaw gateway (:18789) + Hermes gateway (oliver, no Telegram)CONSOLIDATE into Hetzner
vps3
Hostinger
Zombie Hermes nodeHermes gateway prod (@Herman223bot) + codex app-server + ghl-sopRETIRE Hermes relay
vps1
Hostinger
Config onlyHermes profiles for all 27 agents present, NOTHING runningidle, decide keep or wipe

My suggestion

  1. Telegram = 2 bots, period. @HQ_Oliver223bot as your one command bot (Hetzner), @ClawControl223bot as alerts. Delete the other 12 in @BotFather. If you want an EA bot, reissue @AvaMerlinoBot as the only addition.
  2. Kill the duplicate runtimes. Mac OpenClaw is retired but still running, vps2 OpenClaw + Hermes and vps3 Hermes (@Herman) all duplicate what Hetzner Oliver already does. Shut them down. @MacHermes and @Herman go with them.
  3. One token store. Make MASTER_API_KEYS.env the only source of truth, refresh it with the real live tokens, and stop the per-box profile .env files from holding their own copies. This is what is confusing you.
  4. Discord: leave it. 27 bots, one server, one service on Hetzner. It is the clean part. Do not touch.
  5. Slack: keep art, purge the dead token.
  6. End state: Hetzner runs everything. Telegram has 2 (or 3) bots. Mac becomes your workstation again, not a server. vps1/2/3 either wiped or kept purely as workers with no bot identities.

Source data: D:/Ecosystem/secrets/bot-master-dataset.json + .csv, BOT-INVENTORY-2026-06-18.md. Come back with what you want and I execute it.