Agent skill
discord-manage-channel
Manage and update Discord channels via the Discord API. Use this skill when the user wants to modify channel properties, update names/topics, change permissions, or delete channels.
Install this agent skill to your Project
npx add-skill https://github.com/EvolutionAPI/evo-nexus/tree/main/.claude/skills/discord-manage-channel
SKILL.md
Discord Manage Channel
Manage and update Discord channels using the Discord API v10. This skill supports modifying channel properties including name, topic, position, permissions, and deleting channels.
When to Use This Skill
Use this skill when the user wants to:
- Rename a Discord channel
- Update a channel's topic/description
- Change channel permissions
- Move a channel to a different category
- Reorder channel positions
- Toggle NSFW status
- Update voice channel settings (user limit, bitrate)
- Delete a channel
Prerequisites
DISCORD_BOT_TOKENenvironment variable must be set- Bot must be a member of the target server
- Bot must have "Manage Channels" permission in the server
- Valid Discord channel ID (18-19 digit snowflake ID)
Instructions
When the user requests to manage a Discord channel:
-
Validate Requirements
- Confirm
DISCORD_BOT_TOKENis set in environment - Verify channel ID is provided (18-19 digit number)
- Ensure bot has "Manage Channels" permission
- Validate any new values (name, topic, etc.)
- Confirm
-
Determine Operation Type
- Update (PATCH): Modify channel properties
- Delete (DELETE): Remove channel permanently
-
For Updates - Prepare Payload Include only the fields you want to change:
name: New channel name (2-100 chars, lowercase, hyphens/underscores)topic: New topic (max 1024 chars for text channels)position: New sort position (integer)parent_id: Move to different category (category channel ID or null)nsfw: Toggle NSFW status (true/false)permission_overwrites: Update permissions (array)user_limit: Voice channel user limit (0-99, 0 = unlimited)bitrate: Voice channel bitrate (8000-96000 for non-boosted servers)
-
Make the API Request
Update Channel (PATCH):
bashcurl -X PATCH "https://discord.com/api/v10/channels/{CHANNEL_ID}" \ -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "name": "new-channel-name", "topic": "New channel topic" }'Delete Channel (DELETE):
bashcurl -X DELETE "https://discord.com/api/v10/channels/{CHANNEL_ID}" \ -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" -
Handle Response
- 200 OK (Update): Channel updated successfully
- 204 No Content (Delete): Channel deleted successfully
- 400 Bad Request: Invalid parameters
- 401 Unauthorized: Invalid bot token
- 403 Forbidden: Missing "Manage Channels" permission
- 404 Not Found: Channel doesn't exist
-
Report Results
- Confirm operation completed successfully
- Show what was changed
- For deletes, warn that operation is permanent
- If error occurs, explain clearly
Updatable Properties
Text Channels
| Property | Type | Description | Validation |
|---|---|---|---|
| name | string | Channel name | 2-100 chars, lowercase, hyphens/underscores |
| topic | string | Channel topic | Max 1024 characters |
| position | integer | Sort position | Positive integer |
| parent_id | snowflake | Category ID | Valid category ID or null |
| nsfw | boolean | NSFW status | true or false |
| permission_overwrites | array | Permission overrides | Array of permission objects |
Voice Channels
| Property | Type | Description | Validation |
|---|---|---|---|
| name | string | Channel name | 2-100 chars |
| position | integer | Sort position | Positive integer |
| parent_id | snowflake | Category ID | Valid category ID or null |
| user_limit | integer | Max users | 0-99 (0 = unlimited) |
| bitrate | integer | Audio quality | 8000-96000 (higher for boosted) |
| permission_overwrites | array | Permission overrides | Array of permission objects |
Categories
| Property | Type | Description | Validation |
|---|---|---|---|
| name | string | Category name | 2-100 chars |
| position | integer | Sort position | Positive integer |
| permission_overwrites | array | Permission overrides | Array of permission objects |
Common Operations
Rename Channel
{
"name": "new-channel-name"
}
Update Topic
{
"topic": "New channel description or topic"
}
Move to Category
{
"parent_id": "123456789012345678"
}
Remove from Category
{
"parent_id": null
}
Toggle NSFW
{
"nsfw": true
}
Update Voice Settings
{
"user_limit": 10,
"bitrate": 64000
}
Update Position
{
"position": 5
}
Permission Overwrites
To update channel permissions:
{
"permission_overwrites": [
{
"id": "role_or_user_id",
"type": 0,
"allow": "1024",
"deny": "2048"
}
]
}
Permission structure:
id: Role ID or User IDtype: 0 for role, 1 for userallow: Bitwise permission value (permissions to grant)deny: Bitwise permission value (permissions to deny)
Common permission bits:
1024(0x400): VIEW_CHANNEL2048(0x800): SEND_MESSAGES4096(0x1000): SEND_TTS_MESSAGES8192(0x2000): MANAGE_MESSAGES16384(0x4000): EMBED_LINKS32768(0x8000): ATTACH_FILES65536(0x10000): READ_MESSAGE_HISTORY1048576(0x100000): CONNECT (voice)2097152(0x200000): SPEAK (voice)
Deleting Channels
IMPORTANT: Channel deletion is permanent and cannot be undone.
Before deleting:
- Confirm with user that deletion is intentional
- Warn that all messages will be lost
- Suggest archiving as alternative if applicable
- Verify channel ID is correct
Delete command:
curl -X DELETE "https://discord.com/api/v10/channels/{CHANNEL_ID}" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}"
Error Handling
Common Errors
400 Bad Request - Invalid Name
{
"code": 50035,
"errors": {
"name": {
"_errors": [{
"code": "BASE_TYPE_BAD_LENGTH",
"message": "Must be between 2 and 100 in length."
}]
}
}
}
403 Forbidden - Missing Permissions
{
"code": 50013,
"message": "Missing Permissions"
}
404 Not Found - Channel Doesn't Exist
{
"code": 10003,
"message": "Unknown Channel"
}
400 Bad Request - Invalid Parent
{
"code": 50035,
"message": "Invalid Form Body - parent_id: Unknown category"
}
Rate Limiting
- Channel updates use a shared rate limit bucket
- Limit: 5 requests per 5 seconds per channel
- For bulk updates, add delays between requests
- Wait 1 second between sequential channel updates
Audit Log
Channel management actions are recorded in the server's audit log:
- Action type: Channel Update (11) or Channel Delete (12)
- Includes: Who made the change, what changed, when
- Visible to users with "View Audit Log" permission
Best Practices
-
Validate Before Updating
- Check channel name follows Discord rules
- Verify parent_id exists before moving
- Validate permission values
-
Confirm Destructive Actions
- Always confirm before deleting channels
- Warn about permanent data loss
- Suggest alternatives when appropriate
-
Batch Updates Carefully
- Add delays to respect rate limits
- Update multiple properties in one request when possible
- Handle partial failures gracefully
-
Permission Management
- Use role permissions over user permissions when possible
- Document permission changes
- Test permissions after updating
-
Channel Names
- Follow server naming conventions
- Use lowercase with hyphens
- Keep names descriptive but concise
-
Category Organization
- Keep related channels in same category
- Use consistent naming within categories
- Update category permissions to affect children
Security Notes
- Validate channel belongs to expected server
- Don't expose channel IDs publicly
- Log channel deletions for audit trail
- Require confirmation for destructive operations
- Respect permission hierarchies
Response Objects
Update Response (200 OK)
Returns the updated channel object with all properties.
Delete Response (204 No Content)
Returns empty response on successful deletion.
Examples
See examples.md for detailed usage scenarios.
API Reference
- Update Endpoint:
PATCH /channels/{channel.id} - Delete Endpoint:
DELETE /channels/{channel.id} - Discord API Version: v10
- Documentation: https://discord.com/developers/docs/resources/channel#modify-channel
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
data-create-viz
Cria visualizações de dados de qualidade profissional com Python no tema Evolution (fundo escuro, acento
cs-customer-escalation
Empacota uma escalação para Devs, Produto ou Davidson com contexto completo. Use quando um bug precisa de atenção além do suporte normal, vários clientes reportam o mesmo problema, um cliente está ameaçando cancelar, ou um problema ficou sem resolução além do SLA. / Package an escalation for engineering, product, or leadership with full context. Use when a bug needs engineering attention beyond normal support, multiple customers report the same issue, a customer is threatening to churn, or an issue has sat unresolved past its SLA.
mkt-draft-content
Draft blog posts, social media, email newsletters, landing pages, press releases, and case studies with channel-specific formatting and SEO recommendations. Use when writing any marketing content, when you need headline or subject line options, or when adapting a message for a specific platform, audience, and brand voice.
gog-tasks
Create, manage, and prioritize tasks and todo items. Convert emails to tasks, set priorities (P0-P3) and categories (Work/Personal/Errands/Admin), review daily priorities, track blocked and overdue tasks. Use when user mentions tasks, todos, action items, or wants to convert emails to tasks. Requires confirmation before creating or deleting tasks.
discord-get-messages
Retrieve messages from Discord channels via the Discord API. Use this skill when the user wants to read, search, or analyze messages from a Discord channel.
cs-customer-research
Pesquisa multi-fonte sobre pergunta ou tópico de cliente com atribuição de fontes. Use quando um cliente pergunta algo que precisa ser verificado, investigando se um bug foi reportado antes, verificando o que foi dito anteriormente a uma conta específica, ou coletando contexto antes de redigir uma resposta. / Multi-source research on a customer question or topic with source attribution. Use when a customer asks something you need to look up, investigating whether a bug has been reported before, checking what was previously told to a specific account, or gathering background before drafting a response.
Didn't find tool you were looking for?