# Discord Bot on boxd

> Discordbot refers to automated programs on Discord servers, performing tasks like moderation, music playback, and user engagement to enhance community interactions.

- Page: https://boxd.sh/integrations/discordbot/
- CLI: `run discordbot` (165 commands, 1 marked common)
- SDK: `import { discordbot } from "@boxd/run"`; every parameter and response type is at `@boxd/run/discordbot`
- Triggers: none
- Connect: `run auth discordbot` (Sign in with Discord), or https://app.boxd.sh/integrations/detail/discordbot
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth discordbot      # once: prints a link to connect your account
run discordbot           # list its commands
run discordbot get-gateway
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, discordbot } from "@boxd/run";

every("1 hour", async () => {
  const result = await discordbot.getGateway();
  console.log(result);
});
```

Run it with `run discordbot.run.ts`. Discord Bot has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run discordbot <command> --help` lists the optional ones. "common" marks what `run discordbot` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `add-group-dm-user` | `discordbot.addGroupDmUser()` | `--channel-id` `--user-id` | 2 | Adds a user to a Discord group DM channel |
| `add-guild-member` | `discordbot.addGuildMember()` | `--access-token` `--guild-id` `--user-id` | 4 | Adds a user to a Discord guild using their OAuth2 access token (which must have guilds.join scope) |
| `add-guild-member-role` | `discordbot.addGuildMemberRole()` | `--guild-id` `--role-id` `--user-id` | 0 | Assigns a role to a guild member |
| `add-my-message-reaction` | `discordbot.addMyMessageReaction()` | `--channel-id` `--emoji` `--message-id` | 0 | Adds an emoji reaction from the bot to a message |
| `add-thread-member` | `discordbot.addThreadMember()` | `--channel-id` `--user-id` | 0 | Adds a user to a specific, unarchived thread |
| `ban-user-from-guild` | `discordbot.banUserFromGuild()` | `--guild-id` `--user-id` | 1 | Permanently bans a user from a Discord guild, optionally deleting their recent messages |
| `bulk-ban-users-from-guild` | `discordbot.bulkBanUsersFromGuild()` | `--guild-id` `--user-ids` | 1 | Bans up to 200 users from a Discord guild, optionally deleting their recent messages |
| `bulk-delete-messages` | `discordbot.bulkDeleteMessages()` | `--channel-id` `--messages` | 0 | Bulk deletes messages in a Discord channel |
| `create-application-command` | `discordbot.createApplicationCommand()` | `--application-id` `--name` | 7 | Creates a new global Discord application command |
| `create-auto-moderation-rule` | `discordbot.createAutoModerationRule()` | `--actions` `--event-type` `--guild-id` `--name` `--trigger-type` | 4 | Creates a new auto moderation rule for a Discord guild |
| `create-channel-invite` | `discordbot.createChannelInvite()` | `--channel-id` | 7 | Creates a new invite link for a Discord channel |
| `create-dm` | `discordbot.createDm()` | — | 3 | Creates a new direct message (DM) channel or retrieves an existing one, using recipient_id for a 1-on-1 DM or access_tokens for a group DM; this action only establishes or fetches the channel and… |
| `create-guild` | `discordbot.createGuild()` | `--name` | 13 | Creates a new Discord guild (server) |
| `create-guild-application-command` | `discordbot.createGuildApplicationCommand()` | `--application-id` `--guild-id` `--name` | 7 | Creates a new guild-specific application command |
| `create-guild-channel` | `discordbot.createGuildChannel()` | `--guild-id` `--name` | 17 | Creates a new Discord channel (text, voice, category, etc.) within a guild |
| `create-guild-emoji` | `discordbot.createGuildEmoji()` | `--guild-id` `--image` `--name` | 1 | Creates a new custom emoji in a specified Discord guild, requiring CREATE_EXPRESSIONS permission and adherence to guild emoji limits |
| `create-guild-from-template` | `discordbot.createGuildFromTemplate()` | `--name` `--template-code` | 1 | Creates a new Discord guild by applying channels, roles, and settings from a specified guild template code |
| `create-guild-role` | `discordbot.createGuildRole()` | `--guild-id` | 7 | Creates a new role in a Discord guild with customizable name, permissions, color, hoist, mentionability, and icon |
| `create-guild-scheduled-event` | `discordbot.createGuildScheduledEvent()` | `--entity-type` `--guild-id` `--name` `--scheduled-start-time` | 6 | Creates a new scheduled event in a Discord guild |
| `create-guild-sticker` | `discordbot.createGuildSticker()` | `--file` `--guild-id` `--name` `--tags` | 1 | Uploads a PNG, APNG, GIF, or Lottie JSON file (max 512KB) as a new custom sticker to the specified Discord guild; requires Manage Expressions permission |
| `create-guild-template` | `discordbot.createGuildTemplate()` | `--guild-id` `--name` | 1 | Creates a template of an existing Discord guild's structure (settings, roles, channels) but not its content (messages, members) |
| `create-interaction-response` | `discordbot.createInteractionResponse()` | `--interaction-id` `--interaction-token` `--type` | 1 | Sends a response to a Discord interaction (e.g., slash command, component) |
| `create-message` ·common | `discordbot.createMessage()` | `--channel-id` | 8 | Sends a message to a Discord channel |
| `create-stage-instance` | `discordbot.createStageInstance()` | `--channel-id` `--topic` | 2 | Creates a new Stage instance in a Stage channel for hosting live audio events |
| `create-thread` | `discordbot.createThread()` | `--channel-id` `--name` | 6 | Creates a new thread in a text, announcement, forum, or media channel |
| `create-thread-from-message` | `discordbot.createThreadFromMessage()` | `--channel-id` `--message-id` `--name` | 2 | Creates a new thread from a specific message in a Discord channel, requiring CREATE_PUBLIC_THREADS permission |
| `create-webhook` | `discordbot.createWebhook()` | `--channel-id` `--name` | 1 | Creates a new webhook in a specified Discord channel, requiring MANAGE_WEBHOOKS permission |
| `crosspost-message` | `discordbot.crosspostMessage()` | `--channel-id` `--message-id` | 0 | Crossposts a message from an announcement channel to all channels following it |
| `delete-all-message-reactions` | `discordbot.deleteAllMessageReactions()` | `--channel-id` `--message-id` | 0 | Removes all reactions from a message |
| `delete-all-message-reactions-by-emoji` | `discordbot.deleteAllMessageReactionsByEmoji()` | `--channel-id` `--emoji` `--message-id` | 0 | Removes all reactions for a specific emoji from a message |
| `delete-application-command` | `discordbot.deleteApplicationCommand()` | `--application-id` `--command-id` | 0 | Permanently deletes a global application command |
| `delete-auto-moderation-rule` | `discordbot.deleteAutoModerationRule()` | `--guild-id` `--rule-id` | 0 | Permanently deletes a specific auto moderation rule from a Discord guild |
| `delete-channel` | `discordbot.deleteChannel()` | `--channel-id` | 0 | Permanently deletes a Discord channel by its ID |
| `delete-channel-permission-overwrite` | `discordbot.deleteChannelPermissionOverwrite()` | `--channel-id` `--overwrite-id` | 0 | Removes channel-specific permission overwrites for a user or role, reverting them to default permissions inherited from the server or category |
| `delete-group-dm-user` | `discordbot.deleteGroupDmUser()` | `--channel-id` `--user-id` | 0 | Removes a recipient from a Discord group DM channel |
| `delete-guild` | `discordbot.deleteGuild()` | `--guild-id` | 0 | Permanently deletes a specified Discord guild (server) |
| `delete-guild-application-command` | `discordbot.deleteGuildApplicationCommand()` | `--application-id` `--command-id` `--guild-id` | 0 | Permanently deletes a guild-specific application command |
| `delete-guild-emoji` | `discordbot.deleteGuildEmoji()` | `--emoji-id` `--guild-id` | 0 | Permanently deletes a specified custom emoji from a guild, requiring Manage Expressions permissions; cannot delete default emojis and is irreversible |
| `delete-guild-integration` | `discordbot.deleteGuildIntegration()` | `--guild-id` `--integration-id` | 0 | Permanently deletes a specific integration from a Discord guild, removing any associated webhooks and kicking the bot if present |
| `delete-guild-member` | `discordbot.deleteGuildMember()` | `--guild-id` `--user-id` | 0 | Removes (kicks) a member from a Discord guild |
| `delete-guild-member-role` | `discordbot.deleteGuildMemberRole()` | `--guild-id` `--role-id` `--user-id` | 0 | Removes a specified role from a member of a Discord guild |
| `delete-guild-role` | `discordbot.deleteGuildRole()` | `--guild-id` `--role-id` | 0 | Permanently deletes a specified role from a Discord guild, revoking it from all members |
| `delete-guild-scheduled-event` | `discordbot.deleteGuildScheduledEvent()` | `--event-id` `--guild-id` | 0 | Permanently deletes a specific scheduled event from a Discord guild |
| `delete-guild-sticker` | `discordbot.deleteGuildSticker()` | `--guild-id` `--sticker-id` | 0 | Permanently deletes a custom sticker from a Discord guild; the specified guild and sticker must exist, and this action is irreversible |
| `delete-guild-template` | `discordbot.deleteGuildTemplate()` | `--guild-id` `--template-code` | 0 | Deletes an existing guild template by its unique code from a specified guild, returning the deleted template's details |
| `delete-message` | `discordbot.deleteMessage()` | `--channel-id` `--message-id` | 0 | Permanently deletes a message from a Discord channel |
| `delete-my-message-reaction` | `discordbot.deleteMyMessageReaction()` | `--channel-id` `--emoji` `--message-id` | 0 | Removes the bot's own emoji reaction from a message |
| `delete-original-webhook-message` | `discordbot.deleteOriginalWebhookMessage()` | `--webhook-id` `--webhook-token` | 1 | Permanently deletes the original (@original) message posted by a webhook or interaction response |
| `delete-stage-instance` | `discordbot.deleteStageInstance()` | `--channel-id` | 0 | Permanently deletes the Stage instance for a given stage channel, ending the live audio event |
| `delete-thread-member` | `discordbot.deleteThreadMember()` | `--channel-id` `--user-id` | 0 | Removes a user from a specified, unarchived thread |
| `delete-user-message-reaction` | `discordbot.deleteUserMessageReaction()` | `--channel-id` `--emoji` `--message-id` `--user-id` | 0 | Removes a specific user's emoji reaction from a message |
| `delete-webhook` | `discordbot.deleteWebhook()` | `--webhook-id` | 0 | Permanently deletes a Discord webhook by its unique ID |
| `delete-webhook-by-token` | `discordbot.deleteWebhookByToken()` | `--webhook-id` `--webhook-token` | 0 | Permanently deletes a Discord webhook using its ID and token, without bot authentication |
| `delete-webhook-message` | `discordbot.deleteWebhookMessage()` | `--message-id` `--webhook-id` `--webhook-token` | 1 | Deletes a message previously sent by a Discord webhook |
| `execute-github-compatible-webhook` | `discordbot.executeGithubCompatibleWebhook()` | `--webhook-id` `--webhook-token` | 22 | Forwards GitHub event notifications to a Discord channel via a GitHub-compatible webhook endpoint |
| `execute-slack-compatible-webhook` | `discordbot.executeSlackCompatibleWebhook()` | `--webhook-id` `--webhook-token` | 6 | Sends messages to Discord via its Slack-compatible webhook endpoint, supporting Slack attachment formatting |
| `execute-webhook` | `discordbot.executeWebhook()` | `--webhook-id` `--webhook-token` | 13 | Executes a Discord webhook to send messages, embeds, or interactive components to a channel or thread |
| `follow-channel` | `discordbot.followChannel()` | `--channel-id` `--webhook-channel-id` | 0 | Follows an Announcement Channel to relay its messages to a target channel via webhook |
| `get-active-guild-threads` | `discordbot.getActiveGuildThreads()` | `--guild-id` | 0 | Retrieves all active (non-archived) threads in a Discord guild that the bot can access |
| `get-application` | `discordbot.getApplication()` | `--application-id` | 0 | Retrieves the full details of a Discord application by its application_id |
| `get-application-command` | `discordbot.getApplicationCommand()` | `--application-id` `--command-id` | 0 | Retrieves a specific global application command by its application ID and command ID |
| `get-application-role-connections-metadata` | `discordbot.getApplicationRoleConnectionsMetadata()` | `--application-id` | 0 | Retrieves all role connection metadata records for a Discord application |
| `get-application-user-role-connection` | `discordbot.getApplicationUserRoleConnection()` | `--application-id` | 0 | Fetches the role connection object for the current user for a specified Discord application |
| `get-auto-moderation-rule` | `discordbot.getAutoModerationRule()` | `--guild-id` `--rule-id` | 0 | Retrieves the complete configuration of a specific auto moderation rule within a Discord guild |
| `get-bot-gateway` | `discordbot.getBotGateway()` | — | 0 | Retrieves the WSS URL, recommended shard count, and session start limits for connecting a bot to the Discord Gateway |
| `get-channel` | `discordbot.getChannel()` | `--channel-id` | 0 | Retrieves detailed metadata for a specific Discord channel by its channel_id |
| `get-gateway` | `discordbot.getGateway()` | — | 0 | Retrieves the WebSocket URL to connect to Discord's Gateway for receiving real-time events |
| `get-guild` | `discordbot.getGuild()` | `--guild-id` | 1 | Retrieves detailed information for a specified Discord guild (server) by its guild_id, optionally including approximate member and presence counts if with_counts is true |
| `get-guild-application-command` | `discordbot.getGuildApplicationCommand()` | `--application-id` `--command-id` `--guild-id` | 0 | Retrieves detailed information for a specific application command within a Discord guild |
| `get-guild-application-command-permissions` | `discordbot.getGuildApplicationCommandPermissions()` | `--application-id` `--command-id` `--guild-id` | 0 | Retrieves the permissions for a specific application command within a guild |
| `get-guild-ban` | `discordbot.getGuildBan()` | `--guild-id` `--user-id` | 0 | Fetches the ban details for a specific user in a Discord guild, if that user is currently banned |
| `get-guild-emoji` | `discordbot.getGuildEmoji()` | `--emoji-id` `--guild-id` | 0 | Retrieves details for a specific custom emoji within a specified Discord guild, requiring valid and accessible guild and emoji IDs |
| `get-guild-member` | `discordbot.getGuildMember()` | `--guild-id` `--user-id` | 0 | Retrieves detailed information for a specific member of a Discord guild, provided the bot belongs to the guild and has necessary permissions |
| `get-guild-preview` | `discordbot.getGuildPreview()` | `--guild-id` | 0 | Fetches a public preview of a Discord guild by its ID, if the guild has the preview feature enabled |
| `get-guild-scheduled-event` | `discordbot.getGuildScheduledEvent()` | `--event-id` `--guild-id` | 1 | Retrieves a specific scheduled event from a Discord guild by its ID, optionally including the count of subscribed users |
| `get-guild-sticker` | `discordbot.getGuildSticker()` | `--guild-id` `--sticker-id` | 0 | Retrieves a specific sticker from a Discord guild using the guild and sticker IDs; requires the sticker to exist in the guild |
| `get-guild-template` | `discordbot.getGuildTemplate()` | `--template-code` | 0 | Retrieves the complete structure and details of a Discord guild template using its unique code |
| `get-guild-vanity-url` | `discordbot.getGuildVanityUrl()` | `--guild-id` | 0 | Retrieves the vanity URL invite code and usage count for a Discord guild |
| `get-guild-webhooks` | `discordbot.getGuildWebhooks()` | `--guild-id` | 0 | Retrieves all webhooks for a specified Discord guild, requiring MANAGE_WEBHOOKS permission |
| `get-guild-welcome-screen` | `discordbot.getGuildWelcomeScreen()` | `--guild-id` | 0 | Retrieves the welcome screen configuration for a Discord guild with the Community feature enabled |
| `get-guild-widget` | `discordbot.getGuildWidget()` | `--guild-id` | 0 | Retrieves the public JSON widget data for a Discord guild, if the widget is enabled for that guild |
| `get-guild-widget-png` | `discordbot.getGuildWidgetPng()` | `--guild-id` | 1 | Retrieve a PNG image widget for a Discord guild |
| `get-guild-widget-settings` | `discordbot.getGuildWidgetSettings()` | `--guild-id` | 0 | Retrieves the widget settings for a specified Discord guild, indicating if the widget is enabled and its configured channel ID |
| `get-guilds-onboarding` | `discordbot.getGuildsOnboarding()` | `--guild-id` | 0 | Retrieves the onboarding settings for a specified Discord guild, including prompts, options, default channels, and enabled status |
| `get-message` | `discordbot.getMessage()` | `--channel-id` `--message-id` | 0 | Retrieves a specific message from a Discord channel by channel and message ID |
| `get-my-application` | `discordbot.getMyApplication()` | — | 0 | Retrieves detailed information about the current authenticated Discord application via /applications/@me |
| `get-my-oauth2-application` | `discordbot.getMyOauth2Application()` | — | 0 | Retrieves detailed information about the OAuth2 application associated with the current authentication |
| `get-original-webhook-message` | `discordbot.getOriginalWebhookMessage()` | `--webhook-id` `--webhook-token` | 1 | Retrieves the original (@original) message from a Discord webhook or interaction response |
| `get-public-keys` | `discordbot.getPublicKeys()` | — | 0 | Retrieves Discord's OAuth2 public keys in JWK format for verifying access tokens |
| `get-stage-instance` | `discordbot.getStageInstance()` | `--channel-id` | 0 | Retrieves the active Stage instance for a specified stage channel |
| `get-sticker` | `discordbot.getSticker()` | `--sticker-id` | 0 | Retrieves a specific Discord sticker by its unique ID |
| `get-thread-member` | `discordbot.getThreadMember()` | `--channel-id` `--user-id` | 1 | Retrieves a member from a specified thread using their user ID, optionally including guild member details |
| `get-user` | `discordbot.getUser()` | `--user-id` | 0 | Fetches public information for a Discord user by their user ID |
| `get-webhook` | `discordbot.getWebhook()` | `--webhook-id` | 0 | Retrieves detailed information for a Discord webhook by its unique ID |
| `get-webhook-by-token` | `discordbot.getWebhookByToken()` | `--webhook-id` `--webhook-token` | 0 | Retrieves a Discord webhook's configuration using its ID and token, without requiring bot authentication |
| `get-webhook-message` | `discordbot.getWebhookMessage()` | `--message-id` `--webhook-id` `--webhook-token` | 1 | Retrieves a specific message previously sent by a Discord webhook |
| `invite-resolve` | `discordbot.inviteResolve()` | `--invite-code` | 2 | Resolves a Discord invite code to get its details, optionally including member counts and expiration |
| `invite-revoke` | `discordbot.inviteRevoke()` | `--invite-code` | 0 | Revokes a Discord invite using its code, permanently preventing new joins via this link |
| `join-thread` | `discordbot.joinThread()` | `--channel-id` | 0 | Joins the authenticated user to a thread specified by channel_id |
| `leave-guild` | `discordbot.leaveGuild()` | `--guild-id` | 0 | Enables the bot to leave a specified Discord guild (server) |
| `leave-thread` | `discordbot.leaveThread()` | `--channel-id` | 0 | Removes the currently authenticated user from a specified thread |
| `list-application-commands` | `discordbot.listApplicationCommands()` | `--application-id` | 1 | Fetches all global application commands for the specified Discord application |
| `list-auto-moderation-rules` | `discordbot.listAutoModerationRules()` | `--guild-id` | 0 | Retrieves all auto moderation rules for a specified Discord guild |
| `list-channel-invites` | `discordbot.listChannelInvites()` | `--channel-id` | 0 | Fetches all active invites for a given Discord channel |
| `list-channel-webhooks` | `discordbot.listChannelWebhooks()` | `--channel-id` | 0 | Retrieves all webhooks configured in a given Discord channel |
| `list-guild-application-command-permissions` | `discordbot.listGuildApplicationCommandPermissions()` | `--application-id` `--guild-id` | 0 | Retrieves all guild-level permission settings for all commands of a specific application within a guild |
| `list-guild-application-commands` | `discordbot.listGuildApplicationCommands()` | `--application-id` `--guild-id` | 1 | Fetches all application commands registered for a specific guild |
| `list-guild-audit-log-entries` | `discordbot.listGuildAuditLogEntries()` | `--guild-id` | 5 | Retrieves audit log entries for a specified Discord guild, requiring VIEW_AUDIT_LOG permission |
| `list-guild-bans` | `discordbot.listGuildBans()` | `--guild-id` | 3 | Fetches a list of users banned from a specified Discord guild |
| `list-guild-channels` | `discordbot.listGuildChannels()` | `--guild-id` | 0 | Fetches all channels (text, voice, category, etc.) for a specified Discord guild |
| `list-guild-emojis` | `discordbot.listGuildEmojis()` | `--guild-id` | 0 | Fetches all custom emoji objects for a specified Discord guild if the bot has access; returns only custom guild emojis, not standard Unicode or Nitro emojis |
| `list-guild-integrations` | `discordbot.listGuildIntegrations()` | `--guild-id` | 0 | Lists all integration objects for a specified Discord guild |
| `list-guild-invites` | `discordbot.listGuildInvites()` | `--guild-id` | 0 | Retrieves all currently active invite codes for a specified Discord guild |
| `list-guild-members` | `discordbot.listGuildMembers()` | `--guild-id` | 2 | Retrieves a list of members for a Discord guild |
| `list-guild-roles` | `discordbot.listGuildRoles()` | `--guild-id` | 0 | Fetches all roles in a Discord guild, providing details for each role including permissions, color, position, and other attributes |
| `list-guild-scheduled-event-users` | `discordbot.listGuildScheduledEventUsers()` | `--event-id` `--guild-id` | 4 | Fetches users who have expressed interest in a specific scheduled event within a Discord guild |
| `list-guild-scheduled-events` | `discordbot.listGuildScheduledEvents()` | `--guild-id` | 1 | Retrieves a list of scheduled events for a specified Discord guild, optionally including subscribed user counts |
| `list-guild-stickers` | `discordbot.listGuildStickers()` | `--guild-id` | 0 | Retrieves all custom sticker objects for a Discord guild; does not include standard/Nitro stickers |
| `list-guild-templates` | `discordbot.listGuildTemplates()` | `--guild-id` | 0 | Retrieves all guild templates for an existing Discord guild, specified by its ID |
| `list-guild-voice-regions` | `discordbot.listGuildVoiceRegions()` | `--guild-id` | 0 | Fetches a list of available voice regions for a specified Discord guild |
| `list-message-reactions-by-emoji` | `discordbot.listMessageReactionsByEmoji()` | `--channel-id` `--emoji` `--message-id` | 2 | Lists users who reacted to a message with a specific emoji |
| `list-messages` | `discordbot.listMessages()` | `--channel-id` | 4 | Retrieves messages from a Discord channel, ordered newest first |
| `list-my-private-archived-threads` | `discordbot.listMyPrivateArchivedThreads()` | `--channel-id` | 2 | Retrieves private archived threads from a channel that the current user is a member of |
| `list-pinned-messages` | `discordbot.listPinnedMessages()` | `--channel-id` | 0 | Retrieves all pinned messages from a Discord channel |
| `list-private-archived-threads` | `discordbot.listPrivateArchivedThreads()` | `--channel-id` | 2 | Lists private archived threads in a Discord channel, sorted by most recent archival |
| `list-public-archived-threads` | `discordbot.listPublicArchivedThreads()` | `--channel-id` | 2 | Lists public archived threads in a Discord channel, sorted by most recent archival |
| `list-sticker-packs` | `discordbot.listStickerPacks()` | — | 0 | Fetches all available Nitro sticker packs from Discord, excluding custom or guild-specific sticker packs |
| `list-thread-members` | `discordbot.listThreadMembers()` | `--channel-id` | 3 | Retrieves members of a specified Discord thread, with an option to include full guild member objects |
| `list-voice-regions` | `discordbot.listVoiceRegions()` | — | 0 | Lists all available Discord voice regions that can be used when setting a voice or stage channel's region |
| `pin-message` | `discordbot.pinMessage()` | `--channel-id` `--message-id` | 0 | Pins a message in a Discord channel |
| `preview-prune-guild` | `discordbot.previewPruneGuild()` | `--guild-id` | 2 | Previews the number of members that would be pruned from a Discord guild based on inactivity days and optional roles; does not remove members |
| `prune-guild` | `discordbot.pruneGuild()` | `--guild-id` | 3 | Removes inactive members from a Discord guild |
| `put-guilds-onboarding` | `discordbot.putGuildsOnboarding()` | `--guild-id` | 4 | Configures or updates a Discord guild's new member onboarding flow, including prompts, options, default channels, and enabled status |
| `search-guild-members` | `discordbot.searchGuildMembers()` | `--guild-id` `--query` | 1 | Searches for members in a specific Discord guild by matching a query string against usernames and nicknames |
| `set-channel-permission-overwrite` | `discordbot.setChannelPermissionOverwrite()` | `--channel-id` `--overwrite-id` `--type` | 2 | Updates or creates a permission overwrite for a role (type 0) or member (type 1) within a Discord channel using allow and deny bitwise values |
| `sync-guild-template` | `discordbot.syncGuildTemplate()` | `--guild-id` `--template-code` | 0 | Synchronizes a guild template with its source guild, updating it to match the source's current configuration; does not affect guilds already created from this template |
| `test-auth` | `discordbot.testAuth()` | — | 0 | Validate the configured Discord bot token by fetching the current authenticated bot user |
| `trigger-typing-indicator` | `discordbot.triggerTypingIndicator()` | `--channel-id` | 0 | Shows the bot is typing in a Discord channel |
| `unban-user-from-guild` | `discordbot.unbanUserFromGuild()` | `--guild-id` `--user-id` | 0 | Revokes a ban for a user from a Discord guild, allowing them to rejoin |
| `unpin-message` | `discordbot.unpinMessage()` | `--channel-id` `--message-id` | 0 | Unpins a message from a Discord channel |
| `update-application` | `discordbot.updateApplication()` | `--application-id` | 9 | Updates a Discord application's settings using its application_id |
| `update-application-command` | `discordbot.updateApplicationCommand()` | `--application-id` `--command-id` | 7 | Updates properties of a global application command |
| `update-application-user-role-connection` | `discordbot.updateApplicationUserRoleConnection()` | `--application-id` | 3 | Updates the current user's application role connection metadata for Discord's Linked Roles feature |
| `update-auto-moderation-rule` | `discordbot.updateAutoModerationRule()` | `--guild-id` `--rule-id` | 7 | Updates an existing auto moderation rule in a Discord guild |
| `update-channel` | `discordbot.updateChannel()` | `--channel-id` | 19 | Updates a Discord channel's settings (name, topic, permissions, etc.) |
| `update-guild` | `discordbot.updateGuild()` | `--guild-id` | 22 | Updates settings for a Discord guild (server) |
| `update-guild-application-command` | `discordbot.updateGuildApplicationCommand()` | `--application-id` `--command-id` `--guild-id` | 7 | Updates properties of a guild-specific application command |
| `update-guild-emoji` | `discordbot.updateGuildEmoji()` | `--emoji-id` `--guild-id` | 2 | Updates a custom emoji's name and/or role restrictions in a Discord guild; cannot create or delete emojis, and role updates for managed emojis may be restricted by their integration |
| `update-guild-member` | `discordbot.updateGuildMember()` | `--guild-id` `--user-id` | 7 | Updates a guild member's attributes including nickname, roles, voice state, timeout status, and flags |
| `update-guild-role` | `discordbot.updateGuildRole()` | `--guild-id` `--role-id` | 7 | Updates a Discord guild role's attributes (name, permissions, color, etc.) |
| `update-guild-scheduled-event` | `discordbot.updateGuildScheduledEvent()` | `--event-id` `--guild-id` | 10 | Updates an existing scheduled event in a Discord guild |
| `update-guild-sticker` | `discordbot.updateGuildSticker()` | `--guild-id` `--sticker-id` | 3 | Modifies a guild sticker's name, description, or tags |
| `update-guild-template` | `discordbot.updateGuildTemplate()` | `--guild-id` `--template-code` | 2 | Updates a Discord guild template's name and/or description; omitted fields retain current values, and an empty string for description clears it |
| `update-guild-welcome-screen` | `discordbot.updateGuildWelcomeScreen()` | `--guild-id` | 3 | Updates a guild's welcome screen configuration, including description, enabled status, and up to 5 welcome channels |
| `update-guild-widget-settings` | `discordbot.updateGuildWidgetSettings()` | `--guild-id` | 2 | Updates a Discord guild's widget settings, such as its enabled state or invite channel |
| `update-message` | `discordbot.updateMessage()` | `--channel-id` `--message-id` | 6 | Edits a message previously sent by the bot |
| `update-my-application` | `discordbot.updateMyApplication()` | — | 9 | Updates settings for the current authenticated Discord application via /applications/@me |
| `update-my-guild-member` | `discordbot.updateMyGuildMember()` | `--guild-id` | 1 | Modifies the current bot's member profile (nickname) in a Discord guild |
| `update-my-user` | `discordbot.updateMyUser()` | — | 2 | Updates the current bot user's Discord username and/or avatar |
| `update-original-webhook-message` | `discordbot.updateOriginalWebhookMessage()` | `--webhook-id` `--webhook-token` | 7 | Updates the original (@original) message previously sent by a webhook or interaction response |
| `update-self-voice-state` | `discordbot.updateSelfVoiceState()` | `--guild-id` | 3 | Updates the bot's own voice state in a guild Stage channel, such as toggling suppress or requesting to speak |
| `update-voice-state` | `discordbot.updateVoiceState()` | `--guild-id` `--user-id` | 2 | Updates another user's voice state in a Discord stage channel |
| `update-webhook` | `discordbot.updateWebhook()` | `--webhook-id` | 3 | Updates properties of an existing Discord webhook such as name, avatar, or channel |
| `update-webhook-by-token` | `discordbot.updateWebhookByToken()` | `--webhook-id` `--webhook-token` | 2 | Updates a Discord webhook's name and/or avatar using its ID and token, without bot authentication |
| `update-webhook-message` | `discordbot.updateWebhookMessage()` | `--message-id` `--webhook-id` `--webhook-token` | 7 | Updates a message previously sent by a webhook, allowing modification of content, embeds, attachments, or components |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
