agent-messenger 2.0.0 → 2.2.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 (272) hide show
  1. package/.claude-plugin/marketplace.json +14 -1
  2. package/.claude-plugin/plugin.json +4 -2
  3. package/.env.template +35 -17
  4. package/README.md +37 -33
  5. package/bun.lock +6 -6
  6. package/dist/package.json +11 -3
  7. package/dist/src/cli.d.ts.map +1 -1
  8. package/dist/src/cli.js +3 -0
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/platforms/channeltalk/commands/auth.d.ts.map +1 -1
  11. package/dist/src/platforms/channeltalk/commands/auth.js +35 -28
  12. package/dist/src/platforms/channeltalk/commands/auth.js.map +1 -1
  13. package/dist/src/platforms/channeltalk/ensure-auth.js +6 -6
  14. package/dist/src/platforms/channeltalk/ensure-auth.js.map +1 -1
  15. package/dist/src/platforms/channeltalk/token-extractor.d.ts +23 -1
  16. package/dist/src/platforms/channeltalk/token-extractor.d.ts.map +1 -1
  17. package/dist/src/platforms/channeltalk/token-extractor.js +299 -29
  18. package/dist/src/platforms/channeltalk/token-extractor.js.map +1 -1
  19. package/dist/src/platforms/discord/commands/auth.d.ts.map +1 -1
  20. package/dist/src/platforms/discord/commands/auth.js +57 -49
  21. package/dist/src/platforms/discord/commands/auth.js.map +1 -1
  22. package/dist/src/platforms/discord/ensure-auth.js +3 -3
  23. package/dist/src/platforms/discord/ensure-auth.js.map +1 -1
  24. package/dist/src/platforms/discord/token-extractor.d.ts +6 -1
  25. package/dist/src/platforms/discord/token-extractor.d.ts.map +1 -1
  26. package/dist/src/platforms/discord/token-extractor.js +167 -14
  27. package/dist/src/platforms/discord/token-extractor.js.map +1 -1
  28. package/dist/src/platforms/instagram/client.d.ts +2 -0
  29. package/dist/src/platforms/instagram/client.d.ts.map +1 -1
  30. package/dist/src/platforms/instagram/client.js +2 -2
  31. package/dist/src/platforms/instagram/client.js.map +1 -1
  32. package/dist/src/platforms/instagram/commands/auth.d.ts.map +1 -1
  33. package/dist/src/platforms/instagram/commands/auth.js +107 -14
  34. package/dist/src/platforms/instagram/commands/auth.js.map +1 -1
  35. package/dist/src/platforms/instagram/ensure-auth.d.ts.map +1 -1
  36. package/dist/src/platforms/instagram/ensure-auth.js +57 -11
  37. package/dist/src/platforms/instagram/ensure-auth.js.map +1 -1
  38. package/dist/src/platforms/instagram/index.d.ts +1 -0
  39. package/dist/src/platforms/instagram/index.d.ts.map +1 -1
  40. package/dist/src/platforms/instagram/index.js +1 -0
  41. package/dist/src/platforms/instagram/index.js.map +1 -1
  42. package/dist/src/platforms/instagram/token-extractor.d.ts +44 -0
  43. package/dist/src/platforms/instagram/token-extractor.d.ts.map +1 -0
  44. package/dist/src/platforms/instagram/token-extractor.js +407 -0
  45. package/dist/src/platforms/instagram/token-extractor.js.map +1 -0
  46. package/dist/src/platforms/kakaotalk/client.d.ts.map +1 -1
  47. package/dist/src/platforms/kakaotalk/client.js +2 -1
  48. package/dist/src/platforms/kakaotalk/client.js.map +1 -1
  49. package/dist/src/platforms/kakaotalk/commands/auth.d.ts.map +1 -1
  50. package/dist/src/platforms/kakaotalk/commands/auth.js +14 -13
  51. package/dist/src/platforms/kakaotalk/commands/auth.js.map +1 -1
  52. package/dist/src/platforms/kakaotalk/protocol/connection.d.ts.map +1 -1
  53. package/dist/src/platforms/kakaotalk/protocol/connection.js +2 -1
  54. package/dist/src/platforms/kakaotalk/protocol/connection.js.map +1 -1
  55. package/dist/src/platforms/line/commands/auth.d.ts.map +1 -1
  56. package/dist/src/platforms/line/commands/auth.js +6 -5
  57. package/dist/src/platforms/line/commands/auth.js.map +1 -1
  58. package/dist/src/platforms/slack/commands/auth.d.ts.map +1 -1
  59. package/dist/src/platforms/slack/commands/auth.js +11 -10
  60. package/dist/src/platforms/slack/commands/auth.js.map +1 -1
  61. package/dist/src/platforms/slack/token-extractor.d.ts +9 -0
  62. package/dist/src/platforms/slack/token-extractor.d.ts.map +1 -1
  63. package/dist/src/platforms/slack/token-extractor.js +300 -23
  64. package/dist/src/platforms/slack/token-extractor.js.map +1 -1
  65. package/dist/src/platforms/teams/commands/auth.d.ts.map +1 -1
  66. package/dist/src/platforms/teams/commands/auth.js +9 -8
  67. package/dist/src/platforms/teams/commands/auth.js.map +1 -1
  68. package/dist/src/platforms/teams/ensure-auth.d.ts.map +1 -1
  69. package/dist/src/platforms/teams/ensure-auth.js +2 -1
  70. package/dist/src/platforms/teams/ensure-auth.js.map +1 -1
  71. package/dist/src/platforms/teams/token-extractor.d.ts +5 -0
  72. package/dist/src/platforms/teams/token-extractor.d.ts.map +1 -1
  73. package/dist/src/platforms/teams/token-extractor.js +161 -29
  74. package/dist/src/platforms/teams/token-extractor.js.map +1 -1
  75. package/dist/src/platforms/telegram/client.d.ts.map +1 -1
  76. package/dist/src/platforms/telegram/client.js +25 -7
  77. package/dist/src/platforms/telegram/client.js.map +1 -1
  78. package/dist/src/platforms/telegram/commands/auth.d.ts.map +1 -1
  79. package/dist/src/platforms/telegram/commands/auth.js +6 -5
  80. package/dist/src/platforms/telegram/commands/auth.js.map +1 -1
  81. package/dist/src/platforms/webex/app-config.d.ts +7 -0
  82. package/dist/src/platforms/webex/app-config.d.ts.map +1 -0
  83. package/dist/src/platforms/webex/app-config.js +20 -0
  84. package/dist/src/platforms/webex/app-config.js.map +1 -0
  85. package/dist/src/platforms/webex/cli.d.ts +5 -0
  86. package/dist/src/platforms/webex/cli.d.ts.map +1 -0
  87. package/dist/src/platforms/webex/cli.js +32 -0
  88. package/dist/src/platforms/webex/cli.js.map +1 -0
  89. package/dist/src/platforms/webex/client.d.ts +55 -0
  90. package/dist/src/platforms/webex/client.d.ts.map +1 -0
  91. package/dist/src/platforms/webex/client.js +299 -0
  92. package/dist/src/platforms/webex/client.js.map +1 -0
  93. package/dist/src/platforms/webex/commands/auth.d.ts +19 -0
  94. package/dist/src/platforms/webex/commands/auth.d.ts.map +1 -0
  95. package/dist/src/platforms/webex/commands/auth.js +166 -0
  96. package/dist/src/platforms/webex/commands/auth.js.map +1 -0
  97. package/dist/src/platforms/webex/commands/index.d.ts +6 -0
  98. package/dist/src/platforms/webex/commands/index.d.ts.map +1 -0
  99. package/dist/src/platforms/webex/commands/index.js +6 -0
  100. package/dist/src/platforms/webex/commands/index.js.map +1 -0
  101. package/dist/src/platforms/webex/commands/member.d.ts +7 -0
  102. package/dist/src/platforms/webex/commands/member.d.ts.map +1 -0
  103. package/dist/src/platforms/webex/commands/member.js +34 -0
  104. package/dist/src/platforms/webex/commands/member.js.map +1 -0
  105. package/dist/src/platforms/webex/commands/message.d.ts +26 -0
  106. package/dist/src/platforms/webex/commands/message.d.ts.map +1 -0
  107. package/dist/src/platforms/webex/commands/message.js +153 -0
  108. package/dist/src/platforms/webex/commands/message.js.map +1 -0
  109. package/dist/src/platforms/webex/commands/snapshot.d.ts +9 -0
  110. package/dist/src/platforms/webex/commands/snapshot.d.ts.map +1 -0
  111. package/dist/src/platforms/webex/commands/snapshot.js +72 -0
  112. package/dist/src/platforms/webex/commands/snapshot.js.map +1 -0
  113. package/dist/src/platforms/webex/commands/space.d.ts +11 -0
  114. package/dist/src/platforms/webex/commands/space.d.ts.map +1 -0
  115. package/dist/src/platforms/webex/commands/space.js +59 -0
  116. package/dist/src/platforms/webex/commands/space.js.map +1 -0
  117. package/dist/src/platforms/webex/credential-manager.d.ts +23 -0
  118. package/dist/src/platforms/webex/credential-manager.d.ts.map +1 -0
  119. package/dist/src/platforms/webex/credential-manager.js +148 -0
  120. package/dist/src/platforms/webex/credential-manager.js.map +1 -0
  121. package/dist/src/platforms/webex/ensure-auth.d.ts +2 -0
  122. package/dist/src/platforms/webex/ensure-auth.d.ts.map +1 -0
  123. package/dist/src/platforms/webex/ensure-auth.js +36 -0
  124. package/dist/src/platforms/webex/ensure-auth.js.map +1 -0
  125. package/dist/src/platforms/webex/index.d.ts +8 -0
  126. package/dist/src/platforms/webex/index.d.ts.map +1 -0
  127. package/dist/src/platforms/webex/index.js +6 -0
  128. package/dist/src/platforms/webex/index.js.map +1 -0
  129. package/dist/src/platforms/webex/token-extractor.d.ts +28 -0
  130. package/dist/src/platforms/webex/token-extractor.d.ts.map +1 -0
  131. package/dist/src/platforms/webex/token-extractor.js +344 -0
  132. package/dist/src/platforms/webex/token-extractor.js.map +1 -0
  133. package/dist/src/platforms/webex/types.d.ts +127 -0
  134. package/dist/src/platforms/webex/types.d.ts.map +1 -0
  135. package/dist/src/platforms/webex/types.js +64 -0
  136. package/dist/src/platforms/webex/types.js.map +1 -0
  137. package/dist/src/platforms/whatsapp/client.d.ts.map +1 -1
  138. package/dist/src/platforms/whatsapp/client.js +6 -2
  139. package/dist/src/platforms/whatsapp/client.js.map +1 -1
  140. package/dist/src/shared/utils/derived-key-cache.d.ts +1 -1
  141. package/dist/src/shared/utils/derived-key-cache.d.ts.map +1 -1
  142. package/dist/src/shared/utils/error-handler.d.ts +1 -1
  143. package/dist/src/shared/utils/error-handler.d.ts.map +1 -1
  144. package/dist/src/shared/utils/error-handler.js +3 -2
  145. package/dist/src/shared/utils/error-handler.js.map +1 -1
  146. package/dist/src/shared/utils/stderr.d.ts +5 -0
  147. package/dist/src/shared/utils/stderr.d.ts.map +1 -0
  148. package/dist/src/shared/utils/stderr.js +18 -0
  149. package/dist/src/shared/utils/stderr.js.map +1 -0
  150. package/dist/src/tui/adapters/webex-adapter.d.ts +14 -0
  151. package/dist/src/tui/adapters/webex-adapter.d.ts.map +1 -0
  152. package/dist/src/tui/adapters/webex-adapter.js +79 -0
  153. package/dist/src/tui/adapters/webex-adapter.js.map +1 -0
  154. package/dist/src/tui/app.d.ts.map +1 -1
  155. package/dist/src/tui/app.js +2 -0
  156. package/dist/src/tui/app.js.map +1 -1
  157. package/docs/content/docs/cli/channeltalk.mdx +7 -7
  158. package/docs/content/docs/cli/discord.mdx +3 -3
  159. package/docs/content/docs/cli/instagram.mdx +28 -6
  160. package/docs/content/docs/cli/meta.json +1 -0
  161. package/docs/content/docs/cli/slack.mdx +2 -2
  162. package/docs/content/docs/cli/teams.mdx +6 -4
  163. package/docs/content/docs/cli/webex.mdx +310 -0
  164. package/docs/content/docs/sdk/meta.json +1 -1
  165. package/docs/content/docs/sdk/webex.mdx +260 -0
  166. package/docs/content/docs/tui.mdx +4 -3
  167. package/docs/src/app/page.tsx +2 -2
  168. package/e2e/README.md +132 -8
  169. package/e2e/channeltalk.e2e.test.ts +2 -7
  170. package/e2e/channeltalkbot.e2e.test.ts +2 -6
  171. package/e2e/config.ts +172 -10
  172. package/e2e/helpers.ts +7 -0
  173. package/e2e/instagram.e2e.test.ts +97 -0
  174. package/e2e/kakaotalk.e2e.test.ts +74 -0
  175. package/e2e/line.e2e.test.ts +92 -0
  176. package/e2e/teams.e2e.test.ts +46 -1
  177. package/e2e/telegram.e2e.test.ts +84 -0
  178. package/e2e/webex.e2e.test.ts +190 -0
  179. package/e2e/whatsapp.e2e.test.ts +90 -0
  180. package/e2e/whatsappbot.e2e.test.ts +78 -0
  181. package/package.json +11 -3
  182. package/skills/agent-channeltalk/SKILL.md +9 -9
  183. package/skills/agent-channeltalk/references/authentication.md +21 -18
  184. package/skills/agent-channeltalkbot/SKILL.md +1 -1
  185. package/skills/agent-discord/SKILL.md +5 -5
  186. package/skills/agent-discord/references/authentication.md +8 -8
  187. package/skills/agent-discordbot/SKILL.md +1 -1
  188. package/skills/agent-instagram/SKILL.md +51 -9
  189. package/skills/agent-instagram/references/authentication.md +35 -3
  190. package/skills/agent-kakaotalk/SKILL.md +1 -1
  191. package/skills/agent-line/SKILL.md +1 -1
  192. package/skills/agent-slack/SKILL.md +5 -5
  193. package/skills/agent-slack/references/authentication.md +8 -8
  194. package/skills/agent-slackbot/SKILL.md +1 -1
  195. package/skills/agent-teams/SKILL.md +6 -6
  196. package/skills/agent-teams/references/authentication.md +8 -8
  197. package/skills/agent-telegram/SKILL.md +1 -1
  198. package/skills/agent-webex/SKILL.md +406 -0
  199. package/skills/agent-webex/references/authentication.md +371 -0
  200. package/skills/agent-webex/references/common-patterns.md +726 -0
  201. package/skills/agent-webex/templates/monitor-space.sh +165 -0
  202. package/skills/agent-webex/templates/post-message.sh +170 -0
  203. package/skills/agent-whatsapp/SKILL.md +1 -1
  204. package/skills/agent-whatsappbot/SKILL.md +1 -1
  205. package/src/cli.ts +4 -0
  206. package/src/platforms/channeltalk/commands/auth.test.ts +5 -5
  207. package/src/platforms/channeltalk/commands/auth.ts +38 -32
  208. package/src/platforms/channeltalk/ensure-auth.test.ts +6 -6
  209. package/src/platforms/channeltalk/ensure-auth.ts +6 -6
  210. package/src/platforms/channeltalk/token-extractor.test.ts +182 -15
  211. package/src/platforms/channeltalk/token-extractor.ts +344 -30
  212. package/src/platforms/discord/commands/auth.test.ts +3 -3
  213. package/src/platforms/discord/commands/auth.ts +58 -54
  214. package/src/platforms/discord/ensure-auth.test.ts +3 -3
  215. package/src/platforms/discord/ensure-auth.ts +3 -3
  216. package/src/platforms/discord/token-extractor.test.ts +199 -27
  217. package/src/platforms/discord/token-extractor.ts +190 -17
  218. package/src/platforms/instagram/client.ts +2 -2
  219. package/src/platforms/instagram/commands/auth.ts +133 -14
  220. package/src/platforms/instagram/ensure-auth.ts +63 -12
  221. package/src/platforms/instagram/index.ts +1 -0
  222. package/src/platforms/instagram/token-extractor.test.ts +424 -0
  223. package/src/platforms/instagram/token-extractor.ts +478 -0
  224. package/src/platforms/kakaotalk/client.ts +3 -1
  225. package/src/platforms/kakaotalk/commands/auth.ts +14 -13
  226. package/src/platforms/kakaotalk/protocol/connection.ts +3 -1
  227. package/src/platforms/line/commands/auth.ts +7 -6
  228. package/src/platforms/slack/cli.test.ts +6 -5
  229. package/src/platforms/slack/commands/auth.test.ts +11 -7
  230. package/src/platforms/slack/commands/auth.ts +11 -10
  231. package/src/platforms/slack/token-extractor.test.ts +98 -1
  232. package/src/platforms/slack/token-extractor.ts +338 -26
  233. package/src/platforms/teams/commands/auth.ts +9 -8
  234. package/src/platforms/teams/ensure-auth.ts +3 -1
  235. package/src/platforms/teams/token-extractor.test.ts +136 -17
  236. package/src/platforms/teams/token-extractor.ts +182 -31
  237. package/src/platforms/telegram/client.test.ts +134 -0
  238. package/src/platforms/telegram/client.ts +27 -6
  239. package/src/platforms/telegram/commands/auth.ts +6 -5
  240. package/src/platforms/webex/app-config.test.ts +98 -0
  241. package/src/platforms/webex/app-config.ts +31 -0
  242. package/src/platforms/webex/cli.test.ts +58 -0
  243. package/src/platforms/webex/cli.ts +39 -0
  244. package/src/platforms/webex/client.test.ts +743 -0
  245. package/src/platforms/webex/client.ts +405 -0
  246. package/src/platforms/webex/commands/auth.test.ts +222 -0
  247. package/src/platforms/webex/commands/auth.ts +243 -0
  248. package/src/platforms/webex/commands/index.ts +5 -0
  249. package/src/platforms/webex/commands/member.test.ts +112 -0
  250. package/src/platforms/webex/commands/member.ts +45 -0
  251. package/src/platforms/webex/commands/message.test.ts +235 -0
  252. package/src/platforms/webex/commands/message.ts +204 -0
  253. package/src/platforms/webex/commands/snapshot.test.ts +105 -0
  254. package/src/platforms/webex/commands/snapshot.ts +91 -0
  255. package/src/platforms/webex/commands/space.test.ts +216 -0
  256. package/src/platforms/webex/commands/space.ts +74 -0
  257. package/src/platforms/webex/credential-manager.test.ts +314 -0
  258. package/src/platforms/webex/credential-manager.ts +197 -0
  259. package/src/platforms/webex/ensure-auth.test.ts +89 -0
  260. package/src/platforms/webex/ensure-auth.ts +38 -0
  261. package/src/platforms/webex/index.test.ts +25 -0
  262. package/src/platforms/webex/index.ts +19 -0
  263. package/src/platforms/webex/token-extractor.test.ts +327 -0
  264. package/src/platforms/webex/token-extractor.ts +393 -0
  265. package/src/platforms/webex/types.test.ts +307 -0
  266. package/src/platforms/webex/types.ts +129 -0
  267. package/src/platforms/whatsapp/client.ts +11 -7
  268. package/src/shared/utils/derived-key-cache.ts +1 -1
  269. package/src/shared/utils/error-handler.ts +4 -2
  270. package/src/shared/utils/stderr.ts +22 -0
  271. package/src/tui/adapters/webex-adapter.ts +103 -0
  272. package/src/tui/app.ts +2 -0
