ai-image-creator
Generate PNG images using AI (multiple models via OpenRouter including Gemini, FLUX.2, Riverflow, SeedDream, GPT-5 Image, proxied through Cloudflare AI Gateway…
List all channels in a Discord guild/server via the Discord API. Use this skill when the user wants to see all channels, find specific channels, or audit server structure.
$ npx -y skills add evolution-foundation/evo-nexus --skill discord-list-channels --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/discord-list-channelsContext preview
The summary Claude sees to decide when to auto-load this skill.
List all channels in a Discord guild/server via the Discord API. Use this skill when the user wants to see all channels, find specific channels, or audit server structure.
name: discord-list-channels description: List all channels in a Discord guild/server via the Discord API. Use this skill when the user wants to see all channels, find specific channels, or audit server structure.
List all channels in a Discord guild (server) using the Discord API v10. This skill retrieves all channels including text channels, voice channels, categories, announcement channels, and stage channels.
Use this skill when the user wants to:
Channels are returned with the following type values:
| Type | Value | Description | |------|-------|-------------| | GUILD_TEXT | 0 | Text channel | | GUILD_VOICE | 2 | Voice channel | | GUILD_CATEGORY | 4 | Category (organizes channels) | | GUILD_ANNOUNCEMENT | 5 | Announcement channel | | GUILD_STAGE_VOICE | 13 | Stage channel | | GUILD_FORUM | 15 | Forum channel |
When the user requests to list Discord channels:
1. **Validate Requirements**
2. **Make the API Request** Use the following curl command structure:
curl -X GET "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}"Replace `{GUILD_ID}` with the actual guild ID.
3. **Process Response**
4. **Handle Response Codes**
5. **Present Results**
Each channel object contains:
{
"id": "123456789012345678",
"type": 0,
"guild_id": "987654321098765432",
"position": 0,
"permission_overwrites": [],
"name": "general",
"topic": "General discussion",
"nsfw": false,
"last_message_id": "111222333444555666",
"parent_id": null
}Additional fields for voice channels:
{
"bitrate": 64000,
"user_limit": 0,
"rtc_region": null
}Filter channels to show only specific types:
# Get all channels then filter by type
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq '.[] | select(.type == 0)' # Text channels onlyType filters:
Search for channels by name:
# Get channels and search by name
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq '.[] | select(.name | contains("general"))'List channels in a specific category:
# Get channels in category with parent_id
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq '.[] | select(.parent_id == "category_id_here")'Organize channels by their parent category:
# List all channels grouped by category
CHANNELS=$(curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}")
# Get categories
echo "$CHANNELS" | jq -r '.[] | select(.type == 4) | .name + " (ID: " + .id + ")"'
# Get channels in each category
for CATEGORY_ID in $(echo "$CHANNELS" | jq -r '.[] | select(.type == 4) | .id'); do
echo "Channels in category $CATEGORY_ID:"
echo "$CHANNELS" | jq -r ".[] | select(.parent_id == \"$CATEGORY_ID\") | \" - \" + .name"
doneChannels have a `position` field for sorting:
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq 'sort_by(.position)'Channels in server 123456789012345678: - general (text) - announcements (announcement) - voice-chat (voice) - Community (category)
=== Text Channels === general (ID: 111222333444555666) Topic: General discussion NSFW: No announcements (ID: 111222333444555667) Topic: Server updates NSFW: No === Voice Channels === voice-chat (ID: 111222333444555668) User Limit: None Bitrate: 64kbps === Categories === Community (ID: 111222333444555669)
📁 Community (Category) 💬 general-chat (Text) 💬 help (Text) 🔊 Voice Room 1 (Voice) 📁 Administration (Category) 💬 mod-chat (Text) 💬 admin-only (Text) 💬 welcome (Text) - No category 📢 announcements (Announcement) - No category
Channel ID,Name,Type,Category,Topic 111222333444555666,general,text,Community,General discussion 111222333444555667,voice-chat,voice,Community, 111222333444555668,announcements,announcement,,Server updates
When displaying channels, use these labels:
| Type Value | Display Label | Emoji | |------------|---------------|-------|
Generate PNG images using AI (multiple models via OpenRouter including Gemini, FLUX.2, Riverflow, SeedDream, GPT-5 Image, proxied through Cloudflare AI Gateway…
Create a new custom agent for the workspace. Guides the user through defining agent name, domain, personality, skills, model, and memory folder. Use when the…
Create a new slash command for Claude Code. Guides the user through defining the command name, what it does, and generates the markdown file in…
Create a Mission, Project, or Goal (Mission → Project → Goal → Task hierarchy) in EvoNexus. Guides the user through picking a mission, choosing or creating a…
Create a new heartbeat (proactive agent scheduled with a decision prompt) for EvoNexus. Guides the user through picking an agent, setting interval, wake…
Create a new custom integration (API/service wrapper) for the workspace. Guides the user through defining the integration's slug, display name, description,…