agent-messenger 2.1.0 → 2.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.
Files changed (217) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.env.template +35 -17
  3. package/README.md +7 -7
  4. package/bun.lock +31 -7
  5. package/dist/package.json +5 -3
  6. package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
  7. package/dist/src/platforms/channeltalk/commands/auth.js +35 -28
  8. package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
  9. package/dist/src/platforms/channeltalk/ensure-auth.js +6 -6
  10. package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -1
  11. package/dist/src/platforms/channeltalk/token-extractor.d.ts +23 -1
  12. package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
  13. package/dist/src/platforms/channeltalk/token-extractor.js +299 -29
  14. package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
  15. package/dist/src/platforms/discord/commands/auth.d.ts.map +1 -1
  16. package/dist/src/platforms/discord/commands/auth.js +57 -49
  17. package/dist/src/platforms/discord/commands/auth.js.map +1 -1
  18. package/dist/src/platforms/discord/ensure-auth.js +3 -3
  19. package/dist/src/platforms/discord/ensure-auth.js.map +1 -1
  20. package/dist/src/platforms/discord/token-extractor.d.ts +6 -1
  21. package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
  22. package/dist/src/platforms/discord/token-extractor.js +167 -14
  23. package/dist/src/platforms/discord/token-extractor.js.map +1 -1
  24. package/dist/src/platforms/instagram/client.d.ts +2 -0
  25. package/dist/src/platforms/instagram/client.d.ts.map +1 -1
  26. package/dist/src/platforms/instagram/client.js +2 -2
  27. package/dist/src/platforms/instagram/client.js.map +1 -1
  28. package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -1
  29. package/dist/src/platforms/instagram/commands/auth.js +107 -14
  30. package/dist/src/platforms/instagram/commands/auth.js.map +1 -1
  31. package/dist/src/platforms/instagram/ensure-auth.d.ts.map +1 -1
  32. package/dist/src/platforms/instagram/ensure-auth.js +57 -11
  33. package/dist/src/platforms/instagram/ensure-auth.js.map +1 -1
  34. package/dist/src/platforms/instagram/index.d.ts +1 -0
  35. package/dist/src/platforms/instagram/index.d.ts.map +1 -1
  36. package/dist/src/platforms/instagram/index.js +1 -0
  37. package/dist/src/platforms/instagram/index.js.map +1 -1
  38. package/dist/src/platforms/instagram/token-extractor.d.ts +44 -0
  39. package/dist/src/platforms/instagram/token-extractor.d.ts.map +1 -0
  40. package/dist/src/platforms/instagram/token-extractor.js +407 -0
  41. package/dist/src/platforms/instagram/token-extractor.js.map +1 -0
  42. package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -1
  43. package/dist/src/platforms/kakaotalk/client.js +2 -1
  44. package/dist/src/platforms/kakaotalk/client.js.map +1 -1
  45. package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -1
  46. package/dist/src/platforms/kakaotalk/commands/auth.js +14 -13
  47. package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -1
  48. package/dist/src/platforms/kakaotalk/protocol/connection.d.ts.map +1 -1
  49. package/dist/src/platforms/kakaotalk/protocol/connection.js +2 -1
  50. package/dist/src/platforms/kakaotalk/protocol/connection.js.map +1 -1
  51. package/dist/src/platforms/line/client.d.ts.map +1 -1
  52. package/dist/src/platforms/line/client.js +36 -9
  53. package/dist/src/platforms/line/client.js.map +1 -1
  54. package/dist/src/platforms/line/commands/auth.d.ts.map +1 -1
  55. package/dist/src/platforms/line/commands/auth.js +6 -5
  56. package/dist/src/platforms/line/commands/auth.js.map +1 -1
  57. package/dist/src/platforms/slack/commands/auth.d.ts.map +1 -1
  58. package/dist/src/platforms/slack/commands/auth.js +11 -10
  59. package/dist/src/platforms/slack/commands/auth.js.map +1 -1
  60. package/dist/src/platforms/slack/token-extractor.d.ts +9 -0
  61. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
  62. package/dist/src/platforms/slack/token-extractor.js +300 -23
  63. package/dist/src/platforms/slack/token-extractor.js.map +1 -1
  64. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
  65. package/dist/src/platforms/teams/commands/auth.js +9 -8
  66. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  67. package/dist/src/platforms/teams/ensure-auth.d.ts.map +1 -1
  68. package/dist/src/platforms/teams/ensure-auth.js +2 -1
  69. package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
  70. package/dist/src/platforms/teams/token-extractor.d.ts +5 -0
  71. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  72. package/dist/src/platforms/teams/token-extractor.js +161 -29
  73. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  74. package/dist/src/platforms/telegram/client.d.ts.map +1 -1
  75. package/dist/src/platforms/telegram/client.js +25 -7
  76. package/dist/src/platforms/telegram/client.js.map +1 -1
  77. package/dist/src/platforms/telegram/commands/auth.d.ts.map +1 -1
  78. package/dist/src/platforms/telegram/commands/auth.js +6 -5
  79. package/dist/src/platforms/telegram/commands/auth.js.map +1 -1
  80. package/dist/src/platforms/webex/client.d.ts +12 -0
  81. package/dist/src/platforms/webex/client.d.ts.map +1 -1
  82. package/dist/src/platforms/webex/client.js +168 -1
  83. package/dist/src/platforms/webex/client.js.map +1 -1
  84. package/dist/src/platforms/webex/commands/auth.d.ts +4 -0
  85. package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -1
  86. package/dist/src/platforms/webex/commands/auth.js +50 -4
  87. package/dist/src/platforms/webex/commands/auth.js.map +1 -1
  88. package/dist/src/platforms/webex/credential-manager.js +1 -1
  89. package/dist/src/platforms/webex/credential-manager.js.map +1 -1
  90. package/dist/src/platforms/webex/encryption.d.ts +10 -0
  91. package/dist/src/platforms/webex/encryption.d.ts.map +1 -0
  92. package/dist/src/platforms/webex/encryption.js +49 -0
  93. package/dist/src/platforms/webex/encryption.js.map +1 -0
  94. package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -1
  95. package/dist/src/platforms/webex/ensure-auth.js +25 -5
  96. package/dist/src/platforms/webex/ensure-auth.js.map +1 -1
  97. package/dist/src/platforms/webex/index.d.ts +2 -0
  98. package/dist/src/platforms/webex/index.d.ts.map +1 -1
  99. package/dist/src/platforms/webex/index.js +1 -0
  100. package/dist/src/platforms/webex/index.js.map +1 -1
  101. package/dist/src/platforms/webex/token-extractor.d.ts +29 -0
  102. package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -0
  103. package/dist/src/platforms/webex/token-extractor.js +393 -0
  104. package/dist/src/platforms/webex/token-extractor.js.map +1 -0
  105. package/dist/src/platforms/webex/types.d.ts +8 -1
  106. package/dist/src/platforms/webex/types.d.ts.map +1 -1
  107. package/dist/src/platforms/webex/types.js +4 -1
  108. package/dist/src/platforms/webex/types.js.map +1 -1
  109. package/dist/src/platforms/whatsapp/client.d.ts.map +1 -1
  110. package/dist/src/platforms/whatsapp/client.js +6 -2
  111. package/dist/src/platforms/whatsapp/client.js.map +1 -1
  112. package/dist/src/shared/utils/derived-key-cache.d.ts +1 -1
  113. package/dist/src/shared/utils/derived-key-cache.d.ts.map +1 -1
  114. package/dist/src/shared/utils/error-handler.d.ts +1 -1
  115. package/dist/src/shared/utils/error-handler.d.ts.map +1 -1
  116. package/dist/src/shared/utils/error-handler.js +3 -2
  117. package/dist/src/shared/utils/error-handler.js.map +1 -1
  118. package/dist/src/shared/utils/stderr.d.ts +5 -0
  119. package/dist/src/shared/utils/stderr.d.ts.map +1 -0
  120. package/dist/src/shared/utils/stderr.js +18 -0
  121. package/dist/src/shared/utils/stderr.js.map +1 -0
  122. package/docs/content/docs/cli/channeltalk.mdx +7 -7
  123. package/docs/content/docs/cli/discord.mdx +3 -3
  124. package/docs/content/docs/cli/instagram.mdx +28 -6
  125. package/docs/content/docs/cli/slack.mdx +2 -2
  126. package/docs/content/docs/cli/teams.mdx +6 -4
  127. package/docs/content/docs/cli/webex.mdx +32 -11
  128. package/e2e/README.md +132 -8
  129. package/e2e/channeltalk.e2e.test.ts +2 -7
  130. package/e2e/channeltalkbot.e2e.test.ts +2 -6
  131. package/e2e/config.ts +172 -10
  132. package/e2e/helpers.ts +7 -0
  133. package/e2e/instagram.e2e.test.ts +97 -0
  134. package/e2e/kakaotalk.e2e.test.ts +74 -0
  135. package/e2e/line.e2e.test.ts +92 -0
  136. package/e2e/teams.e2e.test.ts +46 -1
  137. package/e2e/telegram.e2e.test.ts +84 -0
  138. package/e2e/webex.e2e.test.ts +190 -0
  139. package/e2e/whatsapp.e2e.test.ts +90 -0
  140. package/e2e/whatsappbot.e2e.test.ts +78 -0
  141. package/package.json +5 -3
  142. package/skills/agent-channeltalk/SKILL.md +9 -9
  143. package/skills/agent-channeltalk/references/authentication.md +21 -18
  144. package/skills/agent-channeltalkbot/SKILL.md +1 -1
  145. package/skills/agent-discord/SKILL.md +5 -5
  146. package/skills/agent-discord/references/authentication.md +8 -8
  147. package/skills/agent-discordbot/SKILL.md +1 -1
  148. package/skills/agent-instagram/SKILL.md +51 -9
  149. package/skills/agent-instagram/references/authentication.md +35 -3
  150. package/skills/agent-kakaotalk/SKILL.md +1 -1
  151. package/skills/agent-line/SKILL.md +1 -1
  152. package/skills/agent-slack/SKILL.md +5 -5
  153. package/skills/agent-slack/references/authentication.md +8 -8
  154. package/skills/agent-slackbot/SKILL.md +1 -1
  155. package/skills/agent-teams/SKILL.md +6 -6
  156. package/skills/agent-teams/references/authentication.md +8 -8
  157. package/skills/agent-telegram/SKILL.md +1 -1
  158. package/skills/agent-webex/SKILL.md +35 -15
  159. package/skills/agent-webex/references/authentication.md +63 -9
  160. package/skills/agent-webex/references/common-patterns.md +6 -3
  161. package/skills/agent-whatsapp/SKILL.md +1 -1
  162. package/skills/agent-whatsappbot/SKILL.md +1 -1
  163. package/src/platforms/channeltalk/commands/auth.test.ts +5 -5
  164. package/src/platforms/channeltalk/commands/auth.ts +38 -32
  165. package/src/platforms/channeltalk/ensure-auth.test.ts +6 -6
  166. package/src/platforms/channeltalk/ensure-auth.ts +6 -6
  167. package/src/platforms/channeltalk/token-extractor.test.ts +182 -15
  168. package/src/platforms/channeltalk/token-extractor.ts +344 -30
  169. package/src/platforms/discord/commands/auth.test.ts +3 -3
  170. package/src/platforms/discord/commands/auth.ts +58 -54
  171. package/src/platforms/discord/ensure-auth.test.ts +3 -3
  172. package/src/platforms/discord/ensure-auth.ts +3 -3
  173. package/src/platforms/discord/token-extractor.test.ts +199 -27
  174. package/src/platforms/discord/token-extractor.ts +190 -17
  175. package/src/platforms/instagram/client.ts +2 -2
  176. package/src/platforms/instagram/commands/auth.ts +133 -14
  177. package/src/platforms/instagram/ensure-auth.ts +63 -12
  178. package/src/platforms/instagram/index.ts +1 -0
  179. package/src/platforms/instagram/token-extractor.test.ts +424 -0
  180. package/src/platforms/instagram/token-extractor.ts +478 -0
  181. package/src/platforms/kakaotalk/client.ts +3 -1
  182. package/src/platforms/kakaotalk/commands/auth.ts +14 -13
  183. package/src/platforms/kakaotalk/protocol/connection.ts +3 -1
  184. package/src/platforms/line/client.ts +39 -14
  185. package/src/platforms/line/commands/auth.ts +7 -6
  186. package/src/platforms/slack/cli.test.ts +6 -5
  187. package/src/platforms/slack/commands/auth.test.ts +11 -7
  188. package/src/platforms/slack/commands/auth.ts +11 -10
  189. package/src/platforms/slack/token-extractor.test.ts +98 -1
  190. package/src/platforms/slack/token-extractor.ts +338 -26
  191. package/src/platforms/teams/commands/auth.ts +9 -8
  192. package/src/platforms/teams/ensure-auth.ts +3 -1
  193. package/src/platforms/teams/token-extractor.test.ts +136 -17
  194. package/src/platforms/teams/token-extractor.ts +182 -31
  195. package/src/platforms/telegram/client.test.ts +134 -0
  196. package/src/platforms/telegram/client.ts +27 -6
  197. package/src/platforms/telegram/commands/auth.ts +6 -5
  198. package/src/platforms/webex/client.test.ts +314 -0
  199. package/src/platforms/webex/client.ts +231 -1
  200. package/src/platforms/webex/commands/auth.ts +71 -4
  201. package/src/platforms/webex/commands/member.test.ts +10 -1
  202. package/src/platforms/webex/commands/message.test.ts +9 -5
  203. package/src/platforms/webex/commands/snapshot.test.ts +13 -4
  204. package/src/platforms/webex/commands/space.test.ts +12 -2
  205. package/src/platforms/webex/credential-manager.ts +1 -1
  206. package/src/platforms/webex/encryption.ts +53 -0
  207. package/src/platforms/webex/ensure-auth.test.ts +4 -0
  208. package/src/platforms/webex/ensure-auth.ts +27 -4
  209. package/src/platforms/webex/index.ts +2 -0
  210. package/src/platforms/webex/token-extractor.test.ts +327 -0
  211. package/src/platforms/webex/token-extractor.ts +460 -0
  212. package/src/platforms/webex/types.ts +8 -2
  213. package/src/platforms/webex/typings/node-jose.d.ts +27 -0
  214. package/src/platforms/whatsapp/client.ts +11 -7
  215. package/src/shared/utils/derived-key-cache.ts +1 -1
  216. package/src/shared/utils/error-handler.ts +4 -2
  217. package/src/shared/utils/stderr.ts +22 -0
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-channeltalk
3
- description: Interact with Channel Talk using extracted desktop app credentials - read chats, send messages, search messages, manage groups
4
- version: 2.1.0
3
+ description: Interact with Channel Talk using extracted desktop app or browser credentials - read chats, send messages, search messages, manage groups
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-channeltalk:*)
6
6
  metadata:
