Your agent messages as you — not as a bot One CLI for Slack, Discord, Teams, Webex, Telegram, WhatsApp, LINE, WeChat, iMessage, Instagram, KakaoTalk, and Channel Talk.
> /plugin marketplace add agent-messenger/agent-messenger
Repo: agent-messenger/agent-messenger
What's inside
Your agent messages as you — not as a bot
One CLI for Slack, Discord, Teams, Webex, Telegram, WhatsApp, LINE, WeChat, iMessage, Instagram, KakaoTalk, and Channel Talk. Credentials extracted from desktop apps and browsers, or authenticated in seconds — no API keys, no OAuth, no admin approval. TypeScript SDK included.
[!TIP] 🎉 Agent Messenger powers multi-channel messaging in TypeClaw, a TypeScript-native agent runtime.
You shouldn't need a bot token to send a message.
Every platform gates API access behind OAuth apps that need admin approval — days of waiting just to send a message. And even then, your agent is a bot, not you. Different name, different permissions, different context.
Agent Messenger reads session tokens from your Slack, Discord, Teams, KakaoTalk, or Channel Talk desktop app — zero config. If the desktop app isn't installed, it falls back to extracting from Chromium browsers, with auth extract --browser-profile <path> for custom Chromium profile locations. Webex and Instagram tokens are extracted directly from browsers. Telegram authenticates with a one-time phone code, and WhatsApp with a QR code or pairing code. Either way, your agent operates as you — same name, same permissions, same context. Bot tokens are fully supported too for server-side and CI/CD use cases.
[!TIP] For Slack and Discord, QR code sign-in (
auth qr) is the recommended way to authenticate — it's the safest and most reliable method. It signs you in through the platform's own login flow instead of reading credentials off disk, and works even without the desktop app. See the Slack and Discord auth guides.
--browser-profile. Webex and Instagram tokens extracted from Chromium browsers. Telegram and WhatsApp authenticate with a one-time code — still under a minute--pretty for human-readable. Structured output your agent can parse and act onCLI (global install for terminal / AI agent use):
npm install -g agent-messenger
SDK (project dependency for programmatic use):
npm install agent-messenger
The global install gives you all platform CLIs. The project install gives you both CLIs and the TypeScript SDK.
This installs:
agent-slack — Slack CLI (user token, zero-config, or QR code sign-in)agent-slackbot — Slack Bot CLI (bot token, for server-side/CI/CD)agent-discord — Discord CLI (token extraction, or QR code sign-in via the mobile app)agent-discordbot — Discord Bot CLI (bot token, for server-side/CI/CD)agent-teams — Microsoft Teams CLIagent-webex — Cisco Webex CLI (browser token extraction with e2e encryption + OAuth Device Grant, zero-config)agent-webexbot — Webex Bot CLI (bot token, for server-side/CI/CD with real-time Mercury WebSocket listener)agent-telegram — Telegram CLI (user account via TDLib)agent-telegrambot — Telegram Bot CLI (bot token, for server-side/CI/CD)agent-whatsapp — WhatsApp CLI (user account via Baileys, QR code or pairing code auth)agent-whatsappbot — WhatsApp Bot CLI (Cloud API, for server-side/CI/CD)agent-line — LINE CLI (QR code login, Thrift protocol)agent-wechatbot — WeChat Bot CLI (Official Account API, for server-side/CI/CD)agent-imessage — iMessage CLI (runs on a Mac via the imsg tool)agent-instagram — Instagram DM CLI (browser cookie extraction + username/password auth)agent-kakaotalk — KakaoTalk CLI (sub-device login, LOCO protocol)agent-channeltalk — Channel Talk CLI (beta, zero-config, extracted cookies)agent-channeltalkbot — Channel Talk Bot CLI (beta, API credentials, for server-side/CI/CD)Agent Messenger includes Agent Skills that teach your AI agent how to use each CLI above. One skill per CLI — install only what you need.
SkillPad is a GUI app for Agent Skills. See skillpad.dev for more details.
Skills CLI is a CLI tool for Agent Skills. See skills.sh for more details.
npx -y skills add agent-messenger/agent-messenger
claude plugin marketplace add agent-messenger/agent-messenger
claude plugin install agent-messenger
Or within Claude Code:
/plugin marketplace add agent-messenger/agent-messenger
/plugin install agent-messenger
Get up and running in 30 seconds:
# 1. See your workspace at a glance
agent-slack snapshot --pretty
# 2. Send a message
agent-slack message send general "Hello from the CLI!"
That's it. Credentials are extracted automatically from your Slack desktop app on first run. No OAuth flows. No API tokens. No configuration files.
No desktop app? QR code sign-in is the recommended way to authenticate Slack and Discord. In Slack, open "Sign in on mobile", copy the QR image, and pipe it in; in Discord, scan the printed QR with the mobile app:
pbpaste | agent-slack auth qr # paste Slack's "Sign in on mobile" QR agent-discord auth qr # scan the printed QR with the Discord app
By default, Agent Messenger stores credentials, sync state, and derived-key caches under ~/.config/agent-messenger. To relocate everything (e.g. for CI sandboxes, multi-tenant setups, or non-default home directories), set the AGENT_MESSENGER_CONFIG_DIR environment variable:
export AGENT_MESSENGER_CONFIG_DIR="$HOME/.local/share/agent-messenger"
agent-slack auth extract
The variable is read on every CLI/SDK invocation and applies to all platforms (Slack, Discord, Teams, Webex, Telegram, WhatsApp, LINE, WeChat, iMessage, Instagram, KakaoTalk, Channel Talk, and their bot variants). Explicit configDir arguments to credential managers still take precedence.
Get up and running with Telegram in a minute:
bunx --package agent-messenger agent-telegram auth login
# Send a message
bunx --package agent-messenger agent-telegram message send <chat-id-or-@username> "Hello from the CLI!"
The CLI automatically provisions API credentials via my.telegram.org if needed. For CI/CD, set AGENT_TELEGRAM_API_ID and AGENT_TELEGRAM_API_HASH environment variables.
Use Agent Messenger as a TypeScript library. Each platform exports a typed client, credential manager, types, and Zod schemas.
import { SlackClient } from 'agent-messenger/slack'
const slack = await new SlackClient().login()
const channels = await slack.listChannels()
await slack.sendMessage(channels[0].id, 'Hello from the SDK!')
Credentials are resolved the same way as the CLI — auto-extracted from your desktop apps. Call .login() with no arguments for auto-extraction, or pass credentials explicitly:
const slack = await new SlackClient().login({ token: 'xoxc-...', cookie: 'xoxd-...' })
| Import Path | Client |
|---|---|
agent-messenger/slack | SlackClient |
agent-messenger/slackbot | SlackBotClient |
agent-messenger/discord | DiscordClient |
agent-messenger/discordbot | DiscordBotClient |
agent-messenger/teams | TeamsClient |
agent-messenger/webex | WebexClient |
agent-messenger/webexbot | WebexBotClient |
agent-messenger/telegrambot | TelegramBotClient |
agent-messenger/whatsapp | WhatsAppClient |
agent-messenger/whatsappbot | WhatsAppBotClient |
agent-messenger/line | LineClient |
agent-messenger/wechatbot | WeChatBotClient |
agent-messenger/imessage | ImsgClient |
agent-messenger/instagram | InstagramClient |
agent-messenger/kakaotalk | KakaoTalkClient |
agent-messenger/channeltalk | ChannelClient |
agent-messenger/channeltalkbot | ChannelBotClient |
Each module also exports its credential manager, Zod schemas, and TypeScript types (except imessage, which exports its client, credential manager, and TypeScript types — no Zod schemas):
import { SlackClient, SlackCredentialManager, SlackMessageSchema } from 'agent-messenger/slack'
import type { SlackMessage, SlackChannel } from 'agent-messenger/slack'
Every client supports .login() with explicit credentials for advanced use cases:
import { SlackClient } from 'agent-messenger/slack'
const client = await new SlackClient().login({ token: 'xoxc-...', cookie: 'xoxd-...' })
const messages = await client.getMessages('C01234567')
Clients that support message editing expose an editMessage method (matching each platform's API, Slack/SlackBot use updateMessage and TelegramBot uses editMessageText). You can only edit your own messages, subject to each platform's edit window.
import { DiscordClient } from 'agent-messenger/discord'
const discord = await new DiscordClient().login()
const msg = await discord.sendMessage(channelId, 'Deploying…')
await discord.editMessage(channelId, msg.id, 'Deployed ✅')
getUnreadMentions returns only the mentions behind Discord's unread-mention badge by correlating your recent mention history (Discord's 7-day window) with per-channel read state. count is the enumerated unread mentions, badgeCount is Discord's account-wide badge total, and complete is true when the scan exhausted all available mention history and false when it stopped early due to the limit or a non-advancing cursor.
import { DiscordClient } from 'agent-messenger/discord'
const discord = await new DiscordClient().login()
const { mentions, count, badgeCount, complete } = await discord.getUnreadMentions()
Mention history only records server mentions, so DMs never appear in getUnreadMentions. getUnreadDMs covers them by comparing each DM and group-DM channel's last_message_id against its read marker. Each channel's unreadCount is Discord's own badge counter — null when the channel has no read-state entry (count unknown, still reported as unread) and 0 when the DM is muted. count and totalUnread describe every unread DM found, so they stay accurate when limit caps the returned list. complete is false when Discord delivered a partial read state, in which case never-opened DMs may be missing from the result.
import { DiscordClient } from 'agent-messenger/discord'
const discord = await new DiscordClient().login()
const { channels, count, totalUnread, complete } = await discord.getUnreadDMs()
Sign in with a QR code from Slack's "Sign in on mobile" screen — no desktop app or browser automation, just HTTP. dataUrl is the QR image as a data:image/png;base64,... string.
import { loginWithQr, SlackClient } from 'agent-messenger/slack'
const session = await loginWithQr(dataUrl)
const client = await new SlackClient().login({ token: session.token, cookie: session.cookie })
Sign in by scanning a QR code with the Discord mobile app — no desktop app or browser token extraction required. loginWithRemoteAuth runs Discord's Remote Auth protocol and hands you a QR URL to display; once the user scans and confirms on their phone, you receive the user token.
import { DiscordClient, loginWithRemoteAuth } from 'agent-messenger/discord'
const session = await loginWithRemoteAuth({
onQrUrl: (url) => {
// Render this URL as a QR code (e.g. with the `qrcode` package)
console.log('Scan this with the Discord mobile app:', url)
},
})
const client = await new DiscordClient().login({ token: session.token })
import { SlackClient, SlackListener } from 'agent-messenger/slack'
const client = await new SlackClient().login()
const listener = new SlackListener(client)
listener.on('message', (event) => {
console.log(`New message in ${event.channel}: ${event.text}`)
})
await listener.start()
Stream Webex messages, memberships, attachment actions, and room events over Mercury WebSocket.
import { WebexClient, WebexListener } from 'agent-messenger/webex'
const client = await new WebexClient().login()
const listener = new WebexListener(client)
listener.on('message_created', (event) => {
console.log(`New message in ${event.roomId}: ${event.text}`)
})
listener.on('membership_created', (event) => {
console.log(`Membership changed in ${event.roomId}: ${event.personId}`)
})
await listener.start()
Stream Teams chat messages in real time over Teams' internal trouter WebSocket — as a user, with no bot registration and no public HTTP endpoint. Requires the Teams desktop app to be logged in (the listener reuses your extracted session credentials).
import { TeamsClient, TeamsListener } from 'agent-messenger/teams'
const client = await new TeamsClient().login()
const listener = new TeamsListener(client)
listener.on('message', async (message) => {
console.log(`New message in ${message.chatId}: ${message.content}`)
// Channel messages carry team/channel context and parsed @mentions, so you
// can reply into the channel or act on who was mentioned.
if (message.conversationType === 'channel') {
for (const mention of message.mentions) {
console.log(`Mentioned: ${mention.displayName} (${mention.mri})`)
}
await client.sendMessage(message.teamId!, message.channelId!, 'On it 👍')
}
})
await listener.start()
Each message is a TeamsRealtimeMessage: conversationType is 'chat' or 'channel', teamId/channelId are set for channel messages, and mentions is always present (empty for messages with no @mentions).
import { KakaoTalkClient, KakaoTalkListener } from 'agent-messenger/kakaotalk'
const client = await new KakaoTalkClient().login()
const listener = new KakaoTalkListener(client)
listener.on('message', (event) => {
console.log(`New message in ${event.chat_id}: ${event.message}`)
})
listener.on('emoticon', (event) => {
console.log(`Sticker (${event.emoticon_kind}) in ${event.chat_id}: ${event.sticker_path}`)
})
await listener.start()
Stream messages, reactions, and slash command interactions directly from Discord's Gateway WebSocket — no public HTTP endpoint required.
import { DiscordBotClient, DiscordBotListener, DiscordIntent } from 'agent-messenger/discordbot'
const client = await new DiscordBotClient().login({ token: 'YOUR_BOT_TOKEN' })
const listener = new DiscordBotListener(client, {
// Privileged intents (MessageContent, GuildMembers, GuildPresences) must be enabled
// in the Discord Developer Portal before they can be used.
intents: DiscordIntent.Guilds | DiscordIntent.GuildMessages | DiscordIntent.MessageContent,
})
listener.on('message_create', (event) => {
console.log(`New message in ${event.channel_id}: ${event.content}`)
})
listener.on('interaction_create', (event) => {
const name = (event.data as { name?: string } | undefined)?.name
console.log(`Slash command received: ${name}`)
})
await listener.start()
Stream messages, callback queries, and other updates via long-polling — no public HTTPS endpoint required. Telegram Bot API does not support WebSockets, so the listener uses getUpdates long-polling, which is the canonical approach used by frameworks like grammy and telegraf.
import { TelegramBotClient, TelegramBotListener } from 'agent-messenger/telegrambot'
const client = await new TelegramBotClient().login({ token: 'YOUR_BOT_TOKEN' })
const listener = new TelegramBotListener(client, {
allowedUpdates: ['message', 'callback_query'],
})
listener.on('message', (message) => {
console.log(`New message in ${message.chat.id}: ${message.text}`)
})
listener.on('callback_query', (query) => {
console.log(`Button clicked: ${query.data}`)
})
await listener.start()
Stream Events API events, slash commands, and interactive components over Slack's Socket Mode WebSocket — no public HTTP endpoint required. Requires an app-level token (xapp-...) with the connections:write scope, separate from your bot token.
import { SlackBotClient, SlackBotListener } from 'agent-messenger/slackbot'
const client = await new SlackBotClient().login({ token: 'xoxb-...' })
const listener = new SlackBotListener(client, {
appToken: process.env.SLACK_APP_TOKEN!, // xapp-...
})
listener.on('message', ({ ack, event }) => {
ack()
console.log(`New message in ${event.channel}: ${event.text}`)
})
listener.on('slash_commands', ({ ack, body }) => {
ack({ text: `Got \`${body.command} ${body.text}\`` })
})
await listener.start()
Stream Instagram DMs in real time over Instagram's MQTToT transport (a persistent TLS connection to edge-mqtt.facebook.com), with automatic fallback to polling if the connection can't be established.
import { InstagramClient, InstagramHybridListener } from 'agent-messenger/instagram'
const client = await new InstagramClient().login()
const listener = new InstagramHybridListener(client)
listener.on('message', (msg) => {
if (msg.is_outgoing) return
console.log(`New DM in ${msg.thread_id}: ${msg.text}`)
})
listener.on('connected', ({ userId, transport }) => {
console.log(`Listening as ${userId} via ${transport}`)
})
await listener.start()
A unified terminal interface for all your messaging platforms in one screen. Navigate between Slack, Discord, Teams, Webex, Telegram, WhatsApp, iMessage, LINE, Instagram, KakaoTalk, and Channel Talk — all from your terminal.
Note: The TUI is a showcase of what's possible with Agent Messenger's SDK. It demonstrates the power of having a unified adapter layer across all platforms.
agent-messenger tui

