Channels

Linear

Inbound is a Linear webhook signed with Linear-Signature (HMAC-SHA256 hex of the body, no prefix). The adapter plans GraphQL commentCreate for Post and Reply. No media or buttons.

◆

Linear webhooks also fire for comments the bot just posted. Echoing would loop. The example posts help on /help and ignores everything else.

Create a personal API key and a webhook for Comment events. Use the same signing secret Linear puts on Linear-Signature.

export LINEAR_API_KEY='…'
export LINEAR_WEBHOOK_SECRET='…'
export PORT=8080

api_key here is the Linear GraphQL token, not a Caspian API key. Self-host needs no CASPIAN_API_KEY.

cx = Caspian()
cx.channels.add(
    "linear",
    via="self-host",
    api_key=linear_api_key,
    webhook_secret=webhook_secret,
    bot_token="local",
)
const cx = new Caspian()
await cx.channels.add("linear", {
  via: "self-host",
  api_key: linearApiKey,
  webhook_secret,
  bot_token: "local",
})