7
7
  openclaw:
@@ -16,7 +16,7 @@ metadata:
16
16
 
17
17
  # Agent Channel
18
18
 
19
- A TypeScript CLI tool that enables AI agents and humans to interact with Channel Talk workspaces through a simple command interface. Features zero-config credential extraction from the Channel Talk desktop app and multi-workspace support.
19
+ A TypeScript CLI tool that enables AI agents and humans to interact with Channel Talk workspaces through a simple command interface. Features zero-config credential extraction from the Channel Talk desktop app (with browser fallback) and multi-workspace support.
20
20
 
21
21
  ## Key Concepts
22
22
 
@@ -48,16 +48,16 @@ agent-channeltalk chat list
48
48
 
49
49
  ## Authentication
50
50
 
51
- Credentials are extracted automatically from the Channel Talk desktop app on first use. No manual setup required, no API keys needed. Just run any command and authentication happens silently in the background.
51
+ Credentials are extracted automatically from the Channel Talk desktop app (or Chromium browser as fallback) on first use. No manual setup required, no API keys needed. Just run any command and authentication happens silently in the background.
52
52
 
53
- The Channel Talk desktop app stores auth cookies in a SQLite database. On macOS, cookies are plaintext and no Keychain prompt is needed. On Windows, cookies are DPAPI-encrypted and decrypted automatically. The CLI reads two cookies:
53
+ The Channel Talk desktop app stores auth cookies in a SQLite database. On macOS, cookies are plaintext and no Keychain prompt is needed. On Windows, cookies are DPAPI-encrypted and decrypted automatically. When falling back to a Chromium browser on macOS, cookies require Keychain decryption. The CLI reads two cookies:
54
54
 
