Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install evolution-foundation-evo-nexus-claude-skills-discord-manage-channelgit clone https://github.com/evolution-foundation/evo-nexus.gitcp evo-nexus/SKILL.MD ~/.claude/skills/evolution-foundation-evo-nexus-claude-skills-discord-manage-channel/SKILL.md---
name: discord-manage-channel
description: 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.
---
# 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_TOKEN` environment 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:
1. **Validate Requirements**
- Confirm `DISCORD_BOT_TOKEN` is 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.)
2. **Determine Operation Type**
- Update (PATCH): Modify channel properties
- Delete (DELETE): Remove channel permanently
3. **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)
4. **Make the API Request**
**Update Channel (PATCH):**
```bash
curl -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):**
```bash
curl -X DELETE "https://discord.com/api/v10/channels/{CHANNEL_ID}" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}"
```
5. **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
6. **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
```json
{
"name": "new-channel-name"
}
```
### Update Topic
```json
{
"topic": "New channel description or topic"
}
```
### Move to Category
```json
{
"parent_id": "123456789012345678"
}
```
### Remove from Category
```json
{
"parent_id": null
}
```
### Toggle NSFW
```json
{
"nsfw": true
}
```
### Update Voice Settings
```json
{
"user_limit": 10,
"bitrate": 64000
}
```
### Update Position
```json
{
"position": 5
}
```
## Permission Overwrites
To update channel permissions:
```json
{
"permission_overwrites": [
{
"id": "role_or_user_id",
"type": 0,
"allow": "1024",
"deny": "2048"
}
]
}
```
Permission structure:
- `id`: Role ID or User ID
- `type`: 0 for role, 1 for user
- `allow`: Bitwise permission value (permissions to grant)
- `deny`: Bitwise permission value (permissions to deny)
Common permission bits:
- `1024` (0x400): VIEW_CHANNEL
- `2048` (0x800): SEND_MESSAGES
- `4096` (0x1000): SEND_TTS_MESSAGES
- `8192` (0x2000): MANAGE_MESSAGES
- `16384` (0x4000): EMBED_LINKS
- `32768` (0x8000): ATTACH_FILES
- `65536` (0x10000): READ_MESSAGE_HISTORY
- `1048576` (0x100000): CONNECT (voice)
- `2097152` (0x200000): SPEAK (voice)
## Deleting Channels
**IMPORTANT:** Channel deletion is permanent and cannot be undone.
Before deleting:
1. Confirm with user that deletion is intentional
2. Warn that all messages will be lost
3. Suggest archiving as alternative if applicable
4. Verify channel ID is correct
Delete command:
```bash
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**
```json
{
"code": 50035,
"errors": {
"name": {
"_errors": [{
"code": "BASE_TYPE_BAD_LENGTH",
"message": "Must be between 2 and 100 in length."
}]
}
}
}
```
**403 Forbidden - Missing Permissions**
```json
{
"code": 50013,
"message": "Missing Permissions"
}
```
**404 Not Found - Channel Doesn't Exist**
```json
{
"code": 10003,
"message": "Unknown Channel"
}
```
**400 Bad Request - Invalid Parent**
```json
{
"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
1. **Validate Before Updating**
- Check channel name follows Discord rules
- Verify parent_id exists before moving
- Validate permission values
2. **Confirm Destructive Actions**
- Always confirm before deleting channels
- Warn about permanent data loss
- Suggest alternatives when appropriate
3. **Batch Updates Carefully**
- Add delays to respect rate limits
- Update multiple properties in one request when possible
- Handle partial failures gracefully
4. **Permission Management**
- Use role permissions over user permissions when possible
- Document permission changes
- Test permissions after updating
5. **Channel Names**
- Follow server naming conventions
- Use lowercase with hyphens
- Keep names descriptive but concise
6. **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