@@ -8,6 +8,7 @@ You are a Discord agent with access to the `discli` CLI tool. Use the Bash tool
88``` bash
99discli message send < channel> " text"
1010discli message send < channel> " text" --embed-title " Title" --embed-desc " Description"
11+ discli message send < channel> " text" --embed-color ff0000 --embed-footer " Footer" --embed-image URL --embed-thumbnail URL --embed-author " Author" --embed-field " Name::Value::true"
1112discli message send < channel> " text" --file path/to/file.png
1213discli message send < channel> " text" --file file1.png --file file2.pdf
1314discli message reply < channel> < message_id> " text"
@@ -19,13 +20,15 @@ discli message delete <channel> <message_id>
1920discli message search < channel> " query" --limit 100 [--author name] [--before YYYY-MM-DD] [--after YYYY-MM-DD]
2021discli message history < channel> --days 7
2122discli message history < channel> --hours 24 --limit 500
23+ discli message bulk-delete < channel> < msg_id1> < msg_id2> ...
2224```
2325
2426### Reactions
2527``` bash
2628discli reaction add < channel> < message_id> < emoji>
2729discli reaction remove < channel> < message_id> < emoji>
2830discli reaction list < channel> < message_id>
31+ discli reaction users < channel> < message_id> < emoji> --limit 100
2932```
3033
3134### Direct Messages
@@ -39,8 +42,12 @@ discli dm list <user> --limit 10
3942``` bash
4043discli channel list --server " server name"
4144discli channel create " server name" " channel-name" --type text| voice| category
45+ discli channel create " server" " forum-name" --type forum --topic " Forum topic"
46+ discli channel edit < channel> --name new-name --topic " New topic" --slowmode 10 --nsfw
4247discli channel delete < channel>
4348discli channel info < channel>
49+ discli channel forum-post < channel> " Post Title" " Post content"
50+ discli channel set-permissions < channel> < role-or-member> --allow send_messages,read_messages --deny manage_messages --target-type role
4451```
4552
4653### Threads
@@ -49,6 +56,11 @@ discli thread create <channel> <message_id> "thread name"
4956discli thread list < channel>
5057discli thread send < thread_id> " text"
5158discli thread send < thread_id> " text" --file path/to/file.png
59+ discli thread archive < thread>
60+ discli thread unarchive < thread>
61+ discli thread rename < thread> " New Name"
62+ discli thread add-member < thread> < member_id>
63+ discli thread remove-member < thread> < member_id>
5264```
5365
5466### Servers
@@ -62,6 +74,7 @@ discli server info "server name"
6274discli role list " server name"
6375discli role create " server name" " role-name" --color ff0000 --permissions 8
6476discli role delete " server name" < role>
77+ discli role edit " server name" " Role" --name " New Name" --color 00ff00 --hoist --mentionable
6578discli role assign " server name" < member> < role>
6679discli role remove " server name" < member> < role>
6780```
@@ -73,16 +86,39 @@ discli member info "server name" <member>
7386discli member kick " server name" < member> --reason " reason"
7487discli member ban " server name" < member> --reason " reason"
7588discli member unban " server name" < member>
89+ discli member timeout " server name" member 3600 --reason " Spam"
90+ discli member timeout " server name" member 0 # remove timeout
7691```
7792
7893### Typing Indicator
7994``` bash
8095discli typing < channel> --duration 5
8196```
8297
98+ ### Polls
99+ ``` bash
100+ discli poll results < channel> < message_id>
101+ discli poll end < channel> < message_id>
102+ ```
103+
104+ ### Webhooks
105+ ``` bash
106+ discli webhook list < channel>
107+ discli webhook create < channel> " webhook-name"
108+ discli webhook delete < channel> < webhook_id>
109+ ```
110+
111+ ### Events
112+ ``` bash
113+ discli event list " server"
114+ discli event create " server" " Event Name" " 2026-04-01T18:00:00" --location " Park" --end-time " 2026-04-01T20:00:00"
115+ discli event create " server" " Voice Hangout" " 2026-04-01T18:00:00" --channel # voice-room
116+ discli event delete " server" < event_id>
117+ ```
118+
83119### Live Monitoring
84120``` bash
85- discli listen --events messages,reactions,members,edits,deletes
121+ discli listen --events messages,reactions,members,edits,deletes,voice
86122discli listen --server " server name" --channel " #channel"
87123```
88124
@@ -91,9 +127,43 @@ discli listen --server "server name" --channel "#channel"
91127``` bash
92128discli serve --slash-commands commands.json --status online
93129```
94- ** stdin commands:** ` send ` , ` reply ` , ` edit ` , ` delete ` , ` typing_start ` , ` typing_stop ` , ` presence ` , ` reaction_add ` , ` reaction_remove ` , ` stream_start ` , ` stream_chunk ` , ` stream_end ` , ` interaction_followup `
95-
96- ** stdout events:** ` ready ` , ` message ` , ` slash_command ` , ` message_edit ` , ` message_delete ` , ` reaction_add ` , ` reaction_remove ` , ` member_join ` , ` member_remove ` , ` response ` , ` error `
130+ ** stdin commands:** ` send ` , ` reply ` , ` edit ` , ` delete ` , ` typing_start ` , ` typing_stop ` , ` presence ` , ` reaction_add ` , ` reaction_remove ` , ` stream_start ` , ` stream_chunk ` , ` stream_end ` , ` interaction_followup ` , ` modal_send ` , ` channel_edit ` , ` channel_set_permissions ` , ` forum_post ` , ` thread_archive ` , ` thread_rename ` , ` thread_add_member ` , ` thread_remove_member ` , ` member_timeout ` , ` role_edit ` , ` reaction_users ` , ` poll_results ` , ` poll_end ` , ` webhook_list ` , ` webhook_create ` , ` webhook_delete ` , ` event_list ` , ` event_create ` , ` message_bulk_delete `
131+
132+ ** stdin examples:**
133+ ``` json
134+ {"action" : " send" , "channel_id" : " 456" , "content" : " Hello!" , "embed" : {"title" : " T" , "description" : " D" , "color" : " ff0000" , "footer" : " F" , "fields" : [{"name" : " N" , "value" : " V" , "inline" : true }]}}
135+ {"action" : " send" , "channel_id" : " 456" , "content" : " Click!" , "components" : [[{"type" : " button" , "label" : " OK" , "style" : " primary" , "custom_id" : " ok_btn" }]]}
136+ {"action" : " modal_send" , "interaction_token" : " itk" , "title" : " Form" , "custom_id" : " myform" , "fields" : [{"label" : " Name" , "custom_id" : " name" , "style" : " short" }]}
137+ {"action" : " channel_edit" , "channel_id" : " 456" , "topic" : " New topic" , "slowmode" : 10 }
138+ {"action" : " channel_set_permissions" , "channel_id" : " 456" , "target_id" : " 789" , "target_type" : " role" , "allow" : [" send_messages" ], "deny" : [" manage_messages" ]}
139+ {"action" : " forum_post" , "channel_id" : " 456" , "title" : " Post Title" , "content" : " Body" }
140+ {"action" : " thread_archive" , "thread_id" : " 789" , "archived" : true }
141+ {"action" : " thread_rename" , "thread_id" : " 789" , "name" : " New Name" }
142+ {"action" : " thread_add_member" , "thread_id" : " 789" , "member_id" : " 123" }
143+ {"action" : " thread_remove_member" , "thread_id" : " 789" , "member_id" : " 123" }
144+ {"action" : " member_timeout" , "guild_id" : " 111" , "member_id" : " 222" , "duration" : 3600 , "reason" : " Spam" }
145+ {"action" : " role_edit" , "guild_id" : " 111" , "role_id" : " 333" , "name" : " New Name" , "color" : " ff0000" }
146+ {"action" : " reaction_users" , "channel_id" : " 456" , "message_id" : " 789" , "emoji" : " 👍" }
147+ {"action" : " poll_results" , "channel_id" : " 456" , "message_id" : " 789" }
148+ {"action" : " poll_end" , "channel_id" : " 456" , "message_id" : " 789" }
149+ {"action" : " webhook_list" , "channel_id" : " 456" }
150+ {"action" : " webhook_create" , "channel_id" : " 456" , "name" : " My Webhook" }
151+ {"action" : " webhook_delete" , "channel_id" : " 456" , "webhook_id" : " 999" }
152+ {"action" : " event_list" , "guild_id" : " 111" }
153+ {"action" : " event_create" , "guild_id" : " 111" , "name" : " Hangout" , "start_time" : " 2026-04-01T18:00:00" , "location" : " Park" , "end_time" : " 2026-04-01T20:00:00" }
154+ {"action" : " message_bulk_delete" , "channel_id" : " 456" , "message_ids" : [" 111" , " 222" , " 333" ]}
155+ ```
156+
157+ ** stdout events:** ` ready ` , ` message ` , ` slash_command ` , ` message_edit ` , ` message_delete ` , ` reaction_add ` , ` reaction_remove ` , ` member_join ` , ` member_remove ` , ` voice_state ` , ` component_interaction ` , ` modal_submit ` , ` disconnected ` , ` resumed ` , ` response ` , ` error `
158+
159+ ** stdout event examples:**
160+ ``` json
161+ {"event" : " voice_state" , "action" : " joined" , "member" : " alice" , "channel" : " General" , "channel_id" : " 456" }
162+ {"event" : " component_interaction" , "custom_id" : " ok_btn" , "user" : " alice" , "interaction_token" : " itk" }
163+ {"event" : " modal_submit" , "custom_id" : " myform" , "fields" : {"name" : " Alice" }, "interaction_token" : " itk" }
164+ {"event" : " disconnected" }
165+ {"event" : " resumed" }
166+ ```
97167
98168## Important Rules
99169
@@ -114,7 +184,7 @@ All commands accept both IDs and names:
114184- Threads: ` 123456789 ` or ` Thread Name `
115185
116186### Creating Polls
117- Send a message, capture its ID, then add reaction emojis as vote options. Do this in a single bash command:
187+ Use ` discli poll results ` and ` discli poll end ` to check or close polls. For reaction-based polls, send a message, capture its ID, then add reaction emojis as vote options. Do this in a single bash command:
118188``` bash
119189MSG=$( discli --json message send < channel> " 📊 Poll: What should we build?
1201901️⃣ CLI Tool
0 commit comments