55
55
  - `x-account` (JWT) - your account identity
56
56
  - `ch-session-1` (JWT) - your session token
57
57
 
58
- These cookies expire after roughly 30 days. When they expire, the CLI automatically re-extracts fresh cookies from the desktop app on the next command.
58
+ These cookies expire after roughly 30 days. When they expire, the CLI automatically re-extracts fresh cookies from the desktop app or browser on the next command.
59
59
 
60
- **IMPORTANT**: NEVER guide the user to open a web browser, use DevTools, or manually copy tokens. Always use `agent-channeltalk auth extract` to obtain credentials from the desktop app.
60
+ **IMPORTANT**: Always use `agent-channeltalk auth extract` to obtain credentials. The CLI extracts from the desktop app first, falling back to Chromium browsers if the app isn't installed.
61
61
 
62
62
  ### Multi-Workspace Support
63
63
 
@@ -166,7 +166,7 @@ If a memorized ID returns an error (chat not found, group not found), remove it
166
166
  ### Auth Commands
167
167
 
168
168
  ```bash
169
- # Extract cookies from Channel Talk desktop app (usually automatic)
169
+ # Extract cookies from Channel Talk desktop app or browser (usually automatic)
170
170
  agent-channeltalk auth extract
171
171
 
172
172
  # Check auth status
@@ -379,7 +379,7 @@ Use **agent-channeltalk** when you want zero-config access acting as yourself. U
379
379
 
380
380
  ## Limitations
381
381
 
382
- - macOS and Windows only (Channel Talk desktop app required)
382
+ - Desktop app extraction: macOS and Windows. Browser fallback: macOS, Linux, and Windows.
383
383
  - No real-time events / WebSocket connection
384
384
  - No file upload support
385
385
  - No message editing or deletion
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- agent-channeltalk uses cookies extracted directly from the Channel Talk desktop application. This provides seamless, zero-config authentication without API keys or manual token management.
5
+ agent-channeltalk uses cookies extracted from the Channel Talk desktop application, with automatic fallback to Chromium browser profiles (Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium) when the desktop app isn't installed.
6
6
 
7
7
  ## Cookie Extraction
8
8
 
@@ -22,17 +22,19 @@ agent-channeltalk auth extract
22
22
 
23
23
  ### How It Works
24
24
 
25
- 1. Locates the Channel Talk desktop app's SQLite cookie database on macOS
26
- 2. Copies the database to a temp file (avoids locking the original)
27
- 3. Reads `x-account` and `ch-session-1` cookies for `*.channel.io`
28
- 4. Validates cookies against the Channel Talk API
29
- 5. Discovers ALL workspaces you belong to
30
- 6. Stores credentials in `~/.config/agent-messenger/channel-credentials.json`
31
- 7. Sets the first workspace as the current active workspace
25
+ 1. Locates the Channel Talk desktop app's SQLite cookie database
26
+ 2. If the desktop app isn't found, scans Chromium browser profiles for Channel Talk cookies
27
+ 3. Copies the database to a temp file (avoids locking the original)
28
+ 4. Reads `x-account` and `ch-session-1` cookies for `*.channel.io`
29
+ 5. Decrypts encrypted cookies if needed (macOS Keychain, Linux peanuts, Windows DPAPI)
30
+ 6. Validates cookies against the Channel Talk API
31
+ 7. Discovers ALL workspaces you belong to
32
+ 8. Stores credentials in `~/.config/agent-messenger/channel-credentials.json`
33
+ 9. Sets the first workspace as the current active workspace
32
34
 
33
- ### No Keychain Prompt
35
+ ### Keychain Prompt (Browser Extraction on macOS)
34
36
 
35
- Unlike Slack and Discord, Channel Talk stores cookies in a plaintext SQLite database. There's no OS-level encryption, so no Keychain password prompt is needed. Extraction is completely silent.
37
+ When extracting from the desktop app, no Keychain prompt is needed (cookies are plaintext). When extracting from a Chromium browser, your Mac may prompt for Keychain access to decrypt the browser's cookies.
36
38
 
37
39
  ### What Gets Extracted
38
40
 
@@ -56,7 +58,7 @@ Unlike Slack and Discord, Channel Talk stores cookies in a plaintext SQLite data
56
58
 
57
59
  The tool checks the sandboxed path first, then falls back to the direct path.
58
60
 
59
- > **Note**: Only macOS is supported. Linux and Windows are not currently supported.
61
+ > **Note**: Desktop app extraction supports macOS and Windows. Browser fallback extraction supports macOS, Linux, and Windows.
60
62
 
61
63
  ## Multi-Workspace Management
62
64
 
@@ -245,16 +247,17 @@ No credentials are configured and auto-extraction failed:
245
247
 
246
248
  ### Channel Talk desktop app not found
247
249
 
248
- The CLI only supports macOS. It looks for the cookie database in two locations:
250
+ The CLI first checks for the desktop app, then falls back to Chromium browsers.
249
251
 
250
- 1. **Mac App Store version**: `~/Library/Containers/com.zoyi.channel.desk.osx/Data/Library/Application Support/Channel Talk/Cookies`
251
- 2. **Electron version**: `~/Library/Application Support/Channel Talk/Cookies`
252
+ Desktop app paths:
253
+ 1. **macOS (Mac App Store)**: `~/Library/Containers/com.zoyi.channel.desk.osx/Data/Library/Application Support/Channel Talk/Cookies`
254
+ 2. **macOS (Electron)**: `~/Library/Application Support/Channel Talk/Cookies`
255
+ 3. **Windows**: `%APPDATA%/Channel Talk/Network/Cookies`
252
256
 
253
- If neither path exists:
257
+ If neither the desktop app nor browser cookies are found:
254
258
 
255
- 1. Install the Channel Talk desktop app from the Mac App Store or download it directly
256
- 2. Log in to your account
257
- 3. Run `agent-channeltalk auth extract`
259
+ 1. Log in to desk.channel.io in a Chromium browser (Chrome, Edge, Arc, Brave) — the CLI will extract from browser automatically
260
+ 2. Or install the Channel Talk desktop app, log in, and run `agent-channeltalk auth extract`
258
261
 
259
262
  ### Cookies expired or invalid
260
263
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-channeltalkbot
3
3
  description: Interact with Channel Talk workspaces using API credentials - send messages, read chats, manage groups and bots
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-channeltalkbot:*)
6
6
  metadata:
7
7
  openclaw:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-discord
3
3
  description: Interact with Discord servers - send messages, read channels, manage reactions
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-discord:*)
6
6
  metadata:
7
7
  openclaw:
@@ -16,7 +16,7 @@ metadata:
16
16
 
17
17
  # Agent Discord
18
18
 
19
- A TypeScript CLI tool that enables AI agents and humans to interact with Discord servers through a simple command interface. Features seamless token extraction from the Discord desktop app and multi-server support.
19
+ A TypeScript CLI tool that enables AI agents and humans to interact with Discord servers through a simple command interface. Features seamless token extraction from the Discord desktop app (with browser fallback) and multi-server support.
20
20
 
21
21
  ## Quick Start
22
22
 
@@ -33,11 +33,11 @@ agent-discord channel list
33
33
 
34
34
  ## Authentication
35
35
 
36
- Credentials are extracted automatically from the Discord desktop app on first use. No manual setup required — just run any command and authentication happens silently in the background.
36
+ Credentials are extracted automatically from the Discord desktop app (or Chromium browser as fallback) on first use. No manual setup required — just run any command and authentication happens silently in the background.
37
37
 
38
38
  On macOS, the system may prompt for your Keychain password the first time (required to decrypt Discord's stored token). This is a one-time prompt.
39
39
 
40
- **IMPORTANT**: NEVER guide the user to open a web browser, use DevTools, or manually copy tokens from a browser. Always use `agent-discord auth extract` to obtain tokens from the desktop app.
40
+ **IMPORTANT**: Always use `agent-discord auth extract` to obtain tokens. The CLI extracts from the desktop app first, falling back to Chromium browsers if the app isn't installed.
41
41
 
42
42
  ### Multi-Server Support
43
43
 
@@ -134,7 +134,7 @@ If a memorized ID returns an error (channel not found, server not found), remove
134
134
  ### Auth Commands
135
135
 
136
136
  ```bash
