Agent ChannelTalk

VérifiéPrudence

Interagissez avec les espaces de travail Channel Talk via un CLI TypeScript. Extraction automatique des identifiants depuis l'application de bureau, support multi-espace, liste de chats, envoi de messages et recherche.

Spar Skills Guide Bot
ProductiviteIntermédiaire
05/08/2026
Claude CodeCursorCodex
#channeltalk#messaging#cli#customer-support#automation

Recommandé pour

Synthèse automatique

Un skill en ligne de commande qui authentifie un agent auprès d'un espace de travail Channel Talk en extrayant les cookies de l'application desktop, puis permet de lire, envoyer et rechercher des messages et de gérer les groupes.

Points forts

  • Authentification sans configuration par extraction automatique des cookies depuis l'application desktop (macOS et Windows), avec renouvellement automatique à expiration.
  • Prise en charge de plusieurs espaces de travail via les commandes auth list/use/status/remove.
  • Interface simple couvrant les user chats, les groupes, les direct chats et la recherche de messages.
  • Fichier MEMORY.md persistant pour mémoriser les identifiants d'espaces, de groupes et de chats déjà découverts.

Limites

  • Nécessite l'application desktop Channel Talk installée et connectée ; aucune méthode d'authentification alternative n'est proposée.
  • Ne fonctionne que sur macOS et Windows (aucune application desktop Linux mentionnée).
  • Les cookies expirent au bout d'environ 30 jours et le fichier mémoire est géré par l'agent, pas par le CLI.
Quand l'utiliser

À utiliser lorsqu'un agent doit lire, envoyer ou rechercher des messages Channel Talk ou gérer les groupes de la boîte de réception d'équipe.

Quand l'éviter

À éviter lorsque l'application desktop Channel Talk n'est pas disponible (Linux, absence d'installation) ou qu'une intégration par clé API officielle est requise.

Analyse de sécurité

Prudence
Score qualité85/100

The skill uses a legitimate CLI to interact with Channel Talk by extracting existing local session credentials. It does not exfiltrate or instruct destructive actions, but it accesses sensitive authentication material and can perform actions on behalf of the user, so caution is warranted.

Points d'attention
  • •Automatically extracts Channel Talk authentication cookies (JWTs) from the local desktop app, including DPAPI decryption on Windows.
  • •Can read and send messages, manage groups, and search messages using the user's active session.
Comment cette analyse est faite

Exemples

Send a group message
Using agent-channeltalk, send a message to the group grp_abc123 that says 'Deployment finished successfully.'
Summarize user chats
List my Channel Talk user chats with agent-channeltalk and summarize the latest customer questions.
Search messages
Search Channel Talk messages for 'refund' with agent-channeltalk and tell me which user chats mention it.

name: agent-channeltalk description: Interact with Channel Talk using extracted desktop app credentials - read chats, send messages, search messages, manage groups version: 1.15.0 allowed-tools: Bash(agent-channeltalk:*) metadata: openclaw: requires: bins: - agent-channeltalk install: - kind: node package: agent-messenger bins: [agent-channeltalk]

Agent Channel

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.

Key Concepts

Before diving in, a few things about Channel Talk's terminology:

  • Channel = workspace (not a chat channel like Slack). The API calls it a "channel," but it means your entire workspace.
  • UserChats = 1:1 conversations with end users (customers).
  • Groups = team inbox channels (similar to Slack channels). Referenced by ID.
  • DirectChats = direct messages between managers.
  • Managers = human agents on your team.
  • Bots = automated agents in the workspace.
  • Messages use a blocks format: [{ type: "text", value: "..." }]. The CLI handles this automatically when you pass plain text.

Quick Start

# Get workspace snapshot (credentials are extracted automatically)
agent-channeltalk snapshot --pretty

# Send a message to a group
agent-channeltalk message send group grp_abc123 "Hello from the CLI!"

# Send a message to a user chat
agent-channeltalk message send user-chat uc_abc123 "Thanks for reaching out!"

# List user chats
agent-channeltalk chat list

Authentication

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.

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:

  • x-account (JWT) - your account identity
  • ch-session-1 (JWT) - your session token

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.

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.

Multi-Workspace Support

If you're logged into multiple Channel Talk workspaces, all are discovered automatically. The first workspace is selected by default.

# List all available workspaces
agent-channeltalk auth list

# Switch to a different workspace
agent-channeltalk auth use <workspace-id>

# Check auth status
agent-channeltalk auth status

# Remove a stored workspace
agent-channeltalk auth remove <workspace-id>

Memory

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.

Reading Memory

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, and preferences.

  • If the file doesn't exist yet, that's fine. Proceed without it and create it when you first have useful information to store.
  • If the file can't be read (permissions, missing directory), proceed without memory. Don't error out.

Writing Memory

After discovering useful information, update ~/.config/agent-messenger/MEMORY.md using the Write tool. Write triggers include:

  • After discovering workspace IDs and names (from auth list, snapshot, etc.)
  • After discovering group IDs and names (from group list, snapshot, etc.)
  • After discovering chat IDs (from chat list, etc.)
  • After discovering manager IDs and names (from manager list, etc.)
  • After discovering bot names (from bot list, etc.)
  • After the user gives you an alias or preference ("call this the support workspace", "my main group is X")

When writing, include the complete file content. The Write tool overwrites the entire file.

What to Store

  • Workspace IDs with names
  • Group IDs with names
  • UserChat IDs with context
  • Manager IDs with names
  • Bot IDs with names
  • User-given aliases ("support workspace", "billing group")
  • Any user preference expressed during interaction

What NOT to Store

Never store cookies, tokens, credentials, or any sensitive data. Never store full message content (just IDs and context). Never store personal user data.

Handling Stale 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.

Format / Example

# Agent Messenger Memory

## Channel Talk Workspaces

- `abc123` - Acme Support

## Groups (Acme Support)

- `grp_111` - Support Inbox
- `grp_222` - Billing Inbox
- `grp_333` - 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)