@@ -3,14 +3,14 @@ title: Channel Talk
3
3
  description: Complete reference for the agent-channeltalk CLI.
4
4
  ---
5
5
 
6
- > **Beta**: Channel Talk support is in beta. Some features may change. macOS and Windows only.
6
+ > **Beta**: Channel Talk support is in beta. Some features may change.
7
7
 
8
8
  > **Tip**: `agent-channeltalk` is a shortcut for `agent-messenger channeltalk`.
9
9
 
10
10
  ## Quick Start
11
11
 
12
12
  ```bash
13
- # 1. Credentials are extracted automatically from Channel Talk desktop app
13
+ # 1. Credentials are extracted automatically from Channel Talk desktop app or browser
14
14
  agent-channeltalk snapshot --pretty
15
15
 
16
16
  # 2. Send a message to a group
@@ -37,7 +37,7 @@ Channel Talk has different terminology from Slack or Discord:
37
37
 
38
38
  ### Zero-Config Credential Extraction
39
39
 
40
- agent-channeltalk automatically extracts cookies from the Channel Talk desktop app. No manual setup required, no API keys needed.
40
+ agent-channeltalk automatically extracts cookies from the Channel Talk desktop app (or Chromium browser as fallback). No manual setup required, no API keys needed.
41
41
 
42
42
  ```bash
