From agent-messenger
Interact with Channel Talk workspaces via CLI: send messages to user chats/groups, read snapshots/chats, manage bots/agents using API credentials. For support automation and CI/CD.
npx claudepluginhub agent-messenger/agent-messenger --plugin agent-channeltalkbotThis skill is limited to using the following tools:
A TypeScript CLI tool that enables AI agents and humans to interact with Channel Talk workspaces using API credentials (Access Key + Access Secret). Designed for customer support automation, team inbox management, and CI/CD integrations.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
A TypeScript CLI tool that enables AI agents and humans to interact with Channel Talk workspaces using API credentials (Access Key + Access Secret). Designed for customer support automation, team inbox management, and CI/CD integrations.
Before diving in, a few things about Channel Talk's terminology:
@name.blocks format: [{ type: "text", value: "..." }]. The CLI handles this automatically when you pass plain text.# Set your API credentials
agent-channeltalkbot auth set your-access-key your-access-secret
# Verify authentication
agent-channeltalkbot auth status
# Get a workspace overview
agent-channeltalkbot snapshot --pretty
# Send a message to a UserChat
agent-channeltalkbot message send abc123-chat-id "Hello from the CLI!"
# Send a message to a Group
agent-channeltalkbot message send @support "Team update: deployment complete"
agent-channeltalkbot uses Access Key + Access Secret pairs from Channel Talk's developer settings:
# Set credentials (validates against Channel Talk API before saving)
agent-channeltalkbot auth set your-access-key your-access-secret
# Check auth status
agent-channeltalkbot auth status
# Clear stored credentials
agent-channeltalkbot auth clear
For credential setup, multi-workspace management, and security details, see references/authentication.md.
The agent maintains a ~/.config/agent-messenger/MEMORY.md file as persistent memory across sessions. This is agent-managed, the CLI does not read or write this file. Use the Read and Write tools to manage your memory file.
At the start of every task, read ~/.config/agent-messenger/MEMORY.md using the Read tool to load any previously discovered workspace IDs, group IDs, chat IDs, manager IDs, bot names, and preferences.
After discovering useful information, update ~/.config/agent-messenger/MEMORY.md using the Write tool. Write triggers include:
auth list, snapshot, etc.)group list, snapshot, etc.)chat list, etc.)manager list, etc.)bot list, etc.)auth bot)When writing, include the complete file content. The Write tool overwrites the entire file.
@name aliases)Never store access keys, access secrets, or any credentials. Never store full message content (just IDs and context). Never store personal user data.
If a memorized ID returns an error (chat not found, group not found), remove it from MEMORY.md. Don't blindly trust memorized data. Verify when something seems off. Prefer re-listing over using a memorized ID that might be stale.
# Agent Messenger Memory
## Channel Talk Workspaces
- `abc123` - Acme Support
## Default Bot (Acme Support)
- Support Bot
## Groups (Acme Support)
- `grp_111` - @support (Support Inbox)
- `grp_222` - @billing (Billing Inbox)
- `grp_333` - @engineering (Engineering)
## Recent UserChats (Acme Support)
- `uc_aaa` - John Doe inquiry (opened)
- `uc_bbb` - Refund request (closed)
## Managers (Acme Support)
- `mgr_001` - Alice (Team Lead)
- `mgr_002` - Bob (Support Agent)
## Bots (Acme Support)
- Support Bot (default, used for auto-replies)
- Notification Bot (used for alerts)
## Aliases
- "support" -> `grp_111` (@support in Acme Support)
## Notes
- Support Bot is used for closing chats and auto-replies
- Notification Bot is used for CI/CD alerts to @engineering
Memory lets you skip repeated
group listandchat listcalls. When you already know an ID from a previous session, use it directly.
# Set workspace credentials (validates against API)
agent-channeltalkbot auth set <access-key> <access-secret>
# Check auth status
agent-channeltalkbot auth status
# Clear all credentials
agent-channeltalkbot auth clear
# List stored workspaces
agent-channeltalkbot auth list
# Switch active workspace
agent-channeltalkbot auth use <workspace-id>
# Remove a stored workspace
agent-channeltalkbot auth remove <workspace-id>
# Set default bot name for sending messages
agent-channeltalkbot auth bot <name>
# Show current authenticated bot
agent-channeltalkbot whoami
agent-channeltalkbot whoami --pretty
agent-channeltalkbot whoami --workspace <workspace-id>
# Send a message to a UserChat or Group
agent-channeltalkbot message send <target> <text>
agent-channeltalkbot message send abc123-chat-id "Hello!"
agent-channeltalkbot message send @support "Team update"
# List messages from a UserChat or Group
agent-channeltalkbot message list <target>
agent-channeltalkbot message list abc123-chat-id --limit 50
# Get a specific message by ID
# Note: Searches the latest 100 messages. Older messages may not be found.
agent-channeltalkbot message get <target> <message-id>
Target auto-detection: if the target starts with @, it's treated as a group. Otherwise, it's treated as a UserChat. You can override with --type userchat or --type group.
# List UserChats (default: opened)
agent-channeltalkbot chat list
agent-channeltalkbot chat list --state opened
agent-channeltalkbot chat list --state snoozed
agent-channeltalkbot chat list --state closed
# Get a specific UserChat
agent-channeltalkbot chat get <chat-id>
# Close a UserChat (requires --bot or default bot)
agent-channeltalkbot chat close <chat-id>
agent-channeltalkbot chat close <chat-id> --bot "Support Bot"
# Delete a UserChat (requires --force)
agent-channeltalkbot chat delete <chat-id> --force
# List groups
agent-channeltalkbot group list
# Get a group by ID or @name
agent-channeltalkbot group get <group>
agent-channeltalkbot group get @support
# Get messages from a group
agent-channeltalkbot group messages <group>
agent-channeltalkbot group messages @support --limit 50
# List all managers
agent-channeltalkbot manager list
# Get a specific manager
agent-channeltalkbot manager get <manager-id>
# List all bots
agent-channeltalkbot bot list
# Create a new bot
agent-channeltalkbot bot create <name>
agent-channeltalkbot bot create "Deploy Bot" --color "#FF5733" --avatar-url "https://example.com/avatar.png"
# Delete a bot (requires --force)
agent-channeltalkbot bot delete <bot-id> --force
Get workspace overview for AI agents (brief by default):
# Brief snapshot (default) — fast, minimal API calls
agent-channeltalkbot snapshot
# Full snapshot — includes messages, managers, bots (slow, large output)
agent-channeltalkbot snapshot --full
# Filtered full snapshots
agent-channeltalkbot snapshot --full --groups-only
agent-channeltalkbot snapshot --full --chats-only
# Limit messages per group/chat (only with --full)
agent-channeltalkbot snapshot --full --limit 10
Default returns brief JSON with:
With --full, returns comprehensive JSON with:
All commands output JSON by default for AI consumption:
{
"id": "msg_abc123",
"chat_id": "uc_def456",
"person_type": "bot",
"plain_text": "Hello world",
"created_at": 1705312200000
}
Use --pretty flag for formatted output:
agent-channeltalkbot group list --pretty
| Option | Description |
|---|---|
--pretty | Human-readable output instead of JSON |
--workspace <id> | Use a specific workspace for this command |
--bot <name> | Use a specific bot name for this command |
See references/common-patterns.md for typical AI agent workflows.
See templates/ directory for runnable examples:
post-message.sh - Send messages with error handlingmonitor-chat.sh - Poll for new UserChatsworkspace-summary.sh - Generate workspace summaryAll commands return consistent error format:
{
"error": "No credentials. Run \"auth set <access-key> <access-secret>\" first."
}
Common errors: No credentials, Workspace not found, Bot name is required, Use --force to confirm deletion.
Credentials stored in ~/.config/agent-messenger/channelbot-credentials.json (0600 permissions). See references/authentication.md for format and security details.
Config format:
{
"current": { "workspace_id": "abc123" },
"workspaces": {
"abc123": {
"workspace_id": "abc123",
"workspace_name": "My Workspace",
"access_key": "...",
"access_secret": "..."
}
},
"default_bot": "Support Bot"
}
agent-channeltalkbot: command not foundagent-channeltalkbot is NOT the npm package name. The npm package is agent-messenger.
If the package is installed globally, use agent-channeltalkbot directly:
agent-channeltalkbot message send abc123-chat-id "Hello"
If the package is NOT installed, run it directly with npx -y:
npx -y agent-messenger channeltalkbot message send abc123-chat-id "Hello"
Note: If the user prefers a different package runner (e.g.,
bunx,pnpx,pnpm dlx), use that instead.
NEVER run npx agent-channeltalkbot, bunx agent-channeltalkbot, or pnpm dlx agent-channeltalkbot. It will fail or install a wrong package since agent-channeltalkbot is not the npm package name.
agent-channeltalkbot auth set <access-key> <access-secret>Channel Talk enforces rate limits on API calls. The CLI automatically retries on rate limit (429) responses using the Retry-After header. For bulk operations, add delays between requests to avoid hitting limits.
Some operations (closing chats, sending messages) require a bot name. Set a default with auth bot <name> or pass --bot <name> per command. The bot must exist in your workspace. Use bot list to see available bots.
For other troubleshooting, see references/authentication.md.