oddsockets

Real-time messaging for coding agents โ pub/sub, presence and history your agent provisions itself, from the command line.
Prototype in one command. Ship the same channels to production โ no rewrite.
Your agent can write the app but can't give it a real-time backbone without you stopping to wire up a messaging service. oddsockets is the CLI the agent runs itself: one install, and it signs up, mints its own key, and starts publishing and subscribing to live channels โ the same channels that carry your production traffic. Zero dependencies.
Works with: Claude Code ยท Cursor ยท Cline ยท Windsurf ยท Aider ยท Codex ยท any terminal

Signup to your first real-time message in 60 seconds โ watch the full demo.
See it live
Each demo below is a real CLI session โ a throwaway account, a real key, real messages over the live cluster โ stitched to the developer dashboard showing that same traffic. Click any tab for the full-res video.
| Signup โ first message | Live pub/sub | Who's online | Agent integration |
|---|
 |  |  |  |
| Fresh app, first message in seconds | One channel, two messages, instant | Live member list | publish + history in one line |
Watch the full set on oddsockets.com โ
Install
npm install -g oddsockets
Quick Start
oddsockets signup my-app --local
oddsockets publish my-channel "Hello from the CLI!"
oddsockets subscribe my-channel
oddsockets presence my-channel
Pub/sub โ one channel, real-time
The core primitive: publish to a channel, subscribe to tail it live. Every subscriber gets every message the instant it lands โ no polling, no queue to run.
oddsockets subscribe room-42 &
oddsockets publish room-42 "hello from the CLI"
oddsockets publish room-42 --file payload.json
Presence โ who's online, right now
Ask any channel who's connected. Presence is tracked server-side and updates in real time as clients join and leave.
oddsockets subscribe lobby &
oddsockets presence lobby
History โ replay what you missed
Channels keep a rolling message history, so a client that connects late (or your agent after a context reset) can catch up.
oddsockets history agent-bus --limit 10
Agent Integration
Add to your CLAUDE.md, .cursorrules, .clinerules, or .windsurfrules:
## OddSockets
Use the `oddsockets` CLI for real-time messaging.
Key is in .oddsockets/config.json (auto-loaded).
oddsockets status # cluster health
oddsockets publish my-channel "message" # send message
oddsockets subscribe my-channel # live tail
oddsockets presence my-channel # who's online
oddsockets keys # list API keys
MCP Server (remote)
Prefer tools over a CLI? No install needed โ point Claude Web, Claude Desktop, Cursor, Cline, Windsurf, Raycast, or any MCP client at our hosted server and your agent gets 12 native tools: publish, history, presence, channels and API-key management.
URL: https://mcp.oddsockets.ai/sse
Auth: Authorization: Bearer YOUR_API_KEY
No key yet? Connect keyless and call oddsockets_get_started, then oddsockets_signup to self-provision an app and mint your own key โ then reconnect with the Bearer header to unlock every tool. Same account, same channels as the CLI.
Commands
Setup
| Command | Description |
|---|
oddsockets signup <app> [--email x] [--local] | Sign up, get instant API key |
oddsockets login --key KEY [--local] | Save existing API key |
oddsockets logout [--local] | Clear config |
oddsockets me | Account info + plan |
oddsockets status | Cluster health + platform stats |
Messaging
| Command | Description |
|---|
oddsockets publish <channel> "message" | Publish message |
oddsockets publish <channel> --file data.json | Publish from file |
oddsockets subscribe <channel> | Live tail (Ctrl+C to stop) |
oddsockets history <channel> [--limit 10] | Message history |
oddsockets presence <channel> | Channel members |
Channels
| Command | Description |
|---|
oddsockets channels | List channels |
oddsockets channel create <name> | Create channel |
oddsockets channel delete <name> | Delete channel |
API Keys
| Command | Description |
|---|
oddsockets keys | List API keys |
oddsockets key create "name" | Create new key |
oddsockets key revoke <id> | Revoke key |
Admin (superadmin)
Operator commands for running the whole platform from the CLI โ fleet monitoring, tenant/key provisioning, session and security management. Credentials span three planes; save them once with oddsockets admin login (manager analytics key, worker dashboard basic-auth, and the tenant superadmin key). Every command supports --json for scripting, and the live monitors support --watch.
| Command | Description |
|---|
oddsockets admin login [--key K] [--tenant-key T] [--worker-url U --dashboard-pass P] | Save credentials for any plane |
oddsockets admin config | Show configured planes (redacted) |
oddsockets admin fleet [--watch] [--interval N] | Fleet health + per-worker traffic table |
oddsockets admin telemetry [--watch] | Live fleet telemetry (no key needed) |
oddsockets admin worker <id> [--watch] | Per-worker deep metrics (dashboard plane) |
oddsockets admin worker <id> <section> | One worker dashboard panel (all for every panel) |
oddsockets admin worker drain <id> --confirm | Deregister/drain a worker from the LB |
oddsockets admin worker redis-toggle <id> --confirm | Flip a worker's redis adapter |
oddsockets admin disk [--watch] | Manager disk cards (summary/usage/io) |
oddsockets admin cache [--watch] | Manager apikey cache hit-rate stats |
oddsockets admin analytics [mau|dau] [<apiKeyId>] [--watch] | MAU/DAU top tenants + per-key rollups |
oddsockets admin analytics history <apiKeyId> | 30-day MAU/DAU trend (dashboard charts) |
oddsockets admin session stats [--watch] | Sticky-session stats + per-worker counts |
oddsockets admin session get <id> | Inspect one session |
oddsockets admin session reassign <id> --confirm | Move a session off its worker |
oddsockets admin session cleanup --confirm | Purge stale sessions |
oddsockets admin apikey mint <name> [--plan P] | Provision a connectable tenant key |
oddsockets admin users [--worker URL] [--status S] | Live connected users (worker plane) |
oddsockets admin security status | Blocked + whitelisted IPs |
oddsockets admin security whitelist <ip> | Whitelist an IP (also unblocks it) |
oddsockets admin security block <ip> --confirm | Block an IP at the manager edge |
oddsockets admin security clear --confirm | Clear all blocked IPs |
Worker dashboard sections (admin worker <id> <section>): stats, channels, connections, telemetry, messages, recent, threads, dms, notifications, reactions, files, presence, receipts, disk, redis, or all.
Flags
--json โ Machine-readable JSON output (every command)
--key KEY โ Override API key for one command
--local โ Use project-local config (.oddsockets/)
--watch โ Live-refresh admin monitors (fleet/worker/session/analytics)
--interval N โ Refresh interval in seconds for --watch (default 5)
--confirm โ Required for destructive admin ops (drain, block, cleanup, โฆ)
--help โ Help
Config Priority
--key flag
ODDSOCKETS_API_KEY environment variable
.oddsockets/config.json in project directory
~/.oddsockets/config.json in home directory
Pricing
7-day free trial on every plan. Card required (secure Stripe checkout), nothing charged during the trial โ cancel before it ends and you pay nothing. Agents and the CLI get a 48-hour keyless window to prototype before a key is needed. Plans from $29/mo. Details.
SDKs
Prefer to build it into your app? OddSockets ships a native SDK for every major language and runtime โ same real-time channels, pub/sub, and presence, idiomatic to each stack. Each card links to its maintained repo; for a 60-second install + connect snippet in your language, see examples/.
Full SDK list with highlights
Get Accredited

Prove you can build and operate real-time features on OddSockets โ channels, presence, pub/sub, delivery guarantees and production liveops โ on the stack itself. Three tiers (TCU / TCA / TCP), certified through tyga.games and delivered on ClassaaS.
Get accredited on tyga.games โ
Links