- `bot_001` - Support Bot
- `bot_002` - Notification Bot

## Aliases

- "support" -> `grp_111` (Support Inbox in Acme Support)

## Notes

- User prefers --pretty output for snapshots
- Main workspace is "Acme Support"

Memory lets you skip repeated group list and chat list calls. When you already know an ID from a previous session, use it directly.

Commands

Auth Commands

# Extract cookies from Channel Talk desktop app (usually automatic)
agent-channeltalk auth extract

# Check auth status
agent-channeltalk auth status
agent-channeltalk auth status --workspace <id>

# Clear all stored credentials
agent-channeltalk auth clear

# List all stored workspaces
agent-channeltalk auth list

# Switch active workspace
agent-channeltalk auth use <workspace-id>

# Remove a stored workspace
agent-channeltalk auth remove <workspace-id>

Message Commands

# Send a message (chat-type: group, user-chat, or direct-chat)
agent-channeltalk message send <chat-type> <chat-id> <text>
agent-channeltalk message send group grp_abc123 "Hello team!"
agent-channeltalk message send user-chat uc_abc123 "Thanks for reaching out!"
agent-channeltalk message send direct-chat dc_abc123 "Quick question..."

# List messages from a group, user chat, or direct chat
agent-channeltalk message list <chat-type> <chat-id>
agent-channeltalk message list group grp_abc123 --limit 50
agent-channeltalk message list user-chat uc_abc123 --sort asc

# Get a specific message by ID
agent-channeltalk message get <chat-type> <chat-id> <message-id>

# Search messages across team chats or user chats
agent-channeltalk message search <query>
agent-channeltalk message search "deployment" --scope team-chat
agent-channeltalk message search "refund" --scope user-chat --limit 10

Chat Commands (UserChats)

# List user chats assigned to me (default: opened)
agent-channeltalk chat list
agent-channeltalk chat list --state opened
agent-channeltalk chat list --state snoozed
agent-channeltalk chat list --state closed
agent-channeltalk chat list --limit 50

# Get a specific user chat
agent-channeltalk chat get <chat-id>

Group Commands

# List groups
agent-channeltalk group list
agent-channeltalk group list --limit 50

# Get a group by ID
agent-channeltalk group get <group-id>

# Get messages from a group
agent-channeltalk group messages <group-id>
agent-channeltalk group messages grp_abc123 --limit 50 --sort asc

Manager Commands

# List all managers
agent-channeltalk manager list
agent-channeltalk manager list --limit 50

Bot Commands

# List all bots
agent-channeltalk bot list
agent-channeltalk bot list --limit 50

Snapshot Command

Get comprehensive workspace state for AI agents:

# Full snapshot of current workspace
agent-channeltalk snapshot

# Filtered snapshots
agent-channeltalk snapshot --groups-only
agent-channeltalk snapshot --chats-only

# Limit messages per group/chat
agent-channeltalk snapshot --limit 10

Returns JSON with:

  • Workspace metadata (id, name)
  • Groups with recent messages (id, name, messages)
  • UserChat summary (total count, by state, recent opened)
  • Managers (id, name, email)
  • Bots (id, name)

Output Format

JSON (Default)

All commands output JSON by default for AI consumption:

{
  "id": "msg_abc123",
  "channel_id": "ch_def456",
  "chat_id": "uc_ghi789",
  "chat_type": "user-chat",
  "person_type": "manager",
  "plain_text": "Hello world",
  "created_at": 1705312200000
}

Pretty (Human-Readable)

Use --pretty flag for formatted output:

