Requirements
- Node.js 22 or newer
- A Discord application with a bot user
- The bot token available through exactly one external reference: an uppercase
DISCORD_*_TOKENenvironment variable or an absolute credential file path - One strict non-secret configuration file or managed profile is required for operational commands; ambient environment policy is not an alternate interface
- File-backed credentials must be regular, single-link, bounded, stable while read, owned by root or the process user, and not group or world writable; a projected-secret symlink may point at such a file
View ChannelsandRead Message Historyin every channel the connector should read- The Message Content privileged intent enabled manually or through the reviewed application-security workflow for full message bodies, native search, announcement crossposts, native message forwarding, Components V2 planning, and static rich-embed planning; the optional content-free Gateway feed does not request it
- Exact one-to-one private-message access needs no guild permission or privileged intent because Discord exempts content in DMs with the app; the dedicated workflow still requires pinned identity, an exact ordinary-user allowlist, expected-contact acknowledgement for new sends and replies, and Discord-side delivery eligibility
- The Guild Members privileged intent enabled manually or through the reviewed application-security workflow when opt-in member listing is needed; the optional content-free Gateway feed does not request it
Send Messages,View Channel, andRead Message Historyonly in exact channels selected for Components V2 creation or editing; useSend Messages in Threadsinstead ofSend Messagesfor exact selected threadsAttach Files,Read Message History, andSend MessagesorSend Messages in Threadsonly in exact channels or threads selected for attachment messagesView Channels,Read Message History, andSend Messagesonly in exact forum channels selected for forum-post creation; addManage Threadsonly when selecting moderated tagsView Channelonly in exact stable forums selected for forum-tag audit; addManage Channelsonly when reviewed tag changes are enabledView ChannelplusCreate Public Threadsonly in exact text or announcement parents selected for anchored or standalone-public creation, orCreate Private Threadsonly in exact text parents selected for standalone-private creation; anchored creation also requiresRead Message HistoryAdd Reactionsonly in exact interaction channels where the bot may add its own reactions; removing its own reaction does not require that permissionManage Messages,View Channel, andRead Message Historyonly in exact channels selected for reviewed reaction moderation, plusConnectfor selected voice or Stage targetsManage ChannelsandView Channelonly in exact direct guild channels where reviewed metadata changes will be enabled, plusConnecton exact voice or Stage targets; exact ordinary voice-channel status additionally needsSet Voice Channel Status, whileManage Channelsis conditional when the connector is not connected to the exact target- For exact channel retirement,
Manage Guildat guild scope;View ChannelplusManage Channelson the target;Manage Webhookson webhook-capable targets; andRead Message HistoryplusManage Threadson text, forum, and media targets Manage RolesandView Channelonly in exact direct guild channels where permission-overwrite changes will be enabledManage WebhooksandView Channelonly in exact direct guild channels where credential-redacted webhook audit or reviewed creation, rename, move, or deletion will be enabled; private webhook message actions authenticate with the stored webhook credential and do not require the bot to retainManage WebhooksManage Guildonly in exact guilds where capability-safe invite inventory or reviewed invite revocation will be enabledCreate Instant InviteplusView Channelonly in exact direct channels where reviewed finite invite creation will be enabled; addManage Guildonly for exact-user acceptance, and addManage Rolesplus the nonprivileged Gateway layout only for separately allowlisted persistent invite rolesManage GuildandManage Rolesonly in exact guilds where reviewed complete onboarding replacement will be enabledManage Guildonly in exact Community guilds where disabled Welcome Screen inspection or reviewed complete ordered replacement will be enabledManage Guildonly in exact guilds where reviewed guild-profile name or description changes will be enabled; profile audit itself can report that authority as unavailableManage Guildonly in exact guilds where named guild-settings audit, reviewed sparse settings changes, or incident-action audit and reviewed lockdown changes will be enabledAdministratoronly as a temporary operator-managed grant in exact guilds where the connector must add the Community feature; remove it after that reviewed frontier, then retain onlyManage Guildfor separately allowlisted Community routing audit or changesManage Guildonly in exact guilds where authenticated widget-settings audit or reviewed replacement will be enabled; the selected widget channel must remain visible to@everyoneCreate Guild Expressionsonly in exact guilds where the bot may create emojis or stickers it owns, andManage Guild Expressionsonly where it must update or delete expressions created by another user- Application-owned emoji reads and reviewed changes use the bot token for the verified current application and require no guild permission; keep their separate local gates disabled until intentionally configured
- Reviewed application privileged-intent enablement uses the verified owner-managed bot token and requires no guild permission, but expands application-wide Discord access across every installation; keep its separate capability and toolset disabled until intentionally configured
Create Eventsonly in exact guilds selected for scheduled-event administration,Manage Eventsonly when cross-owner changes are required, and the documented channel permissions for each selected stage or voice event targetView Channel,Connect,Manage Channels,Mute Members, andMove Membersonly in exact Stage channels selected for lifecycle changes; addMention Everyoneonly where reviewed guild-wide start notifications are intentionalManage Messagesonly in channels where deletion will eventually be enabledManage ChannelsandView Channelsonly in exact guilds and parent categories where additive channel creation or guild scaffolds will be enabledManage Channelsonly in exact guilds selected for channel-order audit or changes; a complete visible parent-category grant is sufficient for one affected child group whose complete overwrite evidence proves it, while cross-parent placement requires complete authority on both groups plus exact targetView ChannelandManage Channels- Guild-level
Manage Channelsplus sourceView Channelonly in exact guilds and source channels selected for channel-clone audit or changes; the connector must also hold every permission bit present in copied overwrites, and sources containingManage Rolesoverwrites remain unavailable withoutAdministrator Change Nicknameonly in exact guilds where the connector may change or clear its own nickname through the narrow current-bot routeManage Nicknamesonly in exact guilds where the separately gated broader route may change another eligible member, with the bot's own highest role strictly above every target- One documented member verification-bypass authorization path only in exact selected guilds:
Manage Guild,Manage Roles, or all ofModerate Members,Kick Members, andBan Members, with the bot's own highest role strictly above every target; prefer the narrowest path already justified by other selected work Manage Rolesonly in exact guilds where additive role creation, guild scaffolds, member-role changes, exact role configuration, reviewed role retirement, or reviewed role ordering will be enabled, with the bot's own highest role above every created, assignable, configurable, deletable, movable, or anchor roleManage Guildadditionally in exact guilds selected for role-retirement dependency audit; it permits the complete invite, integration, onboarding, AutoMod, and application-command evidence pass but grants no local deletion authority by itselfView ChannelandConnectonly in exact voice or Stage channels selected for exact member voice-state audit; reviewed voice changes additionally needMove Membersfor moves or disconnects,Mute Membersfor server mute changes, orDeafen Membersfor server deafen changes, withView ChannelandConnectalso proven for the target at a move destinationView Audit Logonly in guilds where privacy-minimized server audit history is neededKick Members,Ban Members, orModerate Membersonly in exact guilds where the corresponding member administration action will be enabled; native bulk bans additionally requireManage Guildin every separately selected bulk-ban guild
Do not grant the bot Administrator. Restrict its Discord role at the category or channel level wherever possible.
The application public key is not used by the local REST or Gateway connections. It becomes relevant only if Discord Interaction webhooks or slash commands are added later.
Canonical source: docs/reference.md
Documentation generated for guildcontrol@0.0.0. Canonical source and edit history remain in the public repository. GuildControl is an independent project and is not affiliated with or endorsed by Discord Inc. Discord is used only to identify the platform that GuildControl connects to.