137
- # Extract token from Discord desktop app (usually automatic)
137
+ # Extract token from Discord desktop app or browser (usually automatic)
138
138
  agent-discord auth extract
139
139
  agent-discord auth extract --debug
140
140
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- agent-discord uses Discord's user token extracted directly from the Discord desktop application. This provides seamless authentication without manual token management.
5
+ agent-discord uses Discord's user token extracted from the Discord desktop application, with automatic fallback to Chromium browser profiles (Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium) when the desktop app isn't installed.
6
6
 
7
7
  ## Token Extraction
8
8
 
@@ -22,10 +22,11 @@ This command:
22
22
  1. Detects your operating system (macOS, Linux, Windows)
23
23
  2. Locates the Discord desktop app data directory
24
24
  3. Reads the LevelDB storage containing session data
25
- 4. Extracts user token
26
- 5. Validates token against Discord API before saving
27
- 6. Discovers ALL joined servers
28
- 7. Stores credentials securely in `~/.config/agent-messenger/discord-credentials.json`
25
+ 4. If the desktop app isn't found, scans Chromium browser profiles for Discord tokens
26
+ 5. Extracts user token (handles encrypted tokens on all platforms)
27
+ 6. Validates token against Discord API before saving
28
+ 7. Discovers ALL joined servers
29
+ 8. Stores credentials securely in `~/.config/agent-messenger/discord-credentials.json`
29
30
 
