Receber por email
← Voltar para o catálogo

slack

Slack workspace integration: 9 on-demand scripts (post, read, delete, search, stream, react, upload, channels, users) + dual-token support + RTS API search + chat streaming + AI Block Kit + Session Bridge + Claudicle unified launcher (Claude Agent SDK, soul engine, three-tier memory).

35estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add tdimino/claude-code-minoan

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/slack-tdimino/svg)](https://www.skillteca.com.br/skills/slack-tdimino)

Skills relacionadas

Ver todas de Automação →

Alerta por categoria

Receba novas skills de Automação toda segunda

1 email curto, só com as skills novas de Automação. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Slack Skill

Full Slack workspace integration with three modes:

  1. Scripts — 9 Python scripts for on-demand Slack operations
  2. Session Bridge — connect THIS Claude Code session to Slack (background listener + inbox file, no extra API costs)
  3. Unified Launcher — claudicle.py with Claude Agent SDK, soul engine, per-channel sessions (requires SDK API key)

When to Use This Skill

Scripts (on-demand)

  • Posting messages to Slack channels or threads (with optional AI feedback buttons)
  • Reading channel history or thread replies
  • Searching messages, files, channels, or users via RTS API (with legacy fallback)
  • Streaming messages in real-time via chat streaming API
  • Adding or managing reactions on messages
  • Uploading files or code snippets
  • Listing channels, getting channel info, or joining channels (including bulk join)
  • Looking up users by name, ID, or email

Session Bridge (recommended)

  • Connecting any running Claude Code session to Slack
  • Responding to @mentions and DMs with full tool access (this session IS the brain)
  • No extra API costs — messages processed in the current session context
  • Auto-notification of new messages via UserPromptSubmit hook
  • Personality as Claudicle via soul.md instructions (no XML machinery needed)

Unified Launcher (persistent, requires SDK API key)

  • Running Claudicle as an interactive terminal + Slack bot in one process
  • Responding to @mentions and DMs in real time as "Claudicle, Artifex Maximus"
  • Multi-turn conversations in threads (per-channel session continuity via Claude Agent SDK)
  • Per-user personality modeling (learns communication style, interests, expertise)
  • Cross-thread soul state (tracks current project, task, topic, emotional state)
  • Three-tier memory: working memory (per-thread), user models (per-user), soul memory (global)
  • All Slack activity visible in terminal alongside direct terminal interactions

Prerequisites

All scripts require the SLACK_BOT_TOKEN environment variable (a Bot User OAuth Token starting with xoxb-). Scripts also require requests (uv pip install --system requests).

Optional: SLACK_USER_TOKEN (xoxp-) enables workspace-wide search via legacy search.messages/search.files when the RTS API is unavailable. The bot token is used for all other operations.

# Verify tokens
echo $SLACK_BOT_TOKEN
echo $SLACK_USER_TOKEN  # optional, for legacy search fallback

First-Time Setup

  1. Go to api.slack.com/apps → Create New App → From Scratch
  2. Name it "Claude Code" → select your workspace
  3. OAuth & Permissions → Bot Token Scopes → add all:
  4. app_mentions:read
  5. channels:history, groups:history, im:history, mpim:history
  6. channels:read, groups:read, im:read, im:write
  7. channels:join — enables bot to join public channels programmatically
  8. chat:write
  9. files:write, files:read
  10. reactions:write, reactions:read
  11. search:read — legacy search (bot-visible channels only)
  12. search:read.public, search:read.private, search:read.im, search:read.mpim, search:read.files, search:read.users — RTS API (unified search, Feb 2026+)
  13. users:read, users:read.email
  14. users:write (optional — enables green presence dot)
  15. Settings → Socket Mode → toggle ON → generate an App-Level Token:
  16. Name: socket-mode
  17. Scope: connections:write
  18. Copy the xapp- token
  19. Event Subscriptions → toggle ON (no Request URL needed with Socket Mode) → Subscribe to Bot Events → add:
  20. app_mention — channel @mentions
  21. message.im — direct messages (required for DMs to work)
  22. app_home_opened — App Home tab rendering
  23. App Home → Show Tabs → enable "Allow users to send Slash commands and messages from the messages tab"
  24. Install to Workspace → approve permissions → copy Bot User OAuth Token
  25. Set environment variables (add to shell profile):

``bash export SLACK_BOT_TOKEN=xoxb-... # Bot User OAuth Token export SLACK_APP_TOKEN=xapp-... # App-Level Token (Socket Mode) export SLACK_USER_TOKEN=xoxp-... # (optional) User Token for legacy workspace-wide search ``

  1. Invite the bot to channels: /invite @Claude Code

After any scope or event subscription change: reinstall the app (Install App → Reinstall to Workspace) and restart the launcher.

Quick Start

# Post a message
python3 ~/.claude/skills/slack/scripts/slack_post.py "#general" "Hello from Claude"

# Post with AI feedback buttons
python3 ~/.claude/skills/slack/scripts/slack_post.py "#general" "Here's my analysis" --ai

# Read recent messages
python3 ~/.claude/skills/slack/scripts/slack_read.py "#general" -n 10

# Search the workspace (auto-detects RTS API, falls back to legacy)
python3 ~/.claude/skills/slack/scripts/slack_search.py "deployment status"

# Search with RTS API (messages, files, channels, users)
python3 ~/.claude/skills/slack/scripts/slack_search.py "deployment" --rts --type channels

# Stream a message in real-time
python3 ~/.claude/skills/slack/scripts/slack_stream.py "#general" "Streaming message..."

# Join all public channels
python3 ~/.claude/skills/slack/scripts/slack_channels.py --join-all-public

# Connect this session to Slack (recommended)
cd ~/.claude/skills/slack/daemon && python3 slack_listen.py --bg
python3 ~/.claude/skills/slack/scripts/slack_check.py

# Start the unified launcher (requires SDK API key)
cd ~/.claude/skills/slack/daemon && python3 claudicle.py

Session Bridge (Recommended)

Connect any running Claude Code session to Slack. A background listener catches @mentions and DMs → inbox.jsonl. This session reads the inbox, processes with full tool access, posts responses back. No extra API costs.

# Connect
cd ~/.claude/skills/slack/daemon && python3 slack_listen.py --bg

# Check messages
python3 ~/.claude/skills/slack/scripts/slack_check.py

# Respond to thread, remove hourglass, mark handled
python3 ~/.claude/skills/slack/scripts/slack_post.py "C12345" "response" --thread "TS"
python3 ~/.claude/skills/slack/scripts/slack_react.py "C12345" "TS" "hourglass_flowing_sand" --remove
python3 ~/.claude/skills/slack/scripts/slack_check.py --ack 1

# Disconnect
python3 ~/.claude/skills/slack/daemon/slack_listen.py --stop

Soul Formatter (optional): scripts/slack_format.py adds Open Souls cognitive step formatting — perception framing, dialogue extraction, monologue logging.

python3 slack_format.py perception "Tom" "What's the status?"   # → Tom said, "..."
echo "$raw" | python3 slack_format.py extract                   # → external dialogue only
echo "$raw" | python3 slack_format.py extract --narrate --log   # → narrated + logged
python3 slack_format.py instructions                            # → cognitive step XML format

Automated Respond: /slack-respond processes all pending messages as Claudicle with full cognitive steps — perception, monologue, dialogue, post, ack — in a single invocation. See ~/.claude/skills/slack-respond/SKILL.md.

Soul Activation: /ensoul activates the Claudicle identity in any Claude Code session with persistent soul.md injection through compaction/resume. /slack-sync #channel then binds the ensouled session to a Slack channel. Both are opt-in per session. The soul registry (~/.claude/hooks/soul-registry.py) tracks all active sessions and their channel bindings — ensouled or not.

For full installation, architecture, inbox format, auto-notification hook, and troubleshooting, see references/session-bridge.md.

App Home: The Home tab renders automatically when a user opens Claudicle's profile (via app_home_opened in the listener). Shows live status, toolkit, cognitive architecture, memory system. Refresh manually:

python3 ~/.claude/skills/slack/scripts/slack_app_home.py "USER_ID"
python3 ~/.claude/skills/slack/scripts/slack_app_home.py --all
python3 ~/.claude/sk
Compartilhar X LinkedIn