agent-messenger 1.2.0 → 1.3.1
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/.claude-plugin/marketplace.json +27 -1
- package/.claude-plugin/plugin.json +17 -4
- package/.env.template +3 -0
- package/.github/workflows/release.yml +94 -0
- package/AGENTS.md +48 -0
- package/README.md +25 -20
- package/biome.json +15 -39
- package/bun.lock +69 -0
- package/dist/package.json +12 -4
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +1 -4
- package/dist/src/cli.js.map +1 -1
- package/dist/src/platforms/discord/client.d.ts.map +1 -1
- package/dist/src/platforms/discord/client.js.map +1 -1
- package/dist/src/platforms/discord/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/auth.js.map +1 -1
- package/dist/src/platforms/discord/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/channel.js.map +1 -1
- package/dist/src/platforms/discord/commands/dm.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/dm.js.map +1 -1
- package/dist/src/platforms/discord/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/file.js +1 -4
- package/dist/src/platforms/discord/commands/file.js.map +1 -1
- package/dist/src/platforms/discord/commands/friend.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/friend.js +1 -3
- package/dist/src/platforms/discord/commands/friend.js.map +1 -1
- package/dist/src/platforms/discord/commands/member.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/member.js.map +1 -1
- package/dist/src/platforms/discord/commands/mention.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/mention.js.map +1 -1
- package/dist/src/platforms/discord/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/message.js.map +1 -1
- package/dist/src/platforms/discord/commands/note.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/note.js.map +1 -1
- package/dist/src/platforms/discord/commands/profile.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/profile.js.map +1 -1
- package/dist/src/platforms/discord/commands/reaction.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/reaction.js.map +1 -1
- package/dist/src/platforms/discord/commands/server.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/server.js.map +1 -1
- package/dist/src/platforms/discord/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/discord/commands/thread.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/thread.js.map +1 -1
- package/dist/src/platforms/discord/commands/user.d.ts.map +1 -1
- package/dist/src/platforms/discord/commands/user.js.map +1 -1
- package/dist/src/platforms/discord/credential-manager.d.ts.map +1 -1
- package/dist/src/platforms/discord/credential-manager.js.map +1 -1
- package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/discord/token-extractor.js +2 -7
- package/dist/src/platforms/discord/token-extractor.js.map +1 -1
- package/dist/src/platforms/slack/client.d.ts.map +1 -1
- package/dist/src/platforms/slack/client.js.map +1 -1
- package/dist/src/platforms/slack/commands/activity.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/activity.js.map +1 -1
- package/dist/src/platforms/slack/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/auth.js.map +1 -1
- package/dist/src/platforms/slack/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/channel.js.map +1 -1
- package/dist/src/platforms/slack/commands/drafts.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/drafts.js.map +1 -1
- package/dist/src/platforms/slack/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/file.js +1 -4
- package/dist/src/platforms/slack/commands/file.js.map +1 -1
- package/dist/src/platforms/slack/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/message.js.map +1 -1
- package/dist/src/platforms/slack/commands/reaction.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/reaction.js.map +1 -1
- package/dist/src/platforms/slack/commands/saved.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/saved.js.map +1 -1
- package/dist/src/platforms/slack/commands/sections.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/sections.js.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/slack/commands/unread.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/unread.js.map +1 -1
- package/dist/src/platforms/slack/commands/user.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/user.js.map +1 -1
- package/dist/src/platforms/slack/commands/workspace.d.ts.map +1 -1
- package/dist/src/platforms/slack/commands/workspace.js.map +1 -1
- package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/slack/token-extractor.js +4 -5
- package/dist/src/platforms/slack/token-extractor.js.map +1 -1
- package/dist/src/platforms/slackbot/cli.d.ts +5 -0
- package/dist/src/platforms/slackbot/cli.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/cli.js +19 -0
- package/dist/src/platforms/slackbot/cli.js.map +1 -0
- package/dist/src/platforms/slackbot/client.d.ts +43 -0
- package/dist/src/platforms/slackbot/client.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/client.js +347 -0
- package/dist/src/platforms/slackbot/client.js.map +1 -0
- package/dist/src/platforms/slackbot/commands/auth.d.ts +35 -0
- package/dist/src/platforms/slackbot/commands/auth.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/commands/auth.js +185 -0
- package/dist/src/platforms/slackbot/commands/auth.js.map +1 -0
- package/dist/src/platforms/slackbot/commands/channel.d.ts +3 -0
- package/dist/src/platforms/slackbot/commands/channel.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/commands/channel.js +40 -0
- package/dist/src/platforms/slackbot/commands/channel.js.map +1 -0
- package/dist/src/platforms/slackbot/commands/index.d.ts +6 -0
- package/dist/src/platforms/slackbot/commands/index.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/commands/index.js +6 -0
- package/dist/src/platforms/slackbot/commands/index.js.map +1 -0
- package/dist/src/platforms/slackbot/commands/message.d.ts +3 -0
- package/dist/src/platforms/slackbot/commands/message.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/commands/message.js +135 -0
- package/dist/src/platforms/slackbot/commands/message.js.map +1 -0
- package/dist/src/platforms/slackbot/commands/reaction.d.ts +3 -0
- package/dist/src/platforms/slackbot/commands/reaction.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/commands/reaction.js +43 -0
- package/dist/src/platforms/slackbot/commands/reaction.js.map +1 -0
- package/dist/src/platforms/slackbot/commands/shared.d.ts +9 -0
- package/dist/src/platforms/slackbot/commands/shared.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/commands/shared.js +13 -0
- package/dist/src/platforms/slackbot/commands/shared.js.map +1 -0
- package/dist/src/platforms/slackbot/commands/user.d.ts +3 -0
- package/dist/src/platforms/slackbot/commands/user.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/commands/user.js +40 -0
- package/dist/src/platforms/slackbot/commands/user.js.map +1 -0
- package/dist/src/platforms/slackbot/credential-manager.d.ts +18 -0
- package/dist/src/platforms/slackbot/credential-manager.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/credential-manager.js +185 -0
- package/dist/src/platforms/slackbot/credential-manager.js.map +1 -0
- package/dist/src/platforms/slackbot/index.d.ts +4 -0
- package/dist/src/platforms/slackbot/index.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/index.js +4 -0
- package/dist/src/platforms/slackbot/index.js.map +1 -0
- package/dist/src/platforms/slackbot/types.d.ts +460 -0
- package/dist/src/platforms/slackbot/types.d.ts.map +1 -0
- package/dist/src/platforms/slackbot/types.js +114 -0
- package/dist/src/platforms/slackbot/types.js.map +1 -0
- package/dist/src/platforms/teams/client.d.ts.map +1 -1
- package/dist/src/platforms/teams/client.js.map +1 -1
- package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/auth.js.map +1 -1
- package/dist/src/platforms/teams/commands/channel.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/channel.js.map +1 -1
- package/dist/src/platforms/teams/commands/file.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/file.js.map +1 -1
- package/dist/src/platforms/teams/commands/message.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/message.js.map +1 -1
- package/dist/src/platforms/teams/commands/reaction.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/reaction.js.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/snapshot.js.map +1 -1
- package/dist/src/platforms/teams/commands/team.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/team.js +1 -4
- package/dist/src/platforms/teams/commands/team.js.map +1 -1
- package/dist/src/platforms/teams/commands/user.d.ts.map +1 -1
- package/dist/src/platforms/teams/commands/user.js.map +1 -1
- package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
- package/dist/src/platforms/teams/token-extractor.js +3 -1
- package/dist/src/platforms/teams/token-extractor.js.map +1 -1
- package/docs/content/docs/agent-skills.mdx +4 -4
- package/docs/content/docs/index.mdx +11 -18
- package/docs/content/docs/integrations/discord.mdx +65 -1
- package/docs/content/docs/integrations/meta.json +1 -1
- package/docs/content/docs/integrations/slack.mdx +51 -1
- package/docs/content/docs/integrations/slackbot.mdx +214 -0
- package/docs/content/docs/integrations/teams.mdx +4 -1
- package/docs/content/docs/quick-start.mdx +3 -2
- package/docs/src/app/icon.png +0 -0
- package/docs/src/app/layout.config.tsx +8 -1
- package/docs/src/app/page.tsx +18 -1
- package/e2e/config.ts +26 -0
- package/e2e/helpers.ts +6 -1
- package/e2e/slackbot.e2e.test.ts +306 -0
- package/package.json +16 -8
- package/scripts/prepublish.ts +11 -0
- package/skills/agent-slackbot/SKILL.md +285 -0
- package/skills/agent-slackbot/references/authentication.md +253 -0
- package/skills/agent-slackbot/references/common-patterns.md +218 -0
- package/skills/agent-slackbot/templates/monitor-channel.sh +98 -0
- package/skills/agent-slackbot/templates/post-message.sh +107 -0
- package/skills/agent-slackbot/templates/workspace-summary.sh +113 -0
- package/src/cli.ts +1 -4
- package/src/platforms/discord/client.test.ts +6 -14
- package/src/platforms/discord/client.ts +12 -34
- package/src/platforms/discord/commands/auth.test.ts +2 -7
- package/src/platforms/discord/commands/auth.ts +14 -19
- package/src/platforms/discord/commands/channel.test.ts +18 -20
- package/src/platforms/discord/commands/channel.ts +9 -18
- package/src/platforms/discord/commands/dm.test.ts +1 -3
- package/src/platforms/discord/commands/dm.ts +6 -10
- package/src/platforms/discord/commands/file.ts +10 -23
- package/src/platforms/discord/commands/friend.ts +33 -35
- package/src/platforms/discord/commands/member.ts +5 -7
- package/src/platforms/discord/commands/mention.ts +5 -11
- package/src/platforms/discord/commands/message.test.ts +1 -3
- package/src/platforms/discord/commands/message.ts +23 -61
- package/src/platforms/discord/commands/note.ts +7 -15
- package/src/platforms/discord/commands/profile.ts +4 -6
- package/src/platforms/discord/commands/reaction.test.ts +1 -3
- package/src/platforms/discord/commands/reaction.ts +19 -29
- package/src/platforms/discord/commands/server.test.ts +14 -18
- package/src/platforms/discord/commands/server.ts +9 -15
- package/src/platforms/discord/commands/snapshot.ts +5 -7
- package/src/platforms/discord/commands/thread.ts +8 -15
- package/src/platforms/discord/commands/user.ts +9 -20
- package/src/platforms/discord/credential-manager.test.ts +2 -2
- package/src/platforms/discord/credential-manager.ts +1 -3
- package/src/platforms/discord/token-extractor.test.ts +28 -57
- package/src/platforms/discord/token-extractor.ts +10 -30
- package/src/platforms/discord/types.ts +1 -1
- package/src/platforms/slack/client.test.ts +14 -20
- package/src/platforms/slack/client.ts +4 -11
- package/src/platforms/slack/commands/activity.test.ts +3 -9
- package/src/platforms/slack/commands/activity.ts +7 -12
- package/src/platforms/slack/commands/auth.test.ts +2 -2
- package/src/platforms/slack/commands/auth.ts +15 -31
- package/src/platforms/slack/commands/channel.ts +10 -32
- package/src/platforms/slack/commands/drafts.ts +5 -14
- package/src/platforms/slack/commands/file.ts +9 -29
- package/src/platforms/slack/commands/message.ts +23 -67
- package/src/platforms/slack/commands/reaction.ts +19 -48
- package/src/platforms/slack/commands/saved.ts +5 -14
- package/src/platforms/slack/commands/sections.ts +4 -11
- package/src/platforms/slack/commands/snapshot.test.ts +1 -3
- package/src/platforms/slack/commands/snapshot.ts +5 -10
- package/src/platforms/slack/commands/unread.test.ts +6 -8
- package/src/platforms/slack/commands/unread.ts +10 -33
- package/src/platforms/slack/commands/user.test.ts +1 -4
- package/src/platforms/slack/commands/user.ts +6 -8
- package/src/platforms/slack/commands/workspace.test.ts +1 -1
- package/src/platforms/slack/commands/workspace.ts +7 -12
- package/src/platforms/slack/token-extractor-node-test.ts +1 -1
- package/src/platforms/slack/token-extractor.ts +8 -17
- package/src/platforms/slack/types.ts +1 -1
- package/src/platforms/slackbot/cli.ts +24 -0
- package/src/platforms/slackbot/client.test.ts +282 -0
- package/src/platforms/slackbot/client.ts +394 -0
- package/src/platforms/slackbot/commands/auth.test.ts +245 -0
- package/src/platforms/slackbot/commands/auth.ts +240 -0
- package/src/platforms/slackbot/commands/channel.ts +46 -0
- package/src/platforms/slackbot/commands/index.ts +5 -0
- package/src/platforms/slackbot/commands/message.ts +169 -0
- package/src/platforms/slackbot/commands/reaction.ts +49 -0
- package/src/platforms/slackbot/commands/shared.ts +21 -0
- package/src/platforms/slackbot/commands/user.ts +46 -0
- package/src/platforms/slackbot/credential-manager.test.ts +264 -0
- package/src/platforms/slackbot/credential-manager.ts +213 -0
- package/src/platforms/slackbot/index.ts +19 -0
- package/src/platforms/slackbot/types.test.ts +90 -0
- package/src/platforms/slackbot/types.ts +222 -0
- package/src/platforms/teams/client.test.ts +15 -32
- package/src/platforms/teams/client.ts +18 -51
- package/src/platforms/teams/commands/auth.test.ts +6 -16
- package/src/platforms/teams/commands/auth.ts +16 -26
- package/src/platforms/teams/commands/channel.test.ts +2 -5
- package/src/platforms/teams/commands/channel.ts +10 -20
- package/src/platforms/teams/commands/file.test.ts +1 -4
- package/src/platforms/teams/commands/file.ts +11 -21
- package/src/platforms/teams/commands/message.test.ts +1 -3
- package/src/platforms/teams/commands/message.ts +15 -25
- package/src/platforms/teams/commands/reaction.test.ts +2 -7
- package/src/platforms/teams/commands/reaction.ts +12 -16
- package/src/platforms/teams/commands/snapshot.ts +6 -11
- package/src/platforms/teams/commands/team.test.ts +15 -26
- package/src/platforms/teams/commands/team.ts +10 -19
- package/src/platforms/teams/commands/user.ts +8 -14
- package/src/platforms/teams/credential-manager.test.ts +2 -5
- package/src/platforms/teams/token-extractor.test.ts +21 -50
- package/src/platforms/teams/token-extractor.ts +12 -20
- package/src/platforms/teams/types.ts +1 -1
- package/src/shared/utils/concurrency.test.ts +2 -2
- package/src/shared/utils/concurrency.ts +1 -1
- package/.claude/commands/release.md +0 -92
- package/dist/src/platforms/discord/commands/guild.d.ts +0 -15
- package/dist/src/platforms/discord/commands/guild.d.ts.map +0 -1
- package/dist/src/platforms/discord/commands/guild.js +0 -102
- package/dist/src/platforms/discord/commands/guild.js.map +0 -1
|
@@ -4,27 +4,18 @@ description: Give your AI agent the power to read and send messages across Slack
|
|
|
4
4
|
icon: Info
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Agent Messenger is a unified, agent-friendly CLI for messaging platforms.
|
|
7
|
+
Agent Messenger is a unified, agent-friendly CLI for messaging platforms. Zero-config credential extraction from your desktop apps—no OAuth flows, no API keys, no admin approval needed. Works out of the box.
|
|
8
8
|
|
|
9
9
|
## Why Agent Messenger?
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Messaging platforms only offer Bot tokens for API access—your AI agent can never act **as you**. Agent Messenger extracts user credentials directly from your installed desktop apps, letting your agent operate on your behalf. Bot tokens are fully supported too for server-side and CI/CD use cases.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
|
|
19
|
-
Agent Messenger eliminates all of this. Your agent can start sending messages in seconds.
|
|
20
|
-
|
|
21
|
-
### For Developers
|
|
22
|
-
|
|
23
|
-
Building AI-powered workflows that interact with messaging platforms shouldn't require a week of OAuth debugging. Agent Messenger provides:
|
|
24
|
-
|
|
25
|
-
- **Zero configuration** - Extract tokens from your existing desktop apps
|
|
26
|
-
- **Unified interface** - Same commands work across all platforms
|
|
27
|
-
- **JSON output** - Perfect for piping into other tools or LLMs
|
|
13
|
+
- **Act as yourself, not a bot** — Extracted user tokens let your agent operate on your behalf
|
|
14
|
+
- **No API keys needed** — Automatically extracts credentials from your installed desktop apps
|
|
15
|
+
- **One interface, multiple platforms** — Learn once, use everywhere (Slack, Discord, Teams)
|
|
16
|
+
- **AI-agent friendly** — JSON output by default, perfect for LLM tool use
|
|
17
|
+
- **Human friendly too** — Add `--pretty` for readable output
|
|
18
|
+
- **Token efficient** — CLI, not MCP. Load only what you need
|
|
28
19
|
|
|
29
20
|
## How It Works
|
|
30
21
|
|
|
@@ -49,6 +40,7 @@ No app creation. No admin approval. No waiting.
|
|
|
49
40
|
| **Multi-workspace** | Switch between workspaces/servers easily |
|
|
50
41
|
| **JSON output** | Machine-readable by default, `--pretty` for humans |
|
|
51
42
|
| **Comprehensive** | Messages, channels, users, reactions, files |
|
|
43
|
+
| **Bot support** | [`agent-slackbot`](/docs/integrations/slackbot) for server-side and CI/CD |
|
|
52
44
|
|
|
53
45
|
## Why Not MCP?
|
|
54
46
|
|
|
@@ -88,7 +80,7 @@ OAuth is better when you need:
|
|
|
88
80
|
- **Multi-user applications** - Many users authenticating separately
|
|
89
81
|
- **Granular permissions** - Fine-tuned access control
|
|
90
82
|
|
|
91
|
-
|
|
83
|
+
For these use cases, Agent Messenger also supports bot tokens via [`agent-slackbot`](/docs/integrations/slackbot).
|
|
92
84
|
|
|
93
85
|
## Design Principles
|
|
94
86
|
|
|
@@ -116,6 +108,7 @@ Tokens stay on your machine. Nothing is sent to external servers. Your credentia
|
|
|
116
108
|
|
|
117
109
|
- [Quick Start](/docs/quick-start) - Get running in 30 seconds
|
|
118
110
|
- [Slack](/docs/integrations/slack) - Full Slack command reference
|
|
111
|
+
- [Slack Bot](/docs/integrations/slackbot) - Bot token integration for server-side and CI/CD
|
|
119
112
|
- [Discord](/docs/integrations/discord) - Full Discord command reference
|
|
120
113
|
- [Teams](/docs/integrations/teams) - Full Teams command reference
|
|
121
114
|
|
|
@@ -200,8 +200,72 @@ All commands support these options:
|
|
|
200
200
|
| User ID | Alphanumeric (U01234567) | Numeric snowflake (123456789012345678) |
|
|
201
201
|
| Threads | Thread timestamps | Thread channels |
|
|
202
202
|
|
|
203
|
+
### DM Commands
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# List DM channels
|
|
207
|
+
agent-discord dm list
|
|
208
|
+
|
|
209
|
+
# Create a DM channel with a user
|
|
210
|
+
agent-discord dm create <user-id>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Thread Commands
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Create a thread in a channel
|
|
217
|
+
agent-discord thread create <channel-id> <name>
|
|
218
|
+
agent-discord thread create 123456789 "Bug Discussion" --auto-archive-duration 1440
|
|
219
|
+
|
|
220
|
+
# Archive a thread
|
|
221
|
+
agent-discord thread archive <thread-id>
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Mention Commands
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
# List recent mentions
|
|
228
|
+
agent-discord mention list
|
|
229
|
+
agent-discord mention list --limit 10
|
|
230
|
+
|
|
231
|
+
# Filter by guild
|
|
232
|
+
agent-discord mention list --guild <guild-id>
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Member Commands
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# Search guild members
|
|
239
|
+
agent-discord member search <guild-id> <query>
|
|
240
|
+
agent-discord member search 123456789 "john" --limit 20
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Friend Commands
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# List friends and relationships
|
|
247
|
+
agent-discord friend list
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Profile Commands
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# Get a user's profile
|
|
254
|
+
agent-discord profile get <user-id>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Note Commands
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Get your note on a user
|
|
261
|
+
agent-discord note get <user-id>
|
|
262
|
+
|
|
263
|
+
# Set a note on a user
|
|
264
|
+
agent-discord note set <user-id> "Met at conference"
|
|
265
|
+
```
|
|
266
|
+
|
|
203
267
|
## AI Agent Integration
|
|
204
268
|
|
|
205
|
-
See `skills/agent-messenger
|
|
269
|
+
See [`skills/agent-discord/`](https://github.com/devxoul/agent-messenger/tree/main/skills/agent-discord) for:
|
|
206
270
|
- Complete skill documentation
|
|
207
271
|
- Runnable templates
|
|
@@ -154,8 +154,58 @@ agent-slack snapshot --users-only
|
|
|
154
154
|
agent-slack snapshot --limit 10
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
+
### Activity Commands
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# List activity feed
|
|
161
|
+
agent-slack activity list
|
|
162
|
+
agent-slack activity list --limit 50
|
|
163
|
+
|
|
164
|
+
# Show only unread activity
|
|
165
|
+
agent-slack activity list --unread
|
|
166
|
+
|
|
167
|
+
# Filter by activity types
|
|
168
|
+
agent-slack activity list --types thread_reply,message_reaction,at_user,at_channel,keyword
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Unread Commands
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
# Get unread counts for all channels
|
|
175
|
+
agent-slack unread counts
|
|
176
|
+
|
|
177
|
+
# Get thread subscription details
|
|
178
|
+
agent-slack unread threads <channel> <thread_ts>
|
|
179
|
+
|
|
180
|
+
# Mark channel as read up to a timestamp
|
|
181
|
+
agent-slack unread mark <channel> <ts>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Drafts Commands
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# List message drafts
|
|
188
|
+
agent-slack drafts list
|
|
189
|
+
agent-slack drafts list --limit 10
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Saved Items Commands
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# List saved items
|
|
196
|
+
agent-slack saved list
|
|
197
|
+
agent-slack saved list --limit 10
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Sections Commands
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# List channel sections (sidebar folders)
|
|
204
|
+
agent-slack sections list
|
|
205
|
+
```
|
|
206
|
+
|
|
157
207
|
## AI Agent Integration
|
|
158
208
|
|
|
159
|
-
See `skills/agent-messenger
|
|
209
|
+
See [`skills/agent-slack/`](https://github.com/devxoul/agent-messenger/tree/main/skills/agent-slack) for:
|
|
160
210
|
- Complete skill documentation
|
|
161
211
|
- Runnable templates
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Slack Bot
|
|
3
|
+
description: Complete reference for the agent-slackbot CLI.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **Tip**: `agent-slackbot` uses bot tokens (xoxb-) instead of user tokens. Ideal for server-side and CI/CD integrations.
|
|
7
|
+
|
|
8
|
+
## Quick Start
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
# 1. Set your bot token (from api.slack.com/apps)
|
|
12
|
+
agent-slackbot auth set xoxb-your-bot-token
|
|
13
|
+
|
|
14
|
+
# 2. Verify authentication
|
|
15
|
+
agent-slackbot auth status
|
|
16
|
+
|
|
17
|
+
# 3. Send a message
|
|
18
|
+
agent-slackbot message send C0ACZKTDDC0 "Hello from bot!"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Authentication
|
|
22
|
+
|
|
23
|
+
### Create a Slack App
|
|
24
|
+
|
|
25
|
+
The fastest way to get started is to create an app from the manifest below:
|
|
26
|
+
|
|
27
|
+
1. Go to [api.slack.com/apps](https://api.slack.com/apps) → **Create New App** → **From an app manifest**
|
|
28
|
+
2. Select your workspace
|
|
29
|
+
3. Paste the manifest below (choose YAML tab) and click **Next** → **Create**
|
|
30
|
+
4. Click **Install App** in the left sidebar, then hit **Install to Workspace**
|
|
31
|
+
5. Copy the **Bot User OAuth Token** (starts with `xoxb-`) from the **Install App** page
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
display_information:
|
|
35
|
+
name: Agent Messenger Bot
|
|
36
|
+
description: Bot for agent-messenger CLI integration
|
|
37
|
+
background_color: "#1a1a2e"
|
|
38
|
+
|
|
39
|
+
features:
|
|
40
|
+
bot_user:
|
|
41
|
+
display_name: agent-messenger
|
|
42
|
+
always_online: false
|
|
43
|
+
|
|
44
|
+
oauth_config:
|
|
45
|
+
scopes:
|
|
46
|
+
bot:
|
|
47
|
+
- chat:write
|
|
48
|
+
- channels:history
|
|
49
|
+
- channels:read
|
|
50
|
+
- channels:join
|
|
51
|
+
- groups:history
|
|
52
|
+
- groups:read
|
|
53
|
+
- users:read
|
|
54
|
+
- users:read.email
|
|
55
|
+
- reactions:write
|
|
56
|
+
- reactions:read
|
|
57
|
+
|
|
58
|
+
settings:
|
|
59
|
+
org_deploy_enabled: false
|
|
60
|
+
socket_mode_enabled: false
|
|
61
|
+
token_rotation_enabled: false
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Then set the token:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Basic setup
|
|
68
|
+
agent-slackbot auth set xoxb-your-bot-token
|
|
69
|
+
|
|
70
|
+
# Or with a custom bot identifier for multi-bot setups
|
|
71
|
+
agent-slackbot auth set xoxb-your-bot-token --bot deploy --name "Deploy Bot"
|
|
72
|
+
|
|
73
|
+
# Verify it works
|
|
74
|
+
agent-slackbot auth status
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Authentication Commands
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Check bot auth status
|
|
81
|
+
agent-slackbot auth status
|
|
82
|
+
|
|
83
|
+
# Clear all stored credentials
|
|
84
|
+
agent-slackbot auth clear
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Multi-Bot Support
|
|
88
|
+
|
|
89
|
+
Store multiple bot tokens and switch between them:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Add multiple bots
|
|
93
|
+
agent-slackbot auth set xoxb-deploy-token --bot deploy --name "Deploy Bot"
|
|
94
|
+
agent-slackbot auth set xoxb-alert-token --bot alert --name "Alert Bot"
|
|
95
|
+
|
|
96
|
+
# List all stored bots
|
|
97
|
+
agent-slackbot auth list
|
|
98
|
+
|
|
99
|
+
# Switch active bot
|
|
100
|
+
agent-slackbot auth use deploy
|
|
101
|
+
|
|
102
|
+
# Use a specific bot for one command (without switching)
|
|
103
|
+
agent-slackbot message send C0ACZKTDDC0 "Alert!" --bot alert
|
|
104
|
+
|
|
105
|
+
# Remove a stored bot
|
|
106
|
+
agent-slackbot auth remove deploy
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Scopes Reference
|
|
110
|
+
|
|
111
|
+
| Scope | Used For |
|
|
112
|
+
|-------|----------|
|
|
113
|
+
| `chat:write` | Sending and updating messages |
|
|
114
|
+
| `channels:history` | Reading public channel messages |
|
|
115
|
+
| `channels:read` | Listing public channels |
|
|
116
|
+
| `channels:join` | Joining public channels |
|
|
117
|
+
| `groups:history` | Reading private channel messages |
|
|
118
|
+
| `groups:read` | Listing private channels |
|
|
119
|
+
| `users:read` | Listing users |
|
|
120
|
+
| `users:read.email` | Reading user emails |
|
|
121
|
+
| `reactions:write` | Adding/removing reactions |
|
|
122
|
+
| `reactions:read` | Listing reactions |
|
|
123
|
+
|
|
124
|
+
### Environment Variables (CI/CD)
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
export E2E_SLACKBOT_TOKEN=xoxb-your-bot-token
|
|
128
|
+
export E2E_SLACKBOT_WORKSPACE_ID=T123456
|
|
129
|
+
export E2E_SLACKBOT_WORKSPACE_NAME="My Workspace"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Commands
|
|
133
|
+
|
|
134
|
+
### Message Commands
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
# Send a message
|
|
138
|
+
agent-slackbot message send <channel> <text>
|
|
139
|
+
agent-slackbot message send C0ACZKTDDC0 "Hello world"
|
|
140
|
+
|
|
141
|
+
# Send a threaded reply
|
|
142
|
+
agent-slackbot message send C0ACZKTDDC0 "Reply" --thread <ts>
|
|
143
|
+
|
|
144
|
+
# List messages
|
|
145
|
+
agent-slackbot message list <channel>
|
|
146
|
+
agent-slackbot message list C0ACZKTDDC0 --limit 50
|
|
147
|
+
|
|
148
|
+
# Get a single message
|
|
149
|
+
agent-slackbot message get <channel> <ts>
|
|
150
|
+
|
|
151
|
+
# Get thread replies
|
|
152
|
+
agent-slackbot message replies <channel> <thread_ts>
|
|
153
|
+
agent-slackbot message replies C0ACZKTDDC0 1234567890.123456
|
|
154
|
+
|
|
155
|
+
# Update a message (bot's own messages only)
|
|
156
|
+
agent-slackbot message update <channel> <ts> <new-text>
|
|
157
|
+
|
|
158
|
+
# Delete a message (bot's own messages only)
|
|
159
|
+
agent-slackbot message delete <channel> <ts> --force
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Channel Commands
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# List channels
|
|
166
|
+
agent-slackbot channel list
|
|
167
|
+
agent-slackbot channel list --limit 50
|
|
168
|
+
|
|
169
|
+
# Get channel info
|
|
170
|
+
agent-slackbot channel info <channel>
|
|
171
|
+
agent-slackbot channel info C0ACZKTDDC0
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### User Commands
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# List users
|
|
178
|
+
agent-slackbot user list
|
|
179
|
+
agent-slackbot user list --limit 50
|
|
180
|
+
|
|
181
|
+
# Get user info
|
|
182
|
+
agent-slackbot user info <user-id>
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Reaction Commands
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Add reaction
|
|
189
|
+
agent-slackbot reaction add <channel> <ts> <emoji>
|
|
190
|
+
agent-slackbot reaction add C0ACZKTDDC0 1234567890.123456 thumbsup
|
|
191
|
+
|
|
192
|
+
# Remove reaction
|
|
193
|
+
agent-slackbot reaction remove <channel> <ts> <emoji>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Key Differences from agent-slack
|
|
197
|
+
|
|
198
|
+
| Feature | agent-slack | agent-slackbot |
|
|
199
|
+
|---------|------------|----------------|
|
|
200
|
+
| Token type | User token (xoxc-) | Bot token (xoxb-) |
|
|
201
|
+
| Token source | Auto-extracted from desktop app | Manual from Slack App config |
|
|
202
|
+
| Message search | Yes | No |
|
|
203
|
+
| File operations | Yes | No |
|
|
204
|
+
| Snapshot | Yes | No |
|
|
205
|
+
| Edit/delete messages | Any message | Bot's own only |
|
|
206
|
+
| Multi-bot support | N/A | Yes (`--bot` flag) |
|
|
207
|
+
| CI/CD friendly | Requires desktop app | Yes |
|
|
208
|
+
|
|
209
|
+
## AI Agent Integration
|
|
210
|
+
|
|
211
|
+
See [`skills/agent-slackbot/`](https://github.com/devxoul/agent-messenger/tree/main/skills/agent-slackbot) for:
|
|
212
|
+
- Complete skill documentation
|
|
213
|
+
- Runnable templates
|
|
214
|
+
- Common patterns for AI agents
|
|
@@ -109,6 +109,9 @@ agent-teams team current
|
|
|
109
109
|
|
|
110
110
|
# Get team info
|
|
111
111
|
agent-teams team info <team-id>
|
|
112
|
+
|
|
113
|
+
# Remove a stored team
|
|
114
|
+
agent-teams team remove <team-id>
|
|
112
115
|
```
|
|
113
116
|
|
|
114
117
|
## Commands
|
|
@@ -283,7 +286,7 @@ Some operations require specific Microsoft 365 permissions. Check with your IT a
|
|
|
283
286
|
|
|
284
287
|
## AI Agent Integration
|
|
285
288
|
|
|
286
|
-
See `skills/agent-messenger
|
|
289
|
+
See [`skills/agent-teams/`](https://github.com/devxoul/agent-messenger/tree/main/skills/agent-teams) for:
|
|
287
290
|
- Complete skill documentation
|
|
288
291
|
- Runnable templates
|
|
289
292
|
|
|
@@ -23,8 +23,9 @@ yarn global add agent-messenger
|
|
|
23
23
|
bun add -g agent-messenger
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
This installs
|
|
27
|
-
- `agent-slack` — Slack CLI
|
|
26
|
+
This installs four CLI tools:
|
|
27
|
+
- `agent-slack` — Slack CLI (user token, zero-config)
|
|
28
|
+
- `agent-slackbot` — Slack Bot CLI (bot token, for server-side/CI/CD)
|
|
28
29
|
- `agent-discord` — Discord CLI
|
|
29
30
|
- `agent-teams` — Microsoft Teams CLI
|
|
30
31
|
|
package/docs/src/app/icon.png
CHANGED
|
Binary file
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'
|
|
2
|
+
import Image from 'next/image'
|
|
3
|
+
import icon from './icon.png'
|
|
2
4
|
|
|
3
5
|
export const baseOptions: BaseLayoutProps = {
|
|
4
6
|
nav: {
|
|
5
|
-
title:
|
|
7
|
+
title: (
|
|
8
|
+
<>
|
|
9
|
+
<Image src={icon} alt="Agent Messenger" width={24} height={24} />
|
|
10
|
+
Agent Messenger
|
|
11
|
+
</>
|
|
12
|
+
),
|
|
6
13
|
},
|
|
7
14
|
}
|
package/docs/src/app/page.tsx
CHANGED
|
@@ -232,7 +232,24 @@ function ThemeToggle() {
|
|
|
232
232
|
)
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
+
async function fetchNpmVersion(): Promise<string | null> {
|
|
236
|
+
try {
|
|
237
|
+
const res = await fetch('https://registry.npmjs.org/agent-messenger/latest')
|
|
238
|
+
if (!res.ok) return null
|
|
239
|
+
const data = await res.json()
|
|
240
|
+
return data.version ?? null
|
|
241
|
+
} catch {
|
|
242
|
+
return null
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
235
246
|
export default function Home() {
|
|
247
|
+
const [npmVersion, setNpmVersion] = useState<string | null>(null)
|
|
248
|
+
|
|
249
|
+
useEffect(() => {
|
|
250
|
+
fetchNpmVersion().then(setNpmVersion)
|
|
251
|
+
}, [])
|
|
252
|
+
|
|
236
253
|
return (
|
|
237
254
|
<div className="flex min-h-screen flex-col bg-zinc-50 dark:bg-black">
|
|
238
255
|
<header className="sticky top-0 z-50 border-b border-zinc-200 bg-zinc-50/80 backdrop-blur-sm dark:border-zinc-800 dark:bg-black/80">
|
|
@@ -266,7 +283,7 @@ export default function Home() {
|
|
|
266
283
|
<span className="animate-ping absolute inline-flex h-full w-full rounded-full bg-green-400 opacity-75"></span>
|
|
267
284
|
<span className="relative inline-flex rounded-full h-2 w-2 bg-green-500"></span>
|
|
268
285
|
</span>
|
|
269
|
-
|
|
286
|
+
{npmVersion ? `v${npmVersion} Available Now` : 'Available Now'}
|
|
270
287
|
</div>
|
|
271
288
|
<h1 className="max-w-4xl text-5xl font-extrabold tracking-tight text-zinc-900 dark:text-white sm:text-6xl md:text-7xl">
|
|
272
289
|
Give your AI agent the power to <br className="hidden sm:block" />
|
package/e2e/config.ts
CHANGED
|
@@ -29,6 +29,32 @@ export async function validateSlackEnvironment() {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
// SlackBot Test Environment (same workspace as Slack, bot token)
|
|
33
|
+
export const SLACKBOT_TEST_WORKSPACE_ID = 'T0AC55BSF6E'
|
|
34
|
+
export const SLACKBOT_TEST_WORKSPACE_NAME = 'Agent Messenger'
|
|
35
|
+
export const SLACKBOT_TEST_CHANNEL_ID = 'C0ACZKTDDC0'
|
|
36
|
+
export const SLACKBOT_TEST_CHANNEL = 'e2e-test'
|
|
37
|
+
|
|
38
|
+
export async function validateSlackBotEnvironment() {
|
|
39
|
+
const { runCLI, parseJSON } = await import('./helpers')
|
|
40
|
+
|
|
41
|
+
const result = await runCLI('slackbot', ['auth', 'status'])
|
|
42
|
+
if (result.exitCode !== 0) {
|
|
43
|
+
throw new Error('SlackBot authentication failed. Please run: agent-slackbot auth set <token>')
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const data = parseJSON<{ workspace_id: string; valid: boolean }>(result.stdout)
|
|
47
|
+
if (!data?.valid) {
|
|
48
|
+
throw new Error('SlackBot token is invalid or expired. Please run: agent-slackbot auth set <token>')
|
|
49
|
+
}
|
|
50
|
+
if (data?.workspace_id !== SLACKBOT_TEST_WORKSPACE_ID) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
`Wrong SlackBot workspace. Expected: ${SLACKBOT_TEST_WORKSPACE_NAME} (${SLACKBOT_TEST_WORKSPACE_ID}), ` +
|
|
53
|
+
`Got: ${data?.workspace_id}`
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
32
58
|
export async function validateDiscordEnvironment() {
|
|
33
59
|
const { runCLI, parseJSON } = await import('./helpers')
|
|
34
60
|
|
package/e2e/helpers.ts
CHANGED
|
@@ -7,7 +7,12 @@ export interface CLIResult {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export async function runCLI(platform: string, args: string[]): Promise<CLIResult> {
|
|
10
|
-
const
|
|
10
|
+
const commandMap: Record<string, string> = {
|
|
11
|
+
slack: 'agent-slack',
|
|
12
|
+
discord: 'agent-discord',
|
|
13
|
+
slackbot: 'agent-slackbot',
|
|
14
|
+
}
|
|
15
|
+
const command = commandMap[platform] || platform
|
|
11
16
|
|
|
12
17
|
try {
|
|
13
18
|
const result = await $`${command} ${args}`.quiet()
|