Key features:
Ctrl+K for channels, Ctrl+W for workspacesSee the TUI docs for keybindings, architecture, and more.
| Feature | Slack | Discord | Teams | Webex | Telegram | LINE | KakaoTalk | Channel Talk (beta) | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Auto credential extraction | ✅ | ✅ | ✅ | ✅ | — | — | — | — | ✅ | ✅ | ✅ |
| Send & list messages | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ | ✅ |
| Direct messages | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Search messages | ✅ | ✅ | — | — | — | ✅ | — | — | ✅ | — | ✅ |
| Message edit | ✅ | ✅ | ✅¹ | ✅ | — | — | — | — | — | — | — |
| Threads | ✅ | ✅ | — | — | — | — | — | — | — | — | — |
| Channels & Users | ✅ | ✅ | ✅ | ✅ | partial | — | ✅ | ✅ | — | — | ✅ |
| Reactions | ✅ | ✅ | ✅ | — | — | ✅ | — | — | — | — | — |
| File uploads | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | ✅ | — |
| File downloads | ✅ | — | — | ✅ | — | — | — | — | — | — | — |
| Workspace snapshots | ✅ | ✅ | ✅ | ✅ | — | — | — | — | — | — | ✅ |
| Multi-workspace / account | ✅ | ✅ | ✅ | — | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Activity feed | ✅ | — | — | — | — | — | — | — | — | — | — |
| Drafts | ✅ | — | — | — | — | — | — | — | — | — | — |
| Saved items | ✅ | — | — | — | — | — | — | — | — | — | — |
| Unread messages | ✅ | ✅² | — | — | — | — | — | — | — | — | — |
| Sidebar sections | ✅ | — | — | — | — | — | — | — | — | — | — |
| Pins & bookmarks | ✅ | — | — | — | — | — | — | — | — | — | — |
| Scheduled messages | ✅ | — | — | — | — | — | — | — | — | — | — |
| Channel management | ✅ | — | — | — | — | — | — | — | — | — | — |
| Reminders | ✅ | — | — | — | — | — | — | — | — | — | — |
| User groups | ✅ | — | — | — | — | — | — | — | — | — | — |
| Real-time events (SDK) | ✅ | ✅ | ✅ | ✅ | — | — | ✅ | — | ✅ | ✅ | — |
| Bot support | ✅ | ✅ | — | ✅ | ✅ | ✅ | — | ✅ | — | — | ✅ |
⚠️ Teams tokens expire in 60-90 minutes. Re-run
agent-teams auth extractto refresh. See Teams Guide for details.
¹ Teams message edit applies to chats/DMs only. Channel messages are not editable through the internal API this client uses.
² Discord unread covers unread mentions in servers (
agent-discord mention unread, correlating your last 7 days of mention history with per-channel read state) and unread DMs (agent-discord dm unread, comparing each DM channel's latest message against its read marker). Unread non-mention messages in server channels are not covered.
💬 iMessage is supported via the local imsg tool (
agent-imessage), not the table above. It runs on a Mac (Apple has no API). v1 covers send & list messages, direct & group chats, chat listing, real-time watch, and standard tapbacks. Typing, edit/unsend, group management, and targeted/custom reactions require imsg's bridge (SIP disabled) and are a later tier. See the iMessage Guide.
Most agent-messenger platforms run anywhere. iMessage is the exception: Apple provides no API, so agent-imessage runs on a Mac and drives Messages locally through the imsg tool. You still act as yourself with your own Apple ID and run one shell command per action, but the agent must run on the Mac (imsg is local-only — no network or server) with Full Disk Access and Automation granted. See the setup guide.
Pull context from conversations before you start working — no tab-switching, no skimming.
"Read the #incident-api-outage thread in Slack and summarize the root cause, timeline, and action items so I can write the postmortem."
"Search our Discord #architecture channel for any previous discussion about event sourcing before I write a proposal."
"Check my unread messages across all Slack channels and tell me if anything needs my attention."
"Look through #frontend in Slack for messages about the login page redesign from the past two weeks and summarize the decisions made."
"Search Teams for any messages mentioning 'API deprecation' so I know if this was discussed before."
Send updates, file reports, and notify your team — all from a prompt.
"Post a deployment summary to #releases in Slack with the commit hash, changelog, and deploy status."
"Send a message to the #standup channel with what I worked on yesterday, what I'm doing today, and any blockers."
"Cross-post this announcement to #general in Slack, the announcements channel in Discord, and the General channel in Teams."
"Upload the latest test coverage report to #ci-results in Slack."
"React with ✅ to the last message in #deploy-requests to confirm I've handled it."
Wire messaging into your CI, scripts, or agent workflows.
"After every CI run, post the build status and test results to #builds in Slack — include the branch name and commit link."
"When a long-running migration finishes, notify me in Discord with the final row count and elapsed time."
"Every morning at 9am, snapshot my Slack workspace and post a summary of active channels to #team-pulse."
"Send an alert to #oncall in Slack whenever the error rate exceeds 1% — include the service name and a link to the dashboard."
"Read the latest message in #releases, then cross-post it to our Discord announcements channel."
These are just starting points. Your agent has full read/write access to Slack, Discord, Teams, Telegram, WhatsApp, LINE, iMessage, Instagram, KakaoTalk, and Channel Talk — anything you'd do manually in a chat app, it can handle for you. If you build something cool with Agent Messenger, let me know!
MCP servers expose all tools at once, bloating context and confusing agents.
| MCP Approach | Agent Skills + CLI |
|---|---|
| All tools loaded at once | Load only what you need |
| Bloated context window | Minimal token usage |
| Agent confused by options | Focused, relevant tools |
| Requires a running server | One shell command per action |
With Agent Messenger, your agent loads the skill it needs, uses the CLI, and moves on. No wasted tokens. The SDK complements the CLI for when you need programmatic access—same credentials, same platform coverage, full type safety.
OAuth requires creating an app and workspace admin approval—days of waiting just to send a message. Agent Messenger skips all of that. Your desktop apps already have valid session tokens; Agent Messenger extracts them directly so you can start messaging immediately. For platforms like Telegram, WhatsApp, and LINE, a one-time authentication flow gets you in fast.
For server-side bots and CI/CD, bot tokens are fully supported via agent-slackbot, agent-discordbot, agent-webexbot, agent-telegrambot, agent-whatsappbot, agent-wechatbot, and agent-channeltalkbot.
Inspired by agent-browser from Vercel Labs.
bun install # Install dependencies
bun link # Link CLI globally for local testing
bun test # Run tests
bun test:e2e # Run e2e tests
bun typecheck # Type check
bun lint # Lint
bun lint:fix # Lint with autofix
bun format # Format
bun run build # Build
MIT
.claude-plugin/
marketplace.json
plugin.json
README.md
.env.template
.github/
workflows/
ci.yml
e2e.yml.disabled
release.yml
.gitignore
.npmrc
.oxfmtrc.json
.oxlintrc.json
AGENTS.md
bun.lock
bunfig.e2e.toml
bunfig.toml
CLAUDE.md
CONTRIBUTING.md
cubic.yaml
docs/
.gitignore
bun.lock
content/
docs/
agent-skills.mdx
cli/
channeltalk.mdx
channeltalkbot.mdx
discord.mdx
discordbot.mdx
imessage.mdx
instagram.mdx
kakaotalk.mdx
line.mdx
meta.json
slack.mdx
slackbot.mdx
teams.mdx
telegram.mdx
telegrambot.mdx
webex.mdx
webexbot.mdx
wechatbot.mdx
whatsapp.mdx
whatsappbot.mdx
index.mdx
meta.json
quick-start.mdx
sdk/
channeltalk.mdx
channeltalkbot.mdx
discord.mdx
discordbot.mdx
instagram.mdx
kakaotalk.mdx
line.mdx
meta.json
slack.mdx
slackbot.mdx
teams.mdx
telegrambot.mdx
webex.mdx
webexbot.mdx
wechatbot.mdx
whatsapp.mdx
whatsappbot.mdx
tui.mdx
next.config.ts
package.json
postcss.config.mjs
public/
cover.png
file.svg
globe.svg
next.svg
tui.png
vercel.svg
window.svg
README.md
source.config.ts
src/
app/
api/
search/
route.ts
docs/
[[...slug]]/
page.tsx
layout.tsx
globals.css
icon.png
layout.config.tsx
layout.tsx
page.tsx
lib/
source.ts
mdx-components.tsx
tsconfig.json
e2e/
channeltalk.e2e.test.ts
channeltalkbot.e2e.test.ts
config.ts
discord.e2e.test.ts
discordbot.e2e.test.ts
helpers.ts
instagram.e2e.test.ts
kakaotalk.e2e.test.ts
line.e2e.test.ts
README.md
setup.ts
slack.e2e.test.ts
slackbot.e2e.test.ts
teams.e2e.test.ts
telegram.e2e.test.ts
telegrambot.e2e.test.ts
webex.e2e.test.ts
whatsapp.e2e.test.ts
whatsappbot.e2e.test.ts
examples/
discord-listen.ts
discordbot-listen.ts
kakaotalk-listen.ts
slack-listen.ts
slackbot-listen.ts
telegrambot-listen.ts
package.json
README.md
scripts/
kakao-loco-capture.ts
postbuild.ts
prepublish.ts
skills/
agent-channeltalk/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-chat.sh
post-message.sh
workspace-summary.sh
agent-channeltalkbot/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-chat.sh
post-message.sh
workspace-summary.sh
agent-discord/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-channel.sh
post-message.sh
server-summary.sh
agent-discordbot/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-channel.sh
post-message.sh
server-summary.sh
agent-imessage/
references/
authentication.md
permissions.md
setup.md
SKILL.md
agent-instagram/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
chat-summary.sh
monitor-chat.sh
post-message.sh
agent-kakaotalk/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
chat-summary.sh
monitor-chat.sh
post-message.sh
agent-line/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
chat-summary.sh
monitor-chat.sh
post-message.sh
agent-slack/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-channel.sh
post-message.sh
workspace-summary.sh
agent-slackbot/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-channel.sh
post-message.sh
workspace-summary.sh
agent-teams/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-channel.sh
post-message.sh
team-summary.sh
agent-telegram/
SKILL.md
agent-telegrambot/
SKILL.md
agent-webex/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
monitor-space.sh
post-message.sh
agent-webexbot/
references/
authentication.md
common-patterns.md
SKILL.md
agent-wechatbot/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
account-summary.sh
post-message.sh
send-template.sh
agent-whatsapp/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
chat-summary.sh
monitor-chat.sh
post-message.sh
agent-whatsappbot/
references/
authentication.md
common-patterns.md
SKILL.md
templates/
account-summary.sh
post-message.sh
send-template.sh
src/
cli.ts
platforms/
channeltalk/
cli.ts
client.test.ts
client.ts
commands/
auth.test.ts
auth.ts
bot.test.ts
bot.ts
chat.test.ts
chat.ts
group.test.ts
group.ts
index.ts
manager.test.ts
manager.ts
message.test.ts
message.ts
shared.ts
snapshot.test.ts
snapshot.ts
whoami.test.ts
whoami.ts
credential-manager.test.ts
credential-manager.ts
ensure-auth.test.ts
ensure-auth.ts
index.test.ts
index.ts
token-extractor.test.ts
token-extractor.ts
types.test.ts
types.ts
channeltalkbot/
cli.ts
client.test.ts
client.ts
commands/
auth.test.ts
auth.ts
bot.test.ts
bot.ts
chat.test.ts
chat.ts
group.test.ts
group.ts
index.ts
manager.test.ts
manager.ts
message.test.ts
message.ts
shared.ts
snapshot.test.ts
snapshot.ts
whoami.test.ts
whoami.ts
credential-manager.test.ts
credential-manager.ts
index.test.ts
index.ts
message-utils.test.ts
message-utils.ts
types.test.ts
types.ts
discord/
cli.ts
client.test.ts
client.ts
commands/
auth.test.ts
auth.ts
channel.test.ts
channel.ts
dm.test.ts
dm.ts
file.test.ts
file.ts
friend.test.ts
friend.ts
index.ts
member.test.ts
member.ts
mention.test.ts
mention.ts
message.test.ts
message.ts
note.test.ts
note.ts
profile.test.ts
profile.ts
reaction.test.ts
reaction.ts
server.test.ts
server.ts
snapshot.test.ts
snapshot.ts
thread.test.ts
thread.ts
user.test.ts
user.ts
whoami.test.ts
whoami.ts
credential-manager.test.ts
credential-manager.ts
ensure-auth.test.ts
ensure-auth.ts
index.test.ts
index.ts
listener.test.ts
listener.ts
remote-auth.test.ts
remote-auth.ts
super-properties.ts
token-extractor.test.ts
token-extractor.ts
types.test.ts
types.ts
discordbot/
cli.ts
client.test.ts
client.ts
commands/
auth.test.ts
... 861 moreFAQ
agent-messenger is a Claude Code plugin with 18 hand-picked skills for ai & agents work, indexed on Flowy. Install it with the command on its page. It includes agent-channeltalk, agent-channeltalkbot, agent-discord. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.