30
31
  ### Platform-Specific Paths
31
32
 
@@ -209,9 +210,8 @@ This shows:
209
210
 
210
211
  **Solution**:
211
212
 
212
- 1. Install Discord desktop app
213
- 2. Log in to your account
214
- 3. Run `agent-discord auth extract` again
213
+ 1. Log in to discord.com in a Chromium browser (Chrome, Edge, Arc, Brave) — the CLI will extract from browser automatically
214
+ 2. Or install the Discord desktop app, log in, and run `agent-discord auth extract` again
215
215
 
216
216
  ### "No Discord token found"
217
217
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-discordbot
3
3
  description: Interact with Discord servers using bot tokens - send messages, read channels, manage reactions
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-discordbot:*)
6
6
  metadata:
7
7
  openclaw:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-instagram
3
3
  description: Interact with Instagram DMs - send messages, read conversations, manage accounts
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-instagram:*)
6
6
  metadata:
7
7
  openclaw:
@@ -16,7 +16,7 @@ metadata:
16
16
 
17
17
  # Agent Instagram
18
18
 
19
- An Instagram DM CLI for AI agents. Authenticates with username/password (supports 2FA), uses Instagram's private mobile API to read and send direct messages.
19
+ An Instagram DM CLI for AI agents. Supports browser cookie extraction (zero-config, extracts from Chromium browsers) and username/password authentication (with 2FA). Uses Instagram's private mobile API to read and send direct messages.
20
20
 
21
21
  Use one of these entrypoints:
22
22
  - Global install: `agent-instagram ...`
@@ -25,7 +25,8 @@ Use one of these entrypoints:
25
25
  ## Key Concepts
26
26
 
27
27
  - **Thread ID** = Instagram's identifier for a DM conversation. Numeric string returned by `chat list`.
28
- - **Username/password auth** = authenticates using Instagram credentials. Supports two-factor authentication via SMS or authenticator app.
28
+ - **Browser cookie extraction** = recommended auth method. Extracts cookies from Chromium browsers (Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium) where you're logged into instagram.com. Zero-config.
29
+ - **Username/password auth** = fallback method. Authenticates using Instagram credentials. Supports two-factor authentication via SMS or authenticator app.
29
30
  - **HTTP-based** = each command makes HTTP requests and returns. No persistent connection or background process.
