agent-slack 0.2.14 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -13
- package/dist/index.js +1148 -511
- package/dist/index.js.map +26 -20
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -7,17 +7,9 @@ Guiding principle:
|
|
|
7
7
|
- **token-efficient output by default** (compact JSON, minimal duplication, and empty/null fields pruned) so LLMs can consume results cheaply.
|
|
8
8
|
- **zero-config auth** -- Auth just works if you have Slack Desktop (with fallbacks available). No Python dependency.
|
|
9
9
|
|
|
10
|
-
##
|
|
11
|
-
|
|
12
|
-
- **Read**: fetch a message, browse channel history, list full threads
|
|
13
|
-
- **Search**: messages + files (with filters)
|
|
14
|
-
- **Artifacts**: auto-download snippets/images/files to local paths for agents
|
|
15
|
-
- **Write**: reply in thread, add reactions
|
|
16
|
-
- **Canvas**: fetch Slack canvases as Markdown
|
|
10
|
+
## Getting started
|
|
17
11
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
Recommended (Bun install script):
|
|
12
|
+
Install via Bun (recommended):
|
|
21
13
|
|
|
22
14
|
```bash
|
|
23
15
|
curl -fsSL https://raw.githubusercontent.com/stablyai/agent-slack/master/install.sh | sh
|
|
@@ -29,6 +21,14 @@ OR npm global install (requires Node >= 22.5):
|
|
|
29
21
|
npm i -g agent-slack
|
|
30
22
|
```
|
|
31
23
|
|
|
24
|
+
## At a glance
|
|
25
|
+
|
|
26
|
+
- **Read**: fetch a message, browse channel history, list full threads
|
|
27
|
+
- **Search**: messages + files (with filters)
|
|
28
|
+
- **Artifacts**: auto-download snippets/images/files to local paths for agents
|
|
29
|
+
- **Write**: reply, edit/delete messages, add reactions
|
|
30
|
+
- **Canvas**: fetch Slack canvases as Markdown
|
|
31
|
+
|
|
32
32
|
## Agent skill
|
|
33
33
|
|
|
34
34
|
This repo ships an agent skill at `skills/agent-slack/` compatible with Claude Code, Codex, Cursor, etc
|
|
@@ -60,6 +60,8 @@ agent-slack
|
|
|
60
60
|
│ ├── get <target> # fetch 1 message (+ thread meta )
|
|
61
61
|
│ ├── list <target> # fetch thread or recent channel messages
|
|
62
62
|
│ ├── send <target> <text> # send / reply (does the right thing)
|
|
63
|
+
│ ├── edit <target> <text> # edit a message
|
|
64
|
+
│ ├── delete <target> # delete a message
|
|
63
65
|
│ └── react
|
|
64
66
|
│ ├── add <target> <emoji>
|
|
65
67
|
│ └── remove <target> <emoji>
|
|
@@ -127,10 +129,12 @@ agent-slack message get "#general" --ts "1770165109.628379"
|
|
|
127
129
|
agent-slack message list "#general" --thread-ts "1770165109.000001"
|
|
128
130
|
```
|
|
129
131
|
|
|
130
|
-
If you have multiple workspaces configured and you use a channel **name** (`#channel` / `channel`), you must pass `--workspace` (or set `SLACK_WORKSPACE_URL`)
|
|
132
|
+
If you have multiple workspaces configured and you use a channel **name** (`#channel` / `channel`), you must pass `--workspace` (or set `SLACK_WORKSPACE_URL`).
|
|
133
|
+
`--workspace` accepts a full URL or a unique substring selector:
|
|
131
134
|
|
|
132
135
|
```bash
|
|
133
136
|
agent-slack message get "#general" --workspace "https://stablygroup.slack.com" --ts "1770165109.628379"
|
|
137
|
+
agent-slack message get "#general" --workspace "stablygroup" --ts "1770165109.628379"
|
|
134
138
|
```
|
|
135
139
|
|
|
136
140
|
## Examples
|
|
@@ -149,6 +153,12 @@ agent-slack message list "https://workspace.slack.com/archives/C123/p17000000000
|
|
|
149
153
|
|
|
150
154
|
# Recent channel messages (browse channel history)
|
|
151
155
|
agent-slack message list "#general" --limit 20
|
|
156
|
+
|
|
157
|
+
# Recent channel messages that are marked with :eyes:
|
|
158
|
+
agent-slack message list "#general" --with-reaction eyes --oldest "1770165109.000000" --limit 20
|
|
159
|
+
|
|
160
|
+
# Recent channel messages that do not have :dart:
|
|
161
|
+
agent-slack message list "#general" --without-reaction dart --oldest "1770165109.000000" --limit 20
|
|
152
162
|
```
|
|
153
163
|
|
|
154
164
|
Optional:
|
|
@@ -158,6 +168,23 @@ Optional:
|
|
|
158
168
|
agent-slack message get "https://workspace.slack.com/archives/C123/p1700000000000000" --include-reactions
|
|
159
169
|
```
|
|
160
170
|
|
|
171
|
+
### Reply, edit, delete, and react
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
agent-slack message send "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this."
|
|
175
|
+
agent-slack message edit "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this today."
|
|
176
|
+
agent-slack message delete "https://workspace.slack.com/archives/C123/p1700000000000000"
|
|
177
|
+
agent-slack message react add "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"
|
|
178
|
+
agent-slack message react remove "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Channel mode requires `--ts`:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
agent-slack message edit "#general" "Updated text" --workspace "myteam" --ts "1770165109.628379"
|
|
185
|
+
agent-slack message delete "#general" --workspace "myteam" --ts "1770165109.628379"
|
|
186
|
+
```
|
|
187
|
+
|
|
161
188
|
### Message get vs list
|
|
162
189
|
|
|
163
190
|
**`message get`** fetches a single message. If the message is in a thread, it also returns thread metadata (reply count, participants) but **not** the full thread contents:
|
|
@@ -165,7 +192,7 @@ agent-slack message get "https://workspace.slack.com/archives/C123/p170000000000
|
|
|
165
192
|
```json
|
|
166
193
|
{
|
|
167
194
|
"message": { "ts": "...", "text": "...", "user": "U123", ... },
|
|
168
|
-
"thread": { "
|
|
195
|
+
"thread": { "ts": "...", "length": 6 }
|
|
169
196
|
}
|
|
170
197
|
```
|
|
171
198
|
|
|
@@ -185,6 +212,7 @@ When to use which:
|
|
|
185
212
|
- Use `get` to check a single message or see if there's a thread worth expanding
|
|
186
213
|
- Use `list` to read an entire thread conversation
|
|
187
214
|
- Use `list` on a channel (without `--thread-ts`) to browse recent channel messages
|
|
215
|
+
- Use `list` with `--with-reaction` / `--without-reaction` plus `--oldest` to filter channel history by reaction markers
|
|
188
216
|
|
|
189
217
|
### Files (snippets/images/attachments)
|
|
190
218
|
|
|
@@ -210,7 +238,7 @@ agent-slack search files "testing" --content-type snippet --limit 10
|
|
|
210
238
|
Tips:
|
|
211
239
|
|
|
212
240
|
- For reliable results, include `--channel ...` (channel-scoped search scans history/files and filters locally).
|
|
213
|
-
- Use `--workspace
|
|
241
|
+
- Use `--workspace <url-or-unique-substring>` when using `#channel` names across multiple workspaces.
|
|
214
242
|
|
|
215
243
|
<!-- AI search (assistant.search.*) is described in design.doc but not currently implemented. -->
|
|
216
244
|
|