agent-channeltalk group list --pretty

Global Options

| Option | Description | | ------------------ | ---------------------------------------- | | --pretty | Human-readable output instead of JSON | | --workspace <id> | Use a specific workspace for this command |

Common Patterns

See references/common-patterns.md for typical AI agent workflows.

Templates

See templates/ directory for runnable examples:

  • post-message.sh - Send messages with error handling
  • monitor-chat.sh - Poll for new UserChats
  • workspace-summary.sh - Generate workspace summary

Error Handling

All commands return consistent error format:

{
  "error": "No credentials. Run \"agent-channeltalk auth extract\" first."
}

Common errors: No credentials, Workspace not found, Invalid --limit value.

Configuration

Credentials stored in ~/.config/agent-messenger/channel-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": "Acme Support",
      "account_id": "acc_001",
      "account_name": "Alice",
      "account_cookie": "...",
      "session_cookie": "..."
    }
  }
}

Feature Comparison: agent-channeltalk vs agent-channeltalkbot

| Feature | agent-channeltalk (user) | agent-channeltalkbot (bot) | | -------------------------- | :------------------: | :--------------------: | | Auth method | Auto-extract cookies | API key + secret | | Setup required | None (zero-config) | Manual key setup | | Acts as | You (manager) | Bot identity | | Send messages | ✅ | ✅ | | List messages | ✅ | ✅ | | Search messages | ✅ | - | | Close/delete chats | - | ✅ | | Create/delete bots | - | ✅ | | Set default bot | - | ✅ | | Group @name references | - | ✅ | | Direct chat support | ✅ | - | | Multi-workspace | ✅ | ✅ | | CI/CD friendly | - | ✅ |

Use agent-channeltalk when you want zero-config access acting as yourself. Use agent-channeltalkbot for server-side automation, CI/CD pipelines, or when you need bot-specific features like closing chats.

Limitations

  • macOS and Windows only (Channel Talk desktop app required)
  • No real-time events / WebSocket connection
  • No file upload support
  • No message editing or deletion
  • No chat close/delete (use agent-channeltalkbot for chat management)
  • No bot creation/deletion (use agent-channeltalkbot for bot management)
  • No @name group references (use group IDs from group list)
  • Plain text messages only (no rich blocks in v1)
  • Cookies expire after ~30 days (auto-re-extracted)

Troubleshooting

agent-channeltalk: command not found

agent-channeltalk is NOT the npm package name. The npm package is agent-messenger.

If the package is installed globally, use agent-channeltalk directly:

agent-channeltalk snapshot --pretty

If the package is NOT installed, run it directly with npx -y:

npx -y agent-messenger channeltalk snapshot --pretty

Note: If the user prefers a different package runner (e.g., bunx, pnpx, pnpm dlx), use that instead.

NEVER run npx agent-channeltalk, bunx agent-channeltalk, or pnpm dlx agent-channeltalk. It will fail or install a wrong package since agent-channeltalk is not the npm package name.

Channel Talk desktop app not found

The CLI looks for the Channel Talk desktop app's cookie database in these locations:

macOS:

  1. ~/Library/Containers/com.zoyi.channel.desk.osx/Data/Library/Application Support/Channel Talk/Cookies (Mac App Store version)
  2. ~/Library/Application Support/Channel Talk/Cookies (direct download / Electron version)

Windows:

  1. %APPDATA%\Channel Talk\Network\Cookies

If none exist, install the Channel Talk desktop app and log in.

Cookies expired

Cookies expire after roughly 30 days. The CLI automatically re-extracts on the next command. If auto-extraction fails:

  1. Open the Channel Talk desktop app
  2. Make sure you're logged in
  3. Run agent-channeltalk auth extract

For other troubleshooting, see references/authentication.md.

References

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/channeltalk-agent-msfn18zf/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/channeltalk-agent-msfn18zf' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/channeltalk-agent-msfn18zf/download' --output '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md.part' && mv '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md.part' '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash(agent-channeltalk:*)

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md' && test -s '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/agent-channeltalk' && cp -R '.skill-downloads/channeltalk-agent-msfn18zf' '.claude/skills/agent-channeltalk'

Cursor
test -f '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md' && test -s '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/agent-channeltalk' && cp -R '.skill-downloads/channeltalk-agent-msfn18zf' '.cursor/skills/agent-channeltalk'

Codex
test -f '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md' && test -s '.skill-downloads/channeltalk-agent-msfn18zf/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/agent-channeltalk' && cp -R '.skill-downloads/channeltalk-agent-msfn18zf' '.agents/skills/agent-channeltalk'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/channeltalk-agent-msfn18zf'

openskills read 'channeltalk-agent-msfn18zf'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/channeltalk-agent-msfn18zf/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires