agent-slack

Installation
Summary

Slack automation CLI for reading, searching, sending, and managing messages, channels, and files.

  • Supports message operations: fetch single messages or threads, browse channel history, send/edit/delete messages, add/remove reactions, and draft rich-text messages in a browser editor
  • Download attachments (snippets, images, files) automatically; search messages and files across channels with date and user filters
  • Create channels, invite users (including external), open DMs or group DMs, and mark channels as read up to a specific message
  • Fetch Slack canvases as markdown and look up user information; multi-workspace support with explicit workspace targeting to avoid ambiguity
  • Auto-authentication via Slack Desktop, Chrome, or Firefox; manual token configuration available via environment variables
SKILL.md

Slack automation with agent-slack

agent-slack is a CLI binary on $PATH. Invoke directly (e.g. agent-slack user list).

Installation

If agent-slack is not found on $PATH, install it:

  • curl -fsSL https://raw.githubusercontent.com/stablyai/agent-slack/main/install.sh | sh (recommended)
  • npm i -g agent-slack (requires Node >= 22.5)
  • nix run github:stablyai/agent-slack -- <args> (no install needed, prefix all commands)

CRITICAL: Bash command formatting rules

Claude Code's permission checker has security heuristics that force manual approval prompts. Avoid these patterns to keep commands auto-allowed. See: https://github.com/anthropics/claude-code/issues/34379

  1. No # anywhere in the command string. Treated as a comment delimiter even inside quotes. Use bare channel names (general not #general). No # comments in inline scripts — use the Bash tool's description parameter instead.
  2. No '' (consecutive single quotes) or "" (consecutive double quotes). Triggers "potential obfuscation" check. Avoid Python empty string literals like d.get('key', '') — use d.get('key') instead.
  3. Only | jq for filtering — no python3, no other commands. python3 -c is not in the allow list and triggers prompts. jq with single-quote-only expressions (no " inside) is safe:
Installs
1.6K
GitHub Stars
412
First Seen
Feb 5, 2026