43
43
  # Usually automatic — just run any command
@@ -47,7 +47,7 @@ agent-channeltalk snapshot
47
47
  agent-channeltalk auth extract
48
48
  ```
49
49
 
50
- The CLI reads two cookies from the desktop app's SQLite database:
50
+ The CLI reads two cookies from the desktop app's SQLite database (or Chromium browser cookies as fallback):
51
51
 
52
52
  - `x-account` (JWT) — your account identity
53
53
  - `ch-session-1` (JWT) — your session token
@@ -75,7 +75,7 @@ agent-channeltalk auth remove <workspace-id>
75
75
  ### Authentication Commands
76
76
 
77
77
  ```bash
78
- # Extract cookies from desktop app (usually automatic)
78
+ # Extract cookies from desktop app or browser (usually automatic)
79
79
  agent-channeltalk auth extract
80
80
 
81
81
  # Check auth status
@@ -222,7 +222,7 @@ The CLI looks for the Channel Talk desktop app's cookie database in:
222
222
  **Windows:**
223
223
  1. `%APPDATA%\Channel Talk\Network\Cookies`
224
224
 
225
- If none exist, install the Channel Talk desktop app and log in.
225
+ If none exist, either install the Channel Talk desktop app and log in, or log in via a Chromium browser (Chrome, Edge, Arc, Brave, etc.) — the CLI will fall back to browser extraction automatically.
226
226
 
