The prompt type is the interesting half: the assistant stops, asks a real question with real buttons in a channel you already watch, and continues with your answer. That makes unattended runs viable — it can pause for a judgement call instead of guessing — and the timeout means a question nobody sees fails cleanly rather than hanging forever.
A relay between an assistant and a Discord channel. The assistant posts into the channel through a bot you own; a message can be fire-and-forget, or it can be a prompt that blocks until someone answers — by clicking a button or by typing a reply.
- `send-message` takes a `type` of either `notification` or `prompt`, plus a `title` and `content`
- `notification` posts and returns immediately, expecting no answer
- `prompt` waits for a response and returns it to the assistant
- `actions` adds buttons, each with a `label` shown and a `value` returned when clicked
- `timeout` in milliseconds bounds the wait — the example uses 60000 for a minute
- A prompt takes the first response only, whether it came from a button or a typed message
A Discord application with a bot token in `DISCORD_TOKEN` and the target channel's ID in `DISCORD_CHANNEL_ID`. In the Developer Portal the bot needs the Message Content, Server Members and Presence intents switched on, and it is invited with the bot and applications.commands scopes plus Send Messages, Embed Links and Read Message History. Developer Mode in Discord is what lets you copy the channel ID. Then `node build/index.js` with an absolute path. Version 1.0.0.