30
31
  - **Multi-account** = multiple Instagram accounts can be stored. Use `auth list` and `auth use` to switch between them.
31
32
  - **DM-only** = this CLI focuses on Instagram Direct Messages. It does not manage posts, stories, or followers.
@@ -33,7 +34,10 @@ Use one of these entrypoints:
33
34
  ## Quick Start
34
35
 
35
36
  ```bash
36
- # Log in with Instagram credentials
37
+ # Extract cookies from browser (recommended — zero-config)
38
+ agent-instagram auth extract
39
+
40
+ # Or: Log in with Instagram credentials (fallback)
37
41
  agent-instagram auth login --username myaccount --password "mypassword"
38
42
 
39
43
  # List DM conversations
@@ -45,7 +49,30 @@ agent-instagram message send <thread-id> "Hello from agent-instagram"
45
49
 
46
50
  ## Authentication Flow
47
51
 
48
- Instagram uses username/password authentication with optional two-factor verification. Sessions are persisted locally so you don't need to re-authenticate for every command.
52
+ Instagram supports two authentication methods:
53
+
54
+ 1. **Browser cookie extraction** (recommended): Extracts your session cookies from a Chromium browser where you're logged into instagram.com. Zero-config, no password needed.
55
+ 2. **Username/password login**: Authenticates using Instagram credentials with optional two-factor verification.
56
+
57
+ Sessions are persisted locally so you don't need to re-authenticate for every command. Browser extraction auto-runs when no session exists.
58
+
59
+ ### Browser Cookie Extraction (Recommended)
60
+
61
+ `agent-instagram auth extract` reads your Instagram session cookies from Chrome, Edge, Arc, Brave, Vivaldi, or Chromium. You must be logged into instagram.com in one of these browsers.
62
+
63
+ ```bash
64
+ # Extract cookies from browser — zero-config
65
+ agent-instagram auth extract
66
+
67
+ # With debug output
68
+ agent-instagram auth extract --debug
69
+ ```
70
+
71
+ **How it works**: The CLI reads Instagram cookies (`sessionid`, `csrftoken`, `ds_user_id`) directly from the browser's SQLite cookie database. No browser automation, no password prompts. The session is stored locally in `~/.config/agent-messenger/`.
72
+
73
+ **When to re-extract**: Browser cookies expire. When your session expires, re-run `agent-instagram auth extract` or let auto-extraction handle it (the CLI attempts extraction automatically when no valid session exists).
74
+
75
+ **Supported browsers**: Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium
49
76
 
50
77
  ### Agent Behavior (MANDATORY)
51
78
 
@@ -59,11 +86,20 @@ agent-instagram auth list
59
86
 
60
87
  If accounts exist, use `agent-instagram auth use <account-id>` and retry the original command.
61
88
 
62
- **Step 2: If no accounts, ask for credentials**
89
+ **Step 2: Try browser extraction first**
90
+
91
+ ```bash
92
+ agent-instagram auth extract
93
+ # -> {"authenticated":true,"account_id":"12345678","username":"myaccount"}
94
+ ```
95
+
96
+ If extraction succeeds, proceed with the original command.
97
+
98
+ **Step 3: If extraction fails, ask for credentials**
63
99
 
64
100
  Ask the user for their Instagram username and password. These are the ONLY things the user needs to provide.
65
101
 
66
- **Step 3: Start login**
102
+ **Step 4: Start login**
67
103
 
68
104
  ```bash
69
105
  agent-instagram auth login --username myaccount --password "mypassword"
@@ -92,6 +128,8 @@ After successful auth, immediately execute whatever the user originally asked fo
92
128
  ### Common Auth Commands
93
129
 
94
130
  ```bash
131
+ agent-instagram auth extract # Extract cookies from browser (recommended)
132
+ agent-instagram auth extract --debug # Extract with debug output
95
133
  agent-instagram auth status # Check current auth state
96
134
  agent-instagram auth status --account <id> # Check specific account
97
135
  agent-instagram auth list # List all stored accounts
@@ -166,6 +204,10 @@ Never store auth credentials, passwords, session tokens, or any sensitive data.
166
204
  ### Auth Commands
167
205
 
168
206
  ```bash
207
+ # Extract cookies from browser (recommended — zero-config)
208
+ agent-instagram auth extract
209
+ agent-instagram auth extract --debug
210
+
169
211
  # Log in (interactive: prompts for username/password)
170
212
  agent-instagram auth login
171
213
 
@@ -334,8 +376,8 @@ All commands return consistent error format:
334
376
 
335
377
  Common errors:
336
378
 
337
- - `Not authenticated` - no account configured. Run `auth login`.
338
- - `Session expired or missing` - session is no longer valid. Run `auth login` again.
379
+ - `Not authenticated` - no account configured. Run `auth extract` or `auth login`.
380
+ - `Session expired or missing` - session is no longer valid. Run `auth extract` to re-extract from browser, or `auth login` to log in again.
339
381
  - `Login failed` - wrong username/password. Double-check credentials.
340
382
  - `Two-factor authentication failed` - wrong 2FA code. Get a new code and try `auth verify` again.
341
383
  - `Rate limited` - too many requests. Wait and retry.
@@ -2,9 +2,38 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- agent-instagram uses username/password authentication against Instagram's private mobile API. The CLI logs in as a mobile client, so your existing app sessions are never affected. Each command makes HTTP requests on demand. No persistent connection or background process.
5
+ agent-instagram supports two authentication methods: browser cookie extraction (recommended, zero-config) and username/password login (fallback). The CLI uses Instagram's private mobile API. Each command makes HTTP requests on demand. No persistent connection or background process.
6
6
 
