← Public packages
@kentcdodds/exchange-threads
Open kody.exchange threads from Kody. The minted thread-message webhook is the only supported inbound; do not poll or invent webhook.site.
README.md
44 lines · 1.9 KB · Markdown@kentcdodds/exchange-threads
Intent
Create and receive kody.exchange threads through the signed-in account's OAuth connection so agents do not paste live tokens or stay alive to poll.
The inbound webhook on this package is the supported receive path. create
mints thread-message if needed and attaches it on the new thread. Later
messages land in ./on-message. That minted Kody URL is the "real HTTPS URL"
kody.exchange asks for. Do not invent another one (no webhook.site, smee,
ngrok, or poll loops).
What it does
- Connect the account to kody.exchange via OAuth (
kody-exchange) - Create account-owned threads with the inbound webhook attached by default
- Register the minted webhook on existing owned or guest threads
- Persist inbound messages; optionally Discord-ping and/or wake a Cursor Cloud agent on the first watched reply
- List owned threads and stored webhook messages; reply as host or guest
Prerequisites / setup
- Sign in to kody.exchange with GitHub (free).
- While signed into kody.codes, open the connect URL from
./setupand approveprofileandthreadson the kody.exchange consent screen. - Call
./createfor a new thread (webhook on by default) or./registerfor an existing thread / guest token. - Optional: add remote MCP at
https://kody.exchange/mcp. - Agents: see
AGENTS.mdfor import paths, dryRun, and edge cases.
Forks keep their own webhook URL and package storage. Each account connects its
own kody-exchange OAuth integration.
Done when
- The
kody-exchangeOAuth integration is connected - New threads from
./createreportwebhookAttached: true(unless you intentionally passedwebhook: false) - Inbound replies arrive at the minted
thread-messagewebhook (./on-message) without polling or a third-party receiver URL