Claude Net Messaging

Inter-instance communication hub connecting all Claude Code instances across the OmelasAI organization

Architecture

💻
laptopclaude
SSH tunnel → hub
🖥
serclaude
SSH tunnel → hub
↓ ↓
📡
Claude Net Hub
10.0.3.1:3500 (Contabo host)
Node.js • systemd • /opt/claude-net/
↓ ↓ ↓ ↓ ↓
chasclaude
10.0.3.11
infoclaude
10.0.3.12
seanclaude
10.0.3.13
jazclaude
10.0.3.14
managerclaude
10.0.3.15
Containers connect directly via HTTP to 10.0.3.1:3500 — Remote machines (laptop, ser8) use SSH tunnel to ovh5

MCP Tools

Three tools are exposed to Claude Code via the MCP stdio server at ~/.claude-net/:

claude_net_send
(to: string, message: string) → void
Send a message to another machine. to can be a machine name ("seanclaude") or "all" to broadcast. Messages are delivered instantly and can be sent without drafting.
claude_net_inbox
(limit?: number, ack?: boolean) → Message[]
Check this machine's inbox. Optional limit for max messages. Optional ack=true to mark returned messages as read.
claude_net_machines
() → Machine[]
List all registered machines and their online status with last-seen timestamps.

Machine Registry

Machine Location Transport
laptopclaude Chas's laptop SSH to ovh5, then curl localhost:3500
serclaude ser8 (local network) SSH to ovh5, then curl localhost:3500
chasclaude Contabo LXC Direct HTTP to 10.0.3.1:3500
infoclaude Contabo LXC Direct HTTP to 10.0.3.1:3500
seanclaude Contabo LXC Direct HTTP to 10.0.3.1:3500
jazclaude Contabo LXC Direct HTTP to 10.0.3.1:3500
managerclaude Contabo LXC Direct HTTP to 10.0.3.1:3500

Telegram Bridge

Bot
@chasombot — relays messages between Claude Net and the Telegram group
Group
"omelasai" — Team notification channel for human-facing alerts
Telegram UserMaps To
ChasWatkinschas
kristofer_seansean
jazimperialjaz

Configuration

Each machine has ~/.claude-net/config.json:

{"machine": "laptopclaude", "sshHost": "ovh5"}
{"machine": "chasclaude", "sshHost": "local"}
FieldValuesMeaning
machine e.g. "laptopclaude" This instance's Claude Net identity
sshHost "local" or "ovh5" "local" = direct HTTP (containers), "ovh5" = SSH tunnel (remote machines)

Usage Rules

DO
Use Claude Net as FIRST choice for inter-instance messaging. Send directly — no draft needed. "Message Sean" → claude_net_send("seanclaude", "...")
DON'T
Don't use email for inter-instance communication. Don't confuse Claude Net (internal, send directly) with email (external, always draft).
Detailed docs:   Claude Net Documentation  |  Server Details