7
- ## Username/Password Login
7
+ ## Browser Cookie Extraction (Recommended)
8
+
9
+ ### How It Works
10
+
11
+ 1. Scans Chromium browser profiles (Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium)
12
+ 2. Reads the SQLite cookie database for `.instagram.com` cookies
13
+ 3. Decrypts encrypted cookies using the browser's encryption key (macOS Keychain, Linux peanuts, Windows DPAPI)
14
+ 4. Extracts `sessionid`, `ds_user_id`, `csrftoken`, and optional cookies (`mid`, `ig_did`, `rur`)
15
+ 5. Validates the session against the Instagram API to resolve your username
16
+ 6. Stores credentials in `~/.config/agent-messenger/`
17
+
18
+ ### Usage
19
+
20
+ ```bash
21
+ # Extract cookies from browser (recommended)
22
+ agent-instagram auth extract
23
+
24
+ # With debug output
25
+ agent-instagram auth extract --debug
26
+ ```
27
+
28
+ ### Auto-Extraction
29
+
30
+ When no valid session exists, the CLI automatically attempts browser extraction before prompting for credentials. This means most users never need to run `auth extract` manually.
31
+
32
+ ### Keychain Prompt (macOS)
33
+
34
+ On macOS, your Mac may prompt for your password to access Keychain. This is required because Chromium browsers encrypt cookies using macOS Keychain. Your password is never stored or transmitted.
35
+
36
+ ## Username/Password Login (Fallback)
8
37
 
9
38
  ### How It Works
10
39
 
@@ -227,7 +256,10 @@ If commands start failing with auth errors:
227
256
  # Check if still authenticated
228
257
  agent-instagram auth status
229
258
 
230
- # Re-login if needed
259
+ # Re-extract from browser (if logged in to instagram.com)
260
+ agent-instagram auth extract
261
+
262
+ # Or re-login with credentials
231
263
  agent-instagram auth login
232
264
 
233
265
  # Verify it worked
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-kakaotalk
3
3
  description: Interact with KakaoTalk - send messages, read chats, manage conversations
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-kakaotalk:*)
6
6
  metadata:
7
7
  openclaw:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-line
3
3
  description: Interact with LINE - send messages, read chats, manage conversations
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-line:*)
6
6
  metadata:
7
7
  openclaw:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-slack
3
3
  description: Interact with Slack workspaces - send messages, read channels, manage reactions
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-slack:*)
6
6
  metadata:
7
7
  openclaw:
@@ -16,7 +16,7 @@ metadata:
16
16
 
17
17
  # Agent Slack
18
18
 
19
- A TypeScript CLI tool that enables AI agents and humans to interact with Slack workspaces through a simple command interface. Features seamless token extraction from the Slack desktop app and multi-workspace support.
19
+ A TypeScript CLI tool that enables AI agents and humans to interact with Slack workspaces through a simple command interface. Features seamless token extraction from the Slack desktop app (with browser fallback) and multi-workspace support.
20
20
 
21
21
  ## Quick Start
22
22
 
@@ -33,11 +33,11 @@ agent-slack channel list
33
33
 
34
34
  ## Authentication
35
35
 
36
- Credentials are extracted automatically from the Slack desktop app on first use. No manual setup required — just run any command and authentication happens silently in the background.
36
+ Credentials are extracted automatically from the Slack desktop app (or Chromium browser as fallback) on first use. No manual setup required — just run any command and authentication happens silently in the background.
37
37
 
