Discli

v0.6.2

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

0· 133·0 current·0 all-time
byIbrahim@ibbybuilds

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for ibbybuilds/discli.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Discli" (ibbybuilds/discli) from ClawHub.
Skill page: https://clawhub.ai/ibbybuilds/discli
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: BOT_TOKEN
Required binaries: discli
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install discli

ClawHub CLI

Package manager switcher

npx clawhub@latest install discli
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The name/description (Discord server management) align with what the skill requires: the discli binary and a BOT_TOKEN. The npm install instructions in SKILL.md match the stated source (GitHub/@ibbybuilds). No unrelated services, credentials, or binaries are requested.
Instruction Scope
SKILL.md instructs sending messages, uploading local files, reading/searching messages and audit logs, and performing destructive actions (delete, kick, ban) — all expected for a management CLI. It also instructs using discli init --token <token>, which can leak tokens if passed on the command line; SKILL.md otherwise declares BOT_TOKEN as the primary environment variable. SOUL.md includes persona directions to 'scan the messages' and 'read the channel' — these are within scope for an admin bot but are privacy-relevant and give the agent discretion to read server content.
Install Mechanism
There is no automated install spec in the skill bundle (instruction-only). SKILL.md recommends installing the npm package globally (npm install -g @ibbybuilds/discli). That is a standard, expected distribution method for a CLI; the package source is a GitHub org referenced in the docs. No opaque downloads or extract steps are present in the skill bundle.
Credentials
Only a single required env var (BOT_TOKEN) is declared, which is appropriate for controlling a Discord bot. However, BOT_TOKEN is powerful: it can grant the bot full permissions configured in Discord. Passing tokens on the command line (discli init --token <token>) can expose them via shell history or process listings; prefer storing the token in an environment variable or a secure file. No unrelated credentials are requested.
Persistence & Privilege
The skill is not always: true and does not request system-wide configuration changes. It's user-invocable and allows autonomous model invocation by default (platform default). There is no evidence the skill attempts to modify other skills or system configs.
Assessment
This skill appears to do what it says: manage Discord servers via the discli CLI and requires a BOT_TOKEN. Before installing or running it, consider: 1) BOT_TOKEN is powerful—use a bot account with least privilege necessary and review the bot's permissions in the Discord Developer Portal. 2) Avoid passing tokens on the command line (discli init --token ...) because shell history and process lists can expose them; use the BOT_TOKEN environment variable or a secure secrets store. 3) Review the npm package and the GitHub repo (@ibbybuilds/discli) yourself before installing to ensure the published package code matches the repo and contains no surprises. 4) Be cautious with destructive commands (delete/kick/ban); SKILL.md mentions --confirm and --dry-run — use them. 5) The skill (and its persona) will read channel messages and audit logs as part of management tasks; if you need to limit reading or data exposure, restrict the bot's server permissions or avoid installing the skill. If you want a deeper assessment, provide the actual installed package contents (or the GitHub repo source) so the code can be inspected for unexpected network endpoints, logging, or token exfiltration.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🎮 Clawdis
Binsdiscli
EnvBOT_TOKEN
Primary envBOT_TOKEN
latestvk9750eff9wd7c3b415t0e2a0sh83fm64
133downloads
0stars
1versions
Updated 1mo ago
v0.6.2
MIT-0

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 <token>           # First-time setup
discli server list                    # List servers
discli server select <id>             # 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 <channel>        # Create invite
discli invite create <ch> --max-age 3600 --max-uses 10  # With limits
discli invite delete <code> --confirm # Delete invite

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

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

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

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

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

discli emoji list                        # List custom emojis
discli emoji upload <name> ./img.png     # Upload custom emoji
discli emoji delete <name> --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 <id>             # Filter by who performed action
discli audit types                       # List action type names

Global Flags

  • --format <yaml|json|table|auto> — output format (default: auto = yaml when piped, table in terminal)
  • --server <id> — target a specific server instead of default
  • -n <count> — 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).

Comments

Loading comments...