{"_id":"@alacrity-ai/kbrelaychannel","name":"@alacrity-ai/kbrelaychannel","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alacrity-ai/kbrelaychannel","version":"0.1.0","description":"kbRelay Claude Code channel — push kbRelay events (assign-into-Ready, @-mentions) into a running Claude Code session.","type":"module","license":"MIT","private":false,"bin":{"kbrelaychannel":"bin/kbrelaychannel.mjs"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"scripts":{"build":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build","typecheck":"tsc --noEmit -p tsconfig.build.json","test":"vitest run"},"keywords":["mcp","claude-code","channel","kbrelay","webhook"],"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0"},"devDependencies":{"@types/node":"^24.0.0","typescript":"~5.9.3","vitest":"^2.1.0"},"gitHead":"3f0836a58213ef23766b59cc6fa0392e37d19f85","_id":"@alacrity-ai/kbrelaychannel@0.1.0","_nodeVersion":"24.7.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-YB41DytQ9emkxdukzGmvOKQYR7uLTq59d1cBrQxLv3epr6+mIgDwYYQMfppvTrrs/LyfUZe/EsGHbjGjfF+jBg==","shasum":"d4aaa2e9aefc48b60edf3e30d6894da038f2cf18","tarball":"https://registry.npmjs.org/@alacrity-ai/kbrelaychannel/-/kbrelaychannel-0.1.0.tgz","fileCount":13,"unpackedSize":18322,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDMo1ovOnSWPoLKVWI1lLwv1Ng1YBmFPbEJFt42eyT7egIgIuP7qSWQ781DQ8ZAGm3LNvKNdVbAEjBS/D2CgXF8Qww="}]},"_npmUser":{"name":"leifkt","email":"leif@lalalimited.com"},"directories":{},"maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/kbrelaychannel_0.1.0_1782961301734_0.10803376562581124"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-02T03:01:41.538Z","0.1.0":"2026-07-02T03:01:41.901Z","modified":"2026-07-02T03:01:42.161Z"},"maintainers":[{"name":"leifkt","email":"leif@lalalimited.com"}],"description":"kbRelay Claude Code channel — push kbRelay events (assign-into-Ready, @-mentions) into a running Claude Code session.","keywords":["mcp","claude-code","channel","kbrelay","webhook"],"license":"MIT","readme":"# @alacrity-ai/kbrelaychannel\n\nA [Claude Code **channel**](https://code.claude.com/docs/en/channels) for kbRelay.\nIt pushes kbRelay events — a card assigned into a **Ready** lane, or an agent\n**@-mention** — into a running Claude Code session as `<channel source=\"kbrelay\">`\nevents, so your agent reacts in seconds instead of waiting for its `/loop` poll.\n\nPairs with the kbRelay **Channel events** webhook (Team & access → Channel events).\n\n## Two modes\n\n- **poll** (default, zero inbound networking): drains `GET /me/queue` +\n  `GET /me/mentions` on a timer and injects anything new. Needs only an API key.\n- **signed** (instant push): a localhost HTTP listener verifies the kbRelay\n  webhook HMAC (`X-KBRelay-Signature`) and injects the event. Point a kbRelay\n  webhook subscription (or a tunnel in front of it) at `http://127.0.0.1:<port>`.\n\nSet `KBRELAY_CHANNEL_MODE=both` to run both.\n\n## Run\n\nChannels are a research preview and this plugin isn't on Anthropic's allowlist\nyet, so start Claude Code with the development flag:\n\n```bash\nKBRELAY_BASE_URL=https://kbrelay.lalalimited.com \\\nKBRELAY_API_KEY=<an agent key> \\\nclaude --dangerously-load-development-channels server:kbrelaychannel\n```\n\n(register it in `.mcp.json` as `{ \"command\": \"npx\", \"args\": [\"-y\", \"@alacrity-ai/kbrelaychannel\"] }`)\n\nFor signed mode, also set `KBRELAY_CHANNEL_SECRET=<the subscription secret>` and\n`KBRELAY_CHANNEL_MODE=signed` (or `both`).\n\n## Env\n\n| Var | Purpose | Default |\n|-----|---------|---------|\n| `KBRELAY_BASE_URL` | kbRelay origin (poll + reply) | — |\n| `KBRELAY_API_KEY` | agent bearer token (poll + reply) | — |\n| `KBRELAY_CHANNEL_SECRET` | webhook signing secret (signed mode) | — |\n| `KBRELAY_CHANNEL_MODE` | `poll` \\| `signed` \\| `both` | `poll` |\n| `KBRELAY_CHANNEL_PORT` | signed-mode listener port | `8790` |\n| `KBRELAY_CHANNEL_POLL_MS` | poll interval (ms) | `60000` |\n\n## Two-way\n\nExposes a `reply` tool so Claude can post a comment back to a card (uses\n`KBRELAY_API_KEY`). Everything else is one-way (read the event, act on the board).\n","readmeFilename":"README.md","_rev":"1-9700a8a21be09da513bb2a3b9875f542"}