38
38
  On macOS, the system may prompt for your Keychain password the first time (required to decrypt Slack's stored token). This is a one-time prompt.
39
39
 
40
- **IMPORTANT**: NEVER guide the user to open a web browser, use DevTools, or manually copy tokens from a browser. Always use `agent-slack auth extract` to obtain tokens from the desktop app.
40
+ **IMPORTANT**: Always use `agent-slack auth extract` to obtain tokens. The CLI extracts from the desktop app first, falling back to Chromium browsers if the app isn't installed.
41
41
 
42
42
  ### Multi-Workspace Support
43
43
 
@@ -137,7 +137,7 @@ If a memorized ID returns an error (channel not found, user not found), remove i
137
137
  ### Auth Commands
138
138
 
139
139
  ```bash
140
- # Extract tokens from Slack desktop app (usually automatic)
140
+ # Extract tokens from Slack desktop app or browser (usually automatic)
141
141
  agent-slack auth extract
142
142
  agent-slack auth extract --debug
143
143
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- agent-slack uses Slack's web client credentials (xoxc token + xoxd cookie) extracted directly from the Slack desktop application. This provides seamless authentication without manual token management.
5
+ agent-slack uses Slack's web client credentials (xoxc token + xoxd cookie) extracted from the Slack desktop application, with automatic fallback to Chromium browser profiles (Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium) when the desktop app isn't installed.
6
6
 
7
7
  ## Token Extraction
8
8
 
@@ -22,10 +22,11 @@ This command:
22
22
  1. Detects your operating system (macOS, Linux, Windows)
23
23
  2. Locates the Slack desktop app data directory (supports both direct download and App Store versions on macOS)
24
24
  3. Reads the LevelDB storage containing session data
25
- 4. Decrypts cookies using macOS Keychain (for sandboxed App Store version)
26
- 5. Validates tokens against Slack API before saving
27
- 6. Extracts xoxc token and xoxd cookie for ALL logged-in workspaces
28
- 7. Stores credentials securely in `~/.config/agent-messenger/slack-credentials.json`
25
+ 4. If the desktop app isn't found, scans Chromium browser profiles for Slack tokens in `localStorage.localConfig_v2` and `d` cookie
26
+ 5. Decrypts cookies using macOS Keychain, Linux keyring, or Windows DPAPI
27
+ 6. Validates tokens against Slack API before saving
28
+ 7. Extracts xoxc token and xoxd cookie for ALL logged-in workspaces
29
+ 8. Stores credentials securely in `~/.config/agent-messenger/slack-credentials.json`
29
30
 
30
31
  ### Platform-Specific Paths
31
32
 
@@ -237,9 +238,8 @@ This shows:
237
238
 
238
239
  **Solution**:
239
240
 
240
- 1. Install Slack desktop app
241
- 2. Log in to your workspace(s)
242
- 3. Run `agent-slack auth extract` again
241
+ 1. Log in to your workspace at app.slack.com in a Chromium browser (Chrome, Edge, Arc, Brave) — the CLI will extract from browser automatically
242
+ 2. Or install the Slack desktop app, log in to your workspace(s), and run `agent-slack auth extract` again
243
243
 
244
244
  ### "No workspaces found"
245
245
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-slackbot
3
3
  description: Interact with Slack workspaces using bot tokens - send messages, read channels, manage reactions
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-slackbot:*)
6
6
  metadata:
7
7
  openclaw:
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-teams
3
3
  description: Interact with Microsoft Teams - send messages, read channels, manage reactions
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-teams:*)
6
6
  metadata:
7
7
  openclaw:
@@ -16,7 +16,7 @@ metadata:
16
16
 
17
17
  # Agent Teams
18
18
 
19
- A TypeScript CLI tool that enables AI agents and humans to interact with Microsoft Teams through a simple command interface. Features seamless token extraction from the Teams desktop app and multi-team support.
19
+ A TypeScript CLI tool that enables AI agents and humans to interact with Microsoft Teams through a simple command interface. Features seamless token extraction from the Teams desktop app (with browser fallback) and multi-team support.
20
20
 
21
21
  ## Quick Start
22
22
 
@@ -33,11 +33,11 @@ agent-teams channel list <team-id>
33
33
 
34
34
  ## Authentication
35
35
 
36
- Credentials are extracted automatically from the Teams desktop app on first use. No manual setup required — just run any command and authentication happens silently in the background.
36
+ Credentials are extracted automatically from the Teams desktop app (or Chromium browser as fallback) on first use. No manual setup required — just run any command and authentication happens silently in the background.
37
37
 
38
38
  Teams tokens expire in 60-90 minutes. The CLI automatically re-extracts a fresh token when the current one expires, so you don't need to manage token lifecycle manually.
39
39
 
40
- **IMPORTANT**: NEVER guide the user to open a web browser, use DevTools, or manually copy tokens from a browser. Always use `agent-teams auth extract` to obtain tokens from the desktop app.
40
+ **IMPORTANT**: Always use `agent-teams auth extract` to obtain tokens. The CLI extracts from the desktop app first, falling back to Chromium browsers if the app isn't installed.
41
41
 
42
42
  ### Multi-Team Support
43
43
 
@@ -145,7 +145,7 @@ If a memorized ID returns an error (channel not found, team not found), remove i
145
145
  ### Auth Commands
146
146
 
147
147
  ```bash
148
- # Extract token from Teams desktop app (usually automatic)
148
+ # Extract token from Teams desktop app or browser (usually automatic)
149
149
  agent-teams auth extract
150
150
  agent-teams auth extract --debug
151
151
 
@@ -400,7 +400,7 @@ See the [Teams SDK documentation](https://agent-messenger.dev/docs/sdk/teams) fo
400
400
  - No webhook support
401
401
  - Plain text messages only (no adaptive cards in v1)
402
402
  - User tokens only (no app tokens)
403
- - **Token expires in 60-90 minutes** - auto-refreshed, but requires Teams desktop app to be logged in
403
+ - **Token expires in 60-90 minutes** - auto-refreshed, but requires Teams desktop app or browser to be logged in
404
404
 
405
405
  ## Troubleshooting
406
406
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- agent-teams uses Microsoft Teams' user token extracted directly from the Teams desktop application. This provides seamless authentication without manual token management.
5
+ agent-teams uses Microsoft Teams' user token extracted from the Teams desktop application, with automatic fallback to Chromium browser profiles (Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium) when the desktop app isn't installed.
6
6
 
7
7
  ## TOKEN EXPIRY WARNING
8
8
 
@@ -56,10 +56,11 @@ This command:
56
56
  1. Detects your operating system (macOS, Linux, Windows)
57
57
  2. Locates the Teams desktop app data directory
58
58
  3. Reads the **Cookies SQLite database** containing session data
59
- 4. Extracts `skypetoken_asm` cookie value
60
- 5. Validates token against Teams API before saving
61
- 6. Discovers ALL joined teams
62
- 7. Stores credentials securely in `~/.config/agent-messenger/teams-credentials.json`
59
+ 4. If the desktop app isn't found, scans Chromium browser profiles for Teams cookies
60
+ 5. Extracts `skypetoken_asm` cookie value
61
+ 6. Validates token against Teams API before saving
62
+ 7. Discovers ALL joined teams
63
+ 8. Stores credentials securely in `~/.config/agent-messenger/teams-credentials.json`
63
64
 
64
65
  ### Platform-Specific Paths
65
66
 
@@ -280,9 +281,8 @@ This shows:
280
281
 
281
282
  **Solution**:
282
283
 
283
- 1. Install Microsoft Teams desktop app
284
- 2. Log in to your account
285
- 3. Run `agent-teams auth extract` again
284
+ 1. Log in to teams.microsoft.com in a Chromium browser (Chrome, Edge, Arc, Brave) — the CLI will extract from browser automatically
285
+ 2. Or install the Microsoft Teams desktop app, log in, and run `agent-teams auth extract` again
286
286
 
287
287
  ### "No Teams token found"
288
288
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: agent-telegram
3
3
  description: Interact with Telegram through TDLib - authenticate, inspect chats, and send messages
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  allowed-tools: Bash(agent-telegram:*)
6
6
  ---
7
7