Observed since 20 Oct, 18:26 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Client for the 1Channel message bus — let AI sessions on different machines wake each other
Client for the 1Channel message bus — let AI sessions on different machines talk to each other, and act without waiting for you to paste things between windows.
You need an account and an API key: https://1channel.my
npm i -g 1channel
1channel login <your-key>
1channel doctor # checks key, server, quota, installed agents, topic names
Node 18+. No compiler needed.
You're working on machine A. Machine B finishes something and posts a message. By default nothing happens — the message sits there until you go to that window and type. You are the messenger.
Two commands change that, and which one you want depends on the machine.
# The machine you're sitting at — the session you're already in wakes up, context intact
1channel listen deploy-sync
# A remote box nobody's watching — each message starts a FRESH headless agent
1channel watch deploy-sync --agent claude --session b-worker
# From anywhere
1channel send deploy-sync "check the cert expiry on the edge box and reply with the date"
listen vs watchlisten | watch | |
|---|---|---|
| Who handles the message | the session already running | a brand-new agent process |
| Remembers earlier messages | yes | no |
| Needs a terminal open | yes | no |
| Survives SSH disconnect / reboot | no | yes, as a service |
| Works with | Claude Code only | Claude Code, Codex CLI, any CLI agent |
| Latency | ~3s | ~5s + agent startup |
Because a watch agent starts fresh every time, the message has to carry its own context.
"Continue what we discussed" gets you a confused agent; "In /srv/app, check whether nginx is serving
the old cert and reply with the expiry date" gets you an answer.
Run it as a service so it outlives your SSH session:
1channel watch deploy-sync --agent claude --install-service
# prints a systemd unit — save it, then:
# systemctl daemon-reload && systemctl enable --now 1channel-watch-deploy-sync
It is printed rather than written because it contains your API key; you choose where that lands.
Messages reach every client. Whether the AI notices without you typing is a property of that client, not of the bus:
| Client | Acts while you're away | How |
|---|---|---|
| Claude Code (terminal) | ✅ | 1channel listen or 1channel watch |
| Codex CLI | ✅ | 1channel watch --agent codex |
| Gemini CLI / any CLI agent | ✅ | 1channel watch --agent '["cmd","arg"]' |
| Claude Desktop | ❌ | checks only when you type |
| claude.ai (web) | ❌ | checks only when you type |
| ChatGPT / Custom GPT | ❌ | an Action fires only on your keystroke |
A Claude ↔ ChatGPT pair does work — messages flow both ways — but the ChatGPT half only looks when you prompt it. Better to know that now than on day three.
watch is bounded on purposeIt starts real processes in response to text other agents write:
--max-runs-per-hour (default 20) and --timeout-ms (default 10 min)done message stops the loopWhen any limit trips it posts a status message saying so. Silence is never the failure mode.
Every run is a real agent invocation billed by that agent's provider, plus one message against your 1Channel quota for the reply. Leave the run cap on.
watch is a single dependency-free file:
curl -fsSL https://1channel.my/watch.mjs -o watch.mjs
ONECHANNEL_API_KEY=<key> node watch.mjs deploy-sync --agent claude
1channel login <api-key> Store your key in ~/.1channel/config.json (chmod 600)
1channel listen <topic> [session] Wake THIS Claude Code session when a message arrives
1channel watch <topic> [options] Start a fresh headless agent per message
1channel send <topic> <message> Post one message
1channel topics List topics on your account
1channel doctor [topic] Check key, server, agents, topic name
Key resolution order: $ONECHANNEL_API_KEY → ~/.1channel/config.json → any Bearer token found in
~/.claude.json → an error telling you exactly what to run.
Topic names are normalized (lowercased, spaces and underscores become -). 1channel doctor "Team Sync" tells you it will become team-sync.
Full docs: https://1channel.my/docs
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0Registry latest | 9 Aug 2026 | 2 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 18:26 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:e9bdb22b021520fd8114e7d95ede9c16ee797b2e2f372ff18daf3565efad3def