Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Discord Create Channel

ASecurity

Create new channels in Discord guilds/servers via the Discord API. Use this skill when the user wants to create text channels, voice channels, announcement channels, or categories in a Discord server.

529 stars
0 votes
0 copies
0 views
Added 5/29/2026
ai-agentsgobashgitapisecuritydocumentation

Works with

api

Security Analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned 5/29/2026

$npx -y skills add evolution-foundation/evo-nexus --skill discord-create-channel --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Discord Create Channel?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Discord Create Channel
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/evolution-foundation-discord-create-channel/badge)](https://www.skillsdirectory.com/skills/evolution-foundation-discord-create-channel)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: discord-create-channel
description: Create new channels in Discord guilds/servers via the Discord API. Use this skill when the user wants to create text channels, voice channels, announcement channels, or categories in a Discord server.
---

# Discord Create Channel

Create new channels in Discord guilds (servers) using the Discord API v10. This skill supports creating text channels, voice channels, announcement channels, stage channels, and categories.

## When to Use This Skill

Use this skill when the user wants to:
- Create a new text channel in a Discord server
- Create a new voice channel for meetings or discussions
- Create an announcement channel for server updates
- Create a category to organize channels
- Set up a new channel with specific permissions
- Create a stage channel for large audio events

## 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 guild ID (18-19 digit snowflake ID)

## Channel Types

Discord supports the following channel types (use numeric value):

| Type | Value | Description |
|------|-------|-------------|
| GUILD_TEXT | 0 | Text channel |
| GUILD_VOICE | 2 | Voice channel |
| GUILD_CATEGORY | 4 | Category (organizes channels) |
| GUILD_ANNOUNCEMENT | 5 | Announcement channel (one-way communication) |
| GUILD_STAGE_VOICE | 13 | Stage channel (audio events) |

## Instructions

When the user requests to create a Discord channel:

1. **Validate Requirements**
   - Confirm `DISCORD_BOT_TOKEN` is set in environment
   - Verify guild ID is provided (18-19 digit number)
   - Ensure channel name is valid (2-100 characters, lowercase, hyphens/underscores only)
   - Determine channel type (default to text channel if not specified)

2. **Prepare Channel Properties**
   - `name`: Channel name (required, 2-100 chars)
   - `type`: Channel type (0=text, 2=voice, 4=category, 5=announcement, 13=stage)
   - `topic`: Channel topic/description (optional, max 1024 chars for text channels)
   - `parent_id`: Category ID to place channel in (optional)
   - `nsfw`: Whether channel is NSFW (optional, default false)
   - `position`: Sort position (optional)
   - `permission_overwrites`: Permission overrides (optional, array)

3. **Make the API Request**
   Use the following curl command structure:

   ```bash
   curl -X POST "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
     -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "channel-name",
       "type": 0
     }'
   ```

   Replace:
   - `{GUILD_ID}` with the actual guild ID
   - `"channel-name"` with the desired channel name
   - `0` with the appropriate channel type

4. **Handle Response**
   - 201 Created: Channel created successfully, return channel ID
   - 400 Bad Request: Invalid channel name or parameters
   - 401 Unauthorized: Invalid bot token
   - 403 Forbidden: Missing "Manage Channels" permission
   - 404 Not Found: Guild doesn't exist or bot not in server

5. **Report Results**
   - Confirm channel was created successfully
   - Provide the channel ID for reference
   - Include channel URL for easy access
   - If error occurs, explain the issue clearly

## Channel Name Validation

Discord channel names must follow these rules:
- 2-100 characters in length
- Lowercase letters, numbers, hyphens, and underscores only
- No spaces (use hyphens instead)
- No special characters or emojis

**Valid names:**
- `general`
- `general-chat`
- `voice-room-1`
- `announcements`

**Invalid names:**
- `General Chat` (has spaces and capital letters)
- `chat!` (has special character)
- `a` (too short)
- `café` (has accented character)

## Creating Different Channel Types

### Text Channel (Type 0)
```json
{
  "name": "general-chat",
  "type": 0,
  "topic": "General discussion for all members"
}
```

### Voice Channel (Type 2)
```json
{
  "name": "voice-lounge",
  "type": 2,
  "user_limit": 10
}
```

### Category (Type 4)
```json
{
  "name": "Community",
  "type": 4
}
```

### Announcement Channel (Type 5)
```json
{
  "name": "server-updates",
  "type": 5,
  "topic": "Official server announcements"
}
```

### Stage Channel (Type 13)
```json
{
  "name": "community-stage",
  "type": 13
}
```

## Setting Channel in Category

To place a new channel in an existing category:

```json
{
  "name": "new-channel",
  "type": 0,
  "parent_id": "123456789012345678"
}
```

The `parent_id` is the ID of the category channel.

## Channel Permissions

To set custom permissions when creating a channel:

```json
{
  "name": "private-channel",
  "type": 0,
  "permission_overwrites": [
    {
      "id": "role_id_here",
      "type": 0,
      "allow": "1024",
      "deny": "0"
    }
  ]
}
```

Permission types:
- `type: 0` = Role
- `type: 1` = Member

Common permission values:
- `1024` = View Channel
- `2048` = Send Messages
- `8192` = Read Message History
- `65536` = Mention Everyone

## 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."
        }
      ]
    }
  }
}
```
**Solution:** Ensure channel name is 2-100 characters and follows naming rules

**403 Forbidden - Missing Permissions**
```json
{
  "code": 50013,
  "message": "Missing Permissions"
}
```
**Solution:** Bot needs "Manage Channels" permission in the server

**404 Not Found - Invalid Guild**
```json
{
  "code": 10004,
  "message": "Unknown Guild"
}
```
**Solution:** Verify guild ID is correct and bot is member of the server

**400 Bad Request - Invalid Category**
```json
{
  "code": 50035,
  "message": "Invalid parent_id"
}
```
**Solution:** Ensure parent_id is a valid category channel ID in the same guild

## Response Object

Successful channel creation returns:
```json
{
  "id": "987654321098765432",
  "type": 0,
  "guild_id": "123456789012345678",
  "position": 0,
  "permission_overwrites": [],
  "name": "new-channel",
  "topic": null,
  "nsfw": false,
  "last_message_id": null,
  "parent_id": null
}
```

## Best Practices

1. **Naming Conventions**
   - Use descriptive, lowercase names
   - Use hyphens to separate words
   - Keep names concise but clear

2. **Organization**
   - Create categories first, then channels within them
   - Use consistent naming across similar channels
   - Set appropriate permissions from the start

3. **Channel Limits**
   - Discord servers have a limit of 500 channels
   - Consider channel count before creating new ones
   - Archive or delete unused channels

4. **Permissions**
   - Set permissions during creation when possible
   - Use role-based permissions over member-specific
   - Inherit category permissions when appropriate

5. **Voice Channels**
   - Set reasonable user limits
   - Consider bitrate for quality
   - Use stage channels for large events

## Security Notes

- Validate guild ID belongs to expected server
- Don't create channels programmatically without user confirmation
- Be cautious with permission overwrites
- Follow Discord's automation guidelines

## Examples

See `examples.md` for detailed usage scenarios.

## API Reference

- Endpoint: `POST /guilds/{guild.id}/channels`
- Discord API Version: v10
- Documentation: https://discord.com/developers/docs/resources/guild#create-guild-channel

Attribution

evolution-foundationevolution-foundation
View sourceSee grades on GitHubMore from evolution-foundation →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →