@jiulongw/claude-code-channel-demo
v0.1.1
Published
Claude Code channel that forwards Vibe Dot transcriptions from the SSE relay into the active Claude Code session.
Downloads
66
Readme
@jiulongw/claude-code-channel-demo
A Claude Code channel that forwards Vibe Dot meeting transcriptions from an SSE relay into the active Claude Code session as out-of-band user input.
Each transcription arrives in your session as:
<channel source="vibedot" user_email="..." meeting_type="...">spoken text</channel>Claude Code treats it as a user instruction and acts on it — no reply is sent back to the speaker.
Requirements
- Node.js ≥ 20.3.0
- Claude Code with development-channel support (launch flag:
--dangerously-load-development-channels) - A
VIBE_DOT_TOKENfor the SSE relay — obtain one by signing in at https://demo-dot-relay.vibeus.workers.dev/auth/google
Setup
Add the channel to your project's
.mcp.json(see example below).Launch Claude Code with the channel enabled:
claude --dangerously-load-development-channels server:vibedot
That's it — the server starts on demand via npx, connects to the relay, and forwards transcriptions until you exit Claude Code.
Example .mcp.json
{
"mcpServers": {
"vibedot": {
"command": "npx",
"args": ["-y", "@jiulongw/claude-code-channel-demo"],
"env": {
"VIBE_DOT_TOKEN": "your-token-here"
}
}
}
}Optional environment variables
| Variable | Default | Purpose |
| -------------------- | ------------------------------------------------------------- | -------------------------------------- |
| VIBE_DOT_TOKEN | — (required) | Bearer token for the SSE relay |
| VIBE_DOT_SSE_URL | https://demo-dot-relay.vibeus.workers.dev/dot-messages | Override the SSE endpoint |
How it works
The package runs an MCP stdio server that advertises the experimental claude/channel capability. Instead of exposing tools, it pushes notifications/claude/channel messages whenever a transcription arrives on the SSE stream. Claude Code, launched with the development-channel flag, ingests those notifications as user input.
The SSE consumer reconnects with exponential backoff (1s → 30s) and reconnects automatically if no relay ping is received for 120 seconds.
Development
bun install # or: npm install
npm run build # tsc → dist/claude-channel.js
npm start # run the built server (needs VIBE_DOT_TOKEN)The entire implementation lives in claude-channel.ts.
License
See package.json.
