Interact with Discord from your terminal. Built for developers and AI agents.
discocli sync --follow # real-time message capture
discocli search "deployment" # offline full-text search
discocli send --to "#general" --text "Build passed ✅"
discocli serve # start MCP server for AI agentsbrew install virat-mankali/tap/discocligit clone https://github.com/virat-mankali/discord-cli
cd discord-cli
go build -o discocli ./cmd/discocli/# 1. Authenticate (bot token or user token)
discocli auth
# 2. Sync messages
discocli sync
# 3. Search offline
discocli search "standup notes"
# 4. Send a message
discocli send --to "#general" --text "Hello from the terminal!"| Command | Description |
|---|---|
discocli auth |
Authenticate with Discord (bot or user token) |
discocli whoami |
Show the currently authenticated user |
discocli sync |
Sync message history to local SQLite database |
discocli sync --follow |
Real-time sync via Discord Gateway |
discocli search <query> |
Full-text search across synced messages |
discocli send --to <target> --text <msg> |
Send message to channel, DM, or thread |
discocli guilds |
List all servers you're in |
discocli channels --guild <name> |
List channels in a server |
discocli serve |
Start MCP server for AI agents |
Add to your mcp.json:
{
"mcpServers": {
"discocli": {
"command": "discocli",
"args": ["serve"],
"env": {},
"disabled": false,
"autoApprove": [
"search_messages",
"list_guilds",
"list_channels",
"get_sync_status"
]
}
}
}| Tool | Description | Auto-approve? |
|---|---|---|
search_messages |
Full-text search across synced messages | ✅ |
list_guilds |
List all Discord servers | ✅ |
list_channels |
List channels in a server | ✅ |
get_sync_status |
Show sync status and message counts | ✅ |
send_message |
Send a message to a channel | ❌ |
sync_channel |
Sync a channel's history | ❌ |
- You can optionally add
send_messageandsync_channelto theautoApprovearray in yourmcp.jsonif you want your AI agent to use them without confirmation. They're excluded by default since they perform write operations.
- Messages are synced from Discord into a local SQLite database with FTS5 full-text search
- All searches are offline — fast and private
- Incremental sync only fetches new messages on subsequent runs
- The MCP server exposes the same functionality over stdio for AI agents
- Pure Go binary, no CGO — works on all platforms
- Go to Discord Developer Portal
- Create application → Bot → Reset Token
- Enable Message Content Intent under Privileged Gateway Intents
- Invite bot to your server with
Read Messages,Send Messages,Read Message History,Attach Filespermissions
- Open Discord in browser
- DevTools → Network → any API request → Authorization header
⚠️ Important: Bot tokens are always the safer choice. User tokens violate Discord's Terms of Service if used for automation at scale. They're fine for personal/local use and AI agents acting on your behalf, but bot tokens are more stable, officially supported, and won't risk your account. When in doubt, use a bot token.
- steipete/wacli — WhatsApp CLI by Peter Steinberger
- virat-mankali/telegram-cli — Telegram CLI
MIT