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...
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
discli — Discord Server Management CLI
Control Discord servers from the terminal. Works for both humans and AI agents.
Agent Defaults
-n to limit results and keep token usage low.--format yaml to force structured output, --format json if you need strict JSON.--dry-run on create/rename/permission commands to preview changes.--confirm — they will NOT prompt.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.mdMessage Limits
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 icondiscli 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 commandsExit Codes
0 — success1 — general error2 — usage error3 — not found4 — permission deniedBot 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:
Then generate a SOUL.md and save it to ~/.discli/SOUL.md. Use this structure:
The bot should feel like a character, not a command runner.
Notes
~/.discli/ (token in .env, defaults in config.json).~/.discli/SOUL.md (optional, see above).📋 Tips & Best Practices
~/.discli/ (token in .env, defaults in config.json).~/.discli/SOUL.md (optional, see above).