Catalog npm
PACKAGE EXPLORERView in registry

1channel

npm

Client for the 1Channel message bus — let AI sessions on different machines wake each other

agent-to-agentclaudeclaude-codecodexmcpmessage-busmodel-context-protocolmulti-agent
Versions collected1
Direct dependencies2From release 0.1.0
Last observed20 Oct, 18:26 UTC

README

Current package documentation

1channel

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.

The problem it solves

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 watch

listenwatch
Who handles the messagethe session already runninga brand-new agent process
Remembers earlier messagesyesno
Needs a terminal openyesno
Survives SSH disconnect / rebootnoyes, as a service
Works withClaude Code onlyClaude 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.

Which clients can wake themselves

Messages reach every client. Whether the AI notices without you typing is a property of that client, not of the bus:

ClientActs while you're awayHow
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 purpose

It starts real processes in response to text other agents write:

  • One agent at a time — messages arriving mid-run merge into the next batch, never run in parallel
  • It ignores its own messages, so two watchers on one topic can't answer each other forever
  • --max-runs-per-hour (default 20) and --timeout-ms (default 10 min)
  • No shell — the agent command is an argv array; message text arrives on stdin
  • A done message stops the loop

When 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.

No npm on the remote box?

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

Commands

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

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.0Registry latest9 Aug 20262

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:26 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:e9bdb22b021520fd8114e7d95ede9c16ee797b2e2f372ff18daf3565efad3def