227
227
  ### Cookies expired
228
228
 
@@ -246,7 +246,7 @@ npx -y agent-messenger channeltalk snapshot --pretty
246
246
 
247
247
  ## Limitations
248
248
 
249
- - macOS and Windows only (Channel Talk desktop app required)
249
+ - Desktop app extraction: macOS and Windows only; browser fallback also supports Linux
250
250
  - No real-time events / WebSocket connection
251
251
  - No file upload support
252
252
  - No message editing or deletion
@@ -8,7 +8,7 @@ description: Complete reference for the agent-discord CLI.
8
8
  ## Quick Start
9
9
 
10
10
  ```bash
11
- # 1. Extract credentials from Discord desktop app (zero-config!)
11
+ # 1. Extract credentials from Discord desktop app or browser (zero-config!)
12
12
  agent-discord auth extract
13
13
 
14
14
  # 2. Get server snapshot
@@ -22,7 +22,7 @@ agent-discord message send <channel-id> "Hello from AI agent!"
22
22
 
23
23
  ### Seamless Token Extraction
24
24
 
25
- agent-discord automatically extracts your Discord credentials from the desktop app:
25
+ agent-discord automatically extracts your Discord credentials from the desktop app or Chromium browser:
26
26
 
27
27
  ```bash
28
28
  agent-discord auth extract
@@ -34,7 +34,7 @@ agent-discord auth extract --debug
34
34
  This command:
35
35
 
36
36
  - Auto-detects your platform (macOS/Linux/Windows)
37
- - Extracts Discord user token from the desktop app
37
+ - Extracts Discord user token from the desktop app (with browser fallback)
38
38
  - Validates token against Discord API
39
39
  - Discovers ALL joined servers
40
40
  - Stores credentials securely in `~/.config/agent-messenger/`
@@ -9,26 +9,45 @@ description: Complete reference for the agent-instagram CLI.
9
9
 
10
10
  Instagram integration uses a private mobile API (not the official Graph API). No new npm dependencies are required:
11
11
 
12
- - Authenticates with **username and password**, with support for 2FA and login challenges.
12
+ - **Browser cookie extraction** (recommended): Extracts session cookies from Chromium browsers (Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium). Zero-config.
13
+ - **Username/password auth** (fallback): Authenticates with credentials, with support for 2FA and login challenges.
13
14
  - Each command makes HTTP requests on demand. No persistent connection or background process.
14
15
  - Multiple Instagram accounts can be linked simultaneously.
15
16
 
16
17
  ## Quick Start
17
18
 
18
19
  ```bash
19
- # Log in with your Instagram credentials
20
- agent-instagram auth login
20
+ # 1. Extract cookies from browser (recommended — zero-config)
21
+ agent-instagram auth extract
21
22
 
22
- # List DM threads
23
+ # 2. List DM threads
23
24
  agent-instagram chat list
24
25
 
25
- # Send a message
26
+ # 3. Send a message
26
27
  agent-instagram message send 12345678901 "Hello from agent-instagram"
27
28
  ```
28
29
 
29
30
  ## Authentication
30
31
 
31
- ### Username/Password Login
32
+ ### Browser Cookie Extraction (Recommended)
33
+
34
+ Extracts your Instagram session cookies from a Chromium browser where you're logged into instagram.com. Zero-config, no password needed.
35
+
36
+ ```bash
37
+ agent-instagram auth extract
38
+ ```
39
+
40
+ This command:
41
+
42
+ - Scans Chromium browser profiles for Instagram cookies (SQLite cookie database)
43
+ - Extracts `sessionid`, `csrftoken`, `ds_user_id`, and other session cookies
44
+ - Decrypts encrypted cookies using the browser's encryption key
45
+ - Validates the session against the Instagram API
46
+ - Stores credentials in `~/.config/agent-messenger/`
47
+ - Supported browsers: Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium
48
+ - Auto-extraction runs when no valid session is stored, so manual extraction is rarely needed
49
+
50
+ ### Username/Password Login (Fallback)
32
51
 
33
52
  The CLI authenticates as a mobile client using your Instagram username and password. Your existing app sessions are never affected.
34
53
 
@@ -74,6 +93,9 @@ agent-instagram auth login --username your_username --password your_password --d
74
93
  ### Account Management
75
94
 
76
95
  ```bash
96
+ # Extract cookies from browser (recommended)
97
+ agent-instagram auth extract
98
+
77
99
  # Check current auth state
78
100
  agent-instagram auth status
79
101
  agent-instagram auth status --account <id>
@@ -6,6 +6,7 @@
6
6
  "discord",
7
7
  "discordbot",
8
8
  "teams",
9
+ "webex",
9
10
  "telegram",
10
11
  "whatsapp",
11
12
  "whatsappbot",
@@ -8,7 +8,7 @@ description: Complete reference for the agent-slack CLI.
8
8
  ## Quick Start
9
9
 
10
10
  ```bash
11
- # 1. Extract credentials from Slack desktop app (zero-config!)
11
+ # 1. Extract credentials from Slack desktop app or browser (zero-config!)
12
12
  agent-slack auth extract
13
13
 
14
14
  # 2. Get workspace snapshot
@@ -22,7 +22,7 @@ agent-slack message send general "Hello from AI agent!"
22
22
 
23
23
  ### Seamless Token Extraction
24
24
 
25
- agent-slack automatically extracts your Slack credentials from the desktop app:
25
+ agent-slack automatically extracts your Slack credentials from the desktop app or Chromium browser:
26
26
 
27
27
  ```bash
28
28
  agent-slack auth extract
@@ -8,7 +8,7 @@ description: Complete reference for the agent-teams CLI.
8
8
  ## Quick Start
9
9
 
10
10
  ```bash
11
- # 1. Extract credentials from Teams desktop app (zero-config!)
11
+ # 1. Extract credentials from Teams desktop app or browser (zero-config!)
12
12
  agent-teams auth extract
13
13
 
14
14
  # 2. Get team snapshot
@@ -22,7 +22,7 @@ agent-teams message send <channel-id> "Hello from AI agent!"
22
22
 
23
23
  ### Seamless Token Extraction
24
24
 
25
- agent-teams automatically extracts your Microsoft Teams credentials from the desktop app:
25
+ agent-teams automatically extracts your Microsoft Teams credentials from the desktop app or Chromium browser:
26
26
 
27
27
  ```bash
28
28
  agent-teams auth extract
@@ -34,7 +34,7 @@ agent-teams auth extract --debug
34
34
  This command:
35
35
 
36
36
  - Auto-detects your platform (macOS/Linux/Windows)
37
- - Extracts Teams access token from the desktop app
37
+ - Extracts Teams access token from the desktop app (with browser fallback)
38
38
  - Validates token against Teams API
39
39
  - Discovers ALL joined teams
40
40
  - Stores credentials securely in `~/.config/agent-messenger/`
@@ -241,7 +241,7 @@ All commands support these options:
241
241
 
242
242
  ```bash
243
243
  # Teams tokens expire in 60-90 minutes! To refresh:
244
- # 1. Open Microsoft Teams desktop app
244
+ # 1. Open Microsoft Teams desktop app (or log in via browser)
245
245
  # 2. Send any message (this refreshes your session cookies)
246
246
  # 3. Re-extract:
247
247
  agent-teams auth extract
@@ -281,6 +281,8 @@ Ensure Teams desktop app is:
281
281
  2. Currently running
282
282
  3. Signed in to your account
283
283
 
284
+ Alternatively, log in via a Chromium browser (Chrome, Edge, Arc, Brave, etc.) — the CLI will fall back to browser extraction automatically.
285
+
284
286
  ```bash
285
287
  # Debug extraction
286
288
  agent-teams auth extract --debug
@@ -0,0 +1,310 @@
1
+ ---
2
+ title: Webex
3
+ description: Complete reference for the agent-webex CLI.
4
+ ---
5
+
6
+ > **Tip**: `agent-webex` is a shortcut for `agent-messenger webex`.
7
+
8
+ ## Quick Start
9
+
10
+ ```bash
11
+ # 1. Extract token from browser (recommended — messages appear as you)
12
+ agent-webex auth extract
13
+
14
+ # 2. Get workspace snapshot
15
+ agent-webex snapshot
16
+
17
+ # 3. Send a message
18
+ agent-webex message send <space-id> "Hello from AI agent!"
19
+ ```
20
+
21
+ ## Authentication
22
+
23
+ ### Browser Token Extraction (Recommended)
24
+
25
+ Extracts your first-party Webex session token from a Chromium browser where you're logged into web.webex.com. Messages appear as you — no "via agent-messenger" label. Zero-config.
26
+
27
+ ```bash
28
+ agent-webex auth extract
29
+ ```
30
+
31
+ This command:
32
+
33
+ - Scans Chromium browser profiles for Webex localStorage data (LevelDB)
34
+ - Extracts the first-party supertoken and device URL
35
+ - Validates the token against the Webex API
36
+ - Stores credentials in `~/.config/agent-messenger/`
37
+ - Supported browsers: Chrome, Chrome Canary, Edge, Arc, Brave, Vivaldi, Chromium
38
+ - Auto-extraction runs when no valid token is stored, so manual extraction is rarely needed
39
+
40
+ ### OAuth Device Grant (Fallback)
41
+
42
+ Uses OAuth Device Grant flow with built-in Integration credentials. No tokens to copy, no developer portal setup needed. Messages show "via agent-messenger".
43
+
44
+ ```bash
45
+ agent-webex auth login
46
+ ```
47
+
48
+ This command:
49
+
50
+ - Requests a device code from Webex
51
+ - Opens your browser to the Webex verification page
52
+ - Displays a user code for you to enter
53
+ - Polls automatically until you approve
54
+ - Stores access and refresh tokens securely in `~/.config/agent-messenger/`
55
+ - Auto-refreshes expired access tokens (14-day access, 90-day refresh)
56
+
57
+ ### How Login Works
58
+
59
+ 1. Run `agent-webex auth extract` (recommended) or `agent-webex auth login` (fallback)
60
+ 2. For extraction: CLI reads your browser's Webex session — no prompts needed
61
+ 3. For Device Grant: Browser opens, enter the displayed code, CLI stores tokens
62
+ 4. Access tokens are refreshed automatically
63
+
64
+ ### Token Types
65
+
66
+ | Type | Lifetime | Best For |
67
+ | --- | --- | --- |
68
+ | Browser Extraction (recommended) | Session-based (re-extract when expired) | Interactive use, sending as yourself |
69
+ | OAuth Device Grant | 14-day access, 90-day refresh (auto-refresh) | Fallback when no browser session |
70
+ | Bot Token | Never expires | CI/CD, long-running automation |
71
+ | Personal Access Token (PAT) | 12 hours | Quick testing |
72
+
73
+ ### Authentication Commands
74
+
75
+ ```bash
76
+ # Extract token from browser (recommended)
77
+ agent-webex auth extract
78
+
79
+ # Log in (Device Grant flow, opens browser)
80
+ agent-webex auth login
81
+
82
+ # Log in with custom Integration credentials
83
+ agent-webex auth login --client-id <id> --client-secret <secret>
84
+
85
+ # Log in with a bot token (never expires)
86
+ agent-webex auth login --token <bot-token>
87
+
88
+ # Log in with a PAT (12-hour lifetime)
89
+ agent-webex auth login --token <pat>
90
+
91
+ # Check auth status
92
+ agent-webex auth status
93
+
94
+ # Log out (clear stored credentials)
95
+ agent-webex auth logout
96
+ ```
97
+
98
+ ### Environment Variables
99
+
100
+ Override the built-in Integration credentials with your own:
101
+
102
+ | Variable | Description |
103
+ | --- | --- |
104
+ | `AGENT_WEBEX_CLIENT_ID` | Webex Integration client ID |
105
+ | `AGENT_WEBEX_CLIENT_SECRET` | Webex Integration client secret |
106
+
107
+ Both must be set together. When set, `auth login` (without `--token`) uses these instead of the built-in credentials.
108
+
109
+ ## Commands
110
+
111
+ ### Space Commands
112
+
113
+ Webex organizes conversations into "spaces" (group spaces and direct messages).
114
+
115
+ ```bash
116
+ # List spaces
117
+ agent-webex space list
118
+ agent-webex space list --type group
119
+ agent-webex space list --type direct
120
+ agent-webex space list --limit 20
121
+
122
+ # Get space info
123
+ agent-webex space info <space-id>
124
+ ```
125
+
126
+ ### Message Commands
127
+
128
+ ```bash
129
+ # Send a message
130
+ agent-webex message send <space-id> <text>
131
+ agent-webex message send abc123 "Hello world"
132
+
133
+ # Send a markdown message
134
+ agent-webex message send <space-id> "**Bold** and _italic_" --markdown
135
+
136
+ # Send a direct message by email
137
+ agent-webex message dm <email> <text>
138
+ agent-webex message dm alice@example.com "Hey, quick question"
139
+ agent-webex message dm alice@example.com "**Build failed**" --markdown
140
+
141
+ # List messages in a space
142
+ agent-webex message list <space-id>
143
+ agent-webex message list abc123 --limit 50
144
+
145
+ # Get a specific message
146
+ agent-webex message get <message-id>
147
+
148
+ # Edit a message
149
+ agent-webex message edit <message-id> <space-id> <text>
150
+ agent-webex message edit msg123 abc123 "Updated text" --markdown
151
+
152
+ # Delete a message
153
+ agent-webex message delete <message-id>
154
+ agent-webex message delete <message-id> --force
155
+ ```
156
+
157
+ ### Member Commands
158
+
159
+ ```bash
160
+ # List members of a space
161
+ agent-webex member list <space-id>
162
+ agent-webex member list abc123 --limit 100
163
+ ```
164
+
165
+ ### Snapshot Command
166
+
167
+ Get comprehensive workspace state for AI agents:
168
+
169
+ ```bash
170
+ # Full snapshot (spaces, members, recent messages)
171
+ agent-webex snapshot
172
+
173
+ # Filtered snapshots
174
+ agent-webex snapshot --spaces-only
175
+ agent-webex snapshot --members-only
176
+
177
+ # Limit messages per space
178
+ agent-webex snapshot --limit 10
179
+ ```
180
+
181
+ > **Note**: `--members-only` fetches members from the first 10 spaces only (to avoid excessive API calls). Use `member list <space-id>` for specific spaces.
182
+
183
+ ## Global Options
184
+
185
+ All commands support these options:
186
+
187
+ ```bash
188
+ --pretty # Pretty-print JSON output (default is compact JSON)
189
+ ```
190
+
191
+ ## Key Differences: Webex vs Slack vs Discord vs Teams
192
+
193
+ | Concept | Slack | Discord | Teams | Webex |
194
+ | --- | --- | --- | --- | --- |
195
+ | Server/Workspace | Workspace | Guild | Team | Organization |
196
+ | Channel | Channel | Channel | Channel | Space |
197
+ | Channel ID format | Alphanumeric (C01234567) | Numeric snowflake | UUID | Base64-encoded opaque ID |
198
+ | Message ID format | Timestamp (1234567890.123456) | Numeric snowflake | UUID | Base64-encoded opaque ID |
199
+ | Token lifetime | Long-lived | Long-lived | 60-90 minutes | 14 days (auto-refresh) |
200
+ | API | Slack Web API | Discord API | Teams Messaging API | Webex REST API |
201
+ | Auth method | Desktop app extraction | Desktop app extraction | Desktop app extraction | OAuth Device Grant |
202
+ | Rate limits | Moderate | Moderate | Strict | ~600 req/min |
203
+
204
+ ## Troubleshooting
205
+
206
+ ### "Not authenticated"
207
+
208
+ No credentials stored. Log in first:
209
+
210
+ ```bash
211
+ agent-webex auth login
212
+ ```
213
+
214
+ ### Token Expired (401 Unauthorized)
215
+
216
+ **If using Device Grant (default)**: Tokens auto-refresh. If you still get 401s, the refresh token may have expired (after 90 days). Re-run:
217
+
218
+ ```bash
219
+ agent-webex auth login
220
+ ```
221
+
222
+ **If using a PAT**: Generate a new one at https://developer.webex.com/docs/getting-started
223
+
224
+ **If using a bot token**: Bot tokens don't expire. Double-check the full token was copied correctly.
225
+
226
+ ### "Device authorization timed out"
227
+
228
+ You didn't approve the request in the browser before the code expired. Run `auth login` again:
229
+
230
+ ```bash
231
+ agent-webex auth login
232
+ ```
233
+
234
+ ### "Device authorization failed"
235
+
236
+ Possible causes:
237
+
238
+ - Network connectivity issues
239
+ - Custom client ID is invalid or revoked
240
+ - Webex API is temporarily unavailable
241
+
242
+ ### Rate Limiting (429 Too Many Requests)
243
+
244
+ Webex allows roughly 600 API calls per minute. Wait a few seconds and retry:
245
+
246
+ ```bash
247
+ # Add delays between operations in scripts
248
+ sleep 1
249
+ ```
250
+
251
+ ### Space or Message Not Found
252
+
253
+ Webex uses opaque Base64-encoded IDs. You can't guess them. Always get IDs from `space list` or `snapshot` first:
254
+
255
+ ```bash
256
+ agent-webex space list --pretty
257
+ ```
258
+
259
+ ### `agent-webex: command not found`
260
+
261
+ The npm package is `agent-messenger`, not `agent-webex`:
262
+
263
+ ```bash
264
+ npm install -g agent-messenger
265
+ ```
266
+
267
+ ## AI Agent Integration
268
+
269
+ See [`skills/agent-webex/`](https://github.com/devxoul/agent-messenger/tree/main/skills/agent-webex) for:
270
+
271
+ - Complete skill documentation
272
+ - Common patterns and runnable templates
273
+
274
+ ### Example: AI Agent Workflow
275
+
276
+ ```bash
277
+ #!/bin/bash
278
+ # Example: Daily standup automation
279
+
280
+ # 1. Check auth
281
+ if ! agent-webex auth status | jq -e '.authenticated' > /dev/null 2>&1; then
282
+ echo "Not authenticated. Run 'agent-webex auth login' first."
283
+ exit 1
284
+ fi
285
+
286
+ # 2. Get workspace context
287
+ agent-webex snapshot --limit 5 > /tmp/webex-context.json
288
+
289
+ # 3. Send standup reminder
290
+ agent-webex message send $STANDUP_SPACE "Good morning! Time for standup."
291
+ ```
292
+
293
+ ### Send and Track Pattern
294
+
295
+ ```bash
296
+ #!/bin/bash
297
+ # Send a message, then update it later
298
+
299
+ SPACE_ID="Y2lzY29zcGFyazovL..."
300
+
301
+ # Send initial status
302
+ RESULT=$(agent-webex message send "$SPACE_ID" "Deploying v2.1.0...")
303
+ MSG_ID=$(echo "$RESULT" | jq -r '.id')
304
+
305
+ # ... do work ...
306
+ sleep 5
307
+
308
+ # Update the message with final status
309
+ agent-webex message edit "$MSG_ID" "$SPACE_ID" "Deployed v2.1.0 successfully!"
310
+ ```
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "title": "TypeScript SDK",
3
- "pages": ["slack", "discord", "teams", "whatsapp", "whatsappbot", "line", "instagram", "kakaotalk", "channeltalk", "channeltalkbot"]
3
+ "pages": ["slack", "discord", "teams", "webex", "whatsapp", "whatsappbot", "line", "instagram", "kakaotalk", "channeltalk", "channeltalkbot"]
4
4
  }