🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Discli

by @ibbybuilds

Discord server management CLI. Use when you need to manage Discord servers — channels, roles, permissions, messages, embeds, file uploads, emojis, invites, a...

TERMINAL
clawhub install discli

📖 About This Skill


name: discli description: | Discord server management CLI. Use when you need to manage Discord servers — channels, roles, permissions, messages, embeds, file uploads, emojis, invites, audit logs, server settings. Send images, bulk delete, search messages, clone channels, upload custom emojis, change server icons. One command = one API call. Run discli --help or discli --help to discover subcommands. version: 0.6.2 metadata: openclaw: requires: env: - BOT_TOKEN bins: - discli primaryEnv: BOT_TOKEN emoji: "🎮" homepage: https://github.com/ibbybuilds/discli

discli — Discord Server Management CLI

Control Discord servers from the terminal. Works for both humans and AI agents.

Agent Defaults

  • Output is auto-detected: YAML when piped (agent), table in terminal (human).
  • YAML is the preferred format for agents — 5x fewer tokens than JSON.
  • Use -n to limit results and keep token usage low.
  • Use --format yaml to force structured output, --format json if you need strict JSON.
  • Use --dry-run on create/rename/permission commands to preview changes.
  • Destructive commands (delete, kick, ban) require --confirm — they will NOT prompt.
  • See SCHEMA.md for output shapes.
  • Install / Update

    npm install -g @ibbybuilds/discli         # Install
    npm install -g @ibbybuilds/discli@latest   # Update to latest
    

    If discli is not installed, install it first before running any commands.

    Windows: Prefer Git Bash over PowerShell. Git Bash handles UTF-8, quoting, and special characters correctly out of the box. PowerShell has encoding issues (garbled emojis), quoting issues (special chars like &, $, = break messages), and argument expansion problems with long text.

    If you must use PowerShell, run this at session start:

    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    
    And use single quotes for message content to avoid special character expansion. First-time setup: docs/BOT_SETUP.md

    Message Limits

  • Message content: 2,000 characters max
  • Embed description: 4,096 characters max
  • Embed total (all fields combined): 6,000 characters max
  • Max 10 embeds per message
  • If your message exceeds 2,000 characters, split it into multiple msg send calls. For longer content, use msg embed with --description (up to 4,096 chars). Never truncate silently.

    Quick Reference

    discli init --token            # First-time setup
    discli server list                    # List servers
    discli server select              # Set default server
    discli server info                    # Server overview
    discli server set --name "X"         # Change server name
    discli server set --description "X"  # Set description
    discli server set --verification medium  # Verification level
    discli server set --notifications only_mentions  # Notification default
    discli server icon ./logo.png            # Change server icon

    discli invite list # List all invites discli invite create # Create invite discli invite create --max-age 3600 --max-uses 10 # With limits discli invite delete --confirm # Delete invite

    discli channel list # List channels discli channel create # Create channel (--type, --category, --topic) discli channel delete # Delete channel (--confirm required) discli channel rename # Rename channel discli channel topic # Set topic discli channel move # Move to category (--category, --position) discli channel clone # Clone channel with same settings discli channel slowmode # Set slowmode (0 to disable)

    discli role list # List roles discli role create # Create role (--color, --mentionable) discli role edit --color "#hex" --name "New" # Edit role discli role delete # Delete role (--confirm required) discli role assign # Give role to member discli role remove # Remove role from member

    discli member list # List members discli member info # Member details discli member kick # Kick (--confirm, --reason) discli member ban # Ban (--confirm, --reason) discli member nick # Change nickname

    discli perm view # View channel permissions discli perm set # Set permissions (--allow, --deny) discli perm lock # Make read-only for @everyone discli perm unlock # Remove read-only discli perm list # List available permission names

    discli msg send "text" # Send message discli msg send "text" --reply # Reply to message discli msg send "text" --file ./img.png # Send with file attachment discli msg send --file ./a.png --file ./b.pdf # Multiple files discli msg embed --title "X" --description "Y" --color "#hex" # Rich embed discli msg embed --title "X" --image ./local.png # Embed with local image discli msg embed --title "X" --field "Name|Value|inline" # Embed with fields discli msg search "keyword" # Search messages by keyword discli msg read -n 10 # Read last N messages discli msg edit "new" # Edit bot message discli msg delete --confirm # Delete message discli msg bulk-delete -n 10 --confirm # Delete multiple messages discli msg react 👍 # Add reaction discli msg unreact 👍 # Remove reaction discli msg pin # Pin message discli msg unpin # Unpin message discli msg pins # List pinned messages discli msg thread "Name" # Create thread discli msg thread "Name" --message # Thread from message

    discli emoji list # List custom emojis discli emoji upload ./img.png # Upload custom emoji discli emoji delete --confirm # Delete custom emoji

    discli audit log # View recent audit log discli audit log -n 50 # Last 50 entries discli audit log --type member_kick # Filter by action type discli audit log --user # Filter by who performed action discli audit types # List action type names

    Global Flags

  • --format — output format (default: auto = yaml when piped, table in terminal)
  • --server — target a specific server instead of default
  • -n — limit results on list commands
  • Exit Codes

  • 0 — success
  • 1 — general error
  • 2 — usage error
  • 3 — not found
  • 4 — permission denied
  • Bot Personality (SOUL.md)

    When sending messages, reacting, or interacting as the bot, check for a SOUL.md file at ~/.discli/SOUL.md. If it exists, read it first and stay in character for all bot interactions (messages, replies, reactions, embeds).

    If no SOUL.md exists yet, ask your human how they want their bot to sound:

  • What's the bot's name?
  • What personality? (cheeky, professional, friendly, chaotic, minimal, etc.)
  • How should it talk? (casual lowercase, formal, emoji-heavy, dry wit, etc.)
  • Any specific traits or quirks?
  • Then generate a SOUL.md and save it to ~/.discli/SOUL.md. Use this structure:

  • Core Truths: behavioral principles (how the bot acts)
  • Boundaries: hard limits (what it won't do)
  • Vibe: tone, humor style, emoji preferences, example responses
  • Identity: name, what it is, who made it
  • The bot should feel like a character, not a command runner.

    Notes

  • Channel/role/member names are resolved case-insensitively.
  • You can use IDs instead of names to avoid ambiguity.
  • Rate limits: Discord allows ~5 requests/second. Channel renames have a 10-min cooldown per channel.
  • Config stored in ~/.discli/ (token in .env, defaults in config.json).
  • Bot personality stored in ~/.discli/SOUL.md (optional, see above).
  • 📋 Tips & Best Practices

  • Channel/role/member names are resolved case-insensitively.
  • You can use IDs instead of names to avoid ambiguity.
  • Rate limits: Discord allows ~5 requests/second. Channel renames have a 10-min cooldown per channel.
  • Config stored in ~/.discli/ (token in .env, defaults in config.json).
  • Bot personality stored in ~/.discli/SOUL.md (optional, see above).