Discord
Overview
Real-time messaging platform. Archetype: Messaging.
Workflows
Browse server messages
listGuilds→ pick guild →guildIdlistGuildChannels(guildId)→ pick channel →channelIdgetChannelMessages(channelId, limit)→ messages with content, author, timestamps
Search a server
listGuilds→ pick guild →guildIdsearchMessages(guildId, content)→ matching messages with context
Send a message & react
listGuilds→ pick guild →guildIdlistGuildChannels(guildId)→ pick channel →channelIdsendMessage(channelId, content)→ message with ID →messageIdaddReaction(channelId, messageId, emoji)→ 204
Undo message & reaction
getChannelMessages(channelId)→messageId(or usemessageId ← sendMessage)deleteMessage(channelId, messageId)→ 204removeReaction(channelId, messageId, emoji)→ 204
Inspect a server
listGuilds→ pick guild →guildIdgetGuildInfo(guildId)→ server details, member count, featuresgetGuildRoles(guildId)→ role list with permissions
Operations
| Operation | Intent | Key Input | Key Output | Notes |
|---|---|---|---|---|
| getCurrentUser | get my profile | — | username, email, avatar, premium_type | entry point |
| listGuilds | list my servers | — | id, name, icon, owner, permissions | entry point |
| getDirectMessages | list DM channels | — | id, type, recipients, last_message_id | entry point |
| getGuildInfo | server details | guildId ← listGuilds | name, description, owner_id, member count, features, roles | |
| listGuildChannels | channels in server | guildId ← listGuilds | id, name, type, topic, position | |
| getGuildRoles | server roles | guildId ← listGuilds | name, permissions, color, position | |
| searchMessages | search in server | guildId ← listGuilds, content (query) | total_results, messages with context | |
| getChannelInfo | channel details | channelId ← listGuildChannels | name, type, topic, guild_id | |
| getChannelMessages | read messages | channelId ← listGuildChannels | content, author, timestamp, attachments, embeds | paginated (limit, before, after) |
| getPinnedMessages | pinned messages | channelId ← listGuildChannels | content, author, timestamp | no pagination |
| sendMessage | send a message | channelId ← listGuildChannels, content | id, content, author, timestamp | write op |
| addReaction | react to message | channelId, messageId ← getChannelMessages, emoji | 204 no content | write op |
| deleteMessage | delete a message | channelId, messageId ← getChannelMessages | 204 no content | write op, reverses sendMessage |
| removeReaction | remove own reaction | channelId, messageId ← getChannelMessages, emoji | 204 no content | write op, reverses addReaction |
Quick Start
# Get current user info
openweb discord exec getCurrentUser '{}'
# List my servers (guilds)
openweb discord exec listGuilds '{}'
# List channels in a server
openweb discord exec listGuildChannels '{"guildId":"GUILD_ID"}'
# Read messages in a channel
openweb discord exec getChannelMessages '{"channelId":"CHANNEL_ID","limit":50}'
# Search messages in a guild
openweb discord exec searchMessages '{"guildId":"GUILD_ID","content":"search term"}'
# Send a message to a channel
openweb discord exec sendMessage '{"channelId":"CHANNEL_ID","content":"Hello!"}'
# React to a message with thumbs up
openweb discord exec addReaction '{"channelId":"CHANNEL_ID","messageId":"MSG_ID","emoji":"👍"}'
# Delete a message
openweb discord exec deleteMessage '{"channelId":"CHANNEL_ID","messageId":"MSG_ID"}'
# Remove own reaction from a message
openweb discord exec removeReaction '{"channelId":"CHANNEL_ID","messageId":"MSG_ID","emoji":"👍"}'
Known Limitations
createServer/createChannel— not supported (removed from spec, 2026-04-20). Discord requires anX-Super-Propertiesheader (base64 client-fingerprint blob) on create-entity endpoints; the page transport does not inject it and there is no discord adapter to synthesize one. All other writes (sendMessage,deleteMessage,addReaction,removeReaction) work via the samewebpack_module_walkAuthorization header. Unblock: capture a live super-properties value from the SPA bundle and add it as a constant header (or build a discord adapter).