원클릭으로
slack-bot
Slack bot integration for receiving messages and reactions. Use when setting up Slack webhooks or managing Slack bot configuration.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Slack bot integration for receiving messages and reactions. Use when setting up Slack webhooks or managing Slack bot configuration.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Clappie is a digital assistant layer that turns Claude Code into a full personal assistant with interactive terminal UIs called "clapps". It manages everything through one CLI: `clappie`. This is the core skill for the entire project. Load it whenever the user asks for ANYTHING personal-assistant related — not just when they say "clappie". Examples: emails, texts, notifications, inbox, dashboard, sidekicks, chores, heartbeat, background apps, displays, parties, memory, messages, todos, approval queue, status, automation, or any `[clappie]` prefixed message. If the user says "open notifications" or "spawn a sidekick" — that's this skill. Don't guess at how these systems work — load this skill, it has the docs. CORE SYSTEM - Terminal display engine with push/pop view navigation, mouse click handling, keyboard shortcuts, and two-way communication. Views send structured messages back to Claude prefixed with [clappie]. SUBSYSTEMS (each has deep docs in REFERENCE.md files): - Sidekicks: Autonomous AI agents runni
Telegram bot integration for receiving messages and reactions. Use when setting up Telegram webhooks or managing Telegram bot configuration.
Audio transcription (Whisper) and text-to-speech (OpenAI TTS). Use for processing audio messages or generating voice responses.
SOC 직업 분류 기준
| name | slack-bot |
| description | Slack bot integration for receiving messages and reactions. Use when setting up Slack webhooks or managing Slack bot configuration. |
Slack bot integration for receiving messages/reactions and spawning sidekicks. Threads become separate sidekicks.
Go to OAuth & Permissions → Bot Token Scopes and add:
| Scope | Purpose |
|---|---|
chat:write | Send messages |
files:read | Read uploaded files |
files:write | Upload files |
users:read | Get user info |
reactions:write | Add reactions to messages |
reactions:read | See reactions on messages |
Go to Event Subscriptions → Enable Events → Subscribe to bot events:
| Event | Purpose |
|---|---|
message.channels | Messages in public channels |
message.groups | Messages in private channels |
message.im | Direct messages |
message.mpim | Group DMs |
reaction_added | User adds reaction |
reaction_removed | User removes reaction |
Don't set the Request URL yet - you need Tailscale Funnel first.
Go to Install App → Install to Workspace → Authorize
Copy the Bot User OAuth Token (starts with xoxb-)
Go to Basic Information → App Credentials → Copy Signing Secret
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_SIGNING_SECRET=your-signing-secret
# Enable the bot
echo "true" > recall/settings/slack-bot/enabled.txt
# Allow your Slack user ID (find via Slack profile → ⋮ → Copy member ID)
echo "U01ABCDEF" > recall/settings/slack-bot/users.txt
# Enable incoming messages
mkdir -p recall/settings/slack-bot/webhooks
echo "true" > recall/settings/slack-bot/webhooks/incoming-message.txt
clappie background start sidekicks
Slack requires ports 80, 443, or 8443. Use Tailscale Funnel to proxy:
# Expose port 7777 on HTTPS (Tailscale handles certs)
tailscale funnel 7777
This gives you a URL like https://your-machine.tail1234.ts.net
Get your webhook path:
cat recall/settings/slack-bot/webhook-path.txt
Go back to Event Subscriptions in Slack app settings
Set Request URL to:
https://your-machine.tail1234.ts.net/webhooks/slack-bot/{webhook-path}
Replace {webhook-path} with the value from step 1
Slack will send a verification challenge - it should show ✓ Verified
In Slack, invite the bot to channels where you want it:
/invite @YourBotName
All settings in recall/settings/slack-bot/:
| File | Description | Required |
|---|---|---|
enabled.txt | Set to true to enable | Yes |
webhook-path.txt | Secret URL segment (auto-generated) | Auto |
users.txt | Allowed Slack user IDs (one per line) | Yes |
channels.txt | Allowed channel IDs (optional) | No |
webhooks/incoming-message.txt | Enable incoming messages | Yes |
sidekick-prompt.txt | Custom prompt/personality for sidekicks (overrides skill defaults) | No |
clappie slack-bot send <channel> <message> # Send message
clappie slack-bot thread <channel:ts> <message> # Reply in thread
clappie slack-bot photo <channel> <path> # Send image
clappie slack-bot document <channel> <path> # Send file
clappie slack-bot react <channel> <ts> <emoji> # Add reaction
When a Slack sidekick is running, these extra commands are available (registered via sidekickCommands in webhooks/send.js). The sidekick ID is auto-detected from the CLAPPIE_SIDEKICK_ID env var -- no need to type it. Explicit ID still works as an override.
clappie sidekick react <ts> :emoji: # React to a message
clappie sidekick send-file photo "/path" "caption" # Upload image
clappie sidekick send-file document "/path" "caption" # Upload file
These are only available to sidekicks with source: slack-bot. Telegram-specific commands like combo and sticker are not available.
conversationId = channel or channel:thread_tsWhen a user reacts to a message, the sidekick receives:
[Reacted with :thumbsup:]
Direct CLI (not sidekick):
clappie slack-bot react C01234 1234567890.123456 :eyes:
"Not found" when visiting webhook URL in browser Normal - webhooks only accept POST requests. The GET response confirms the endpoint is active.
Verification fails in Slack
tailscale funnel 7777)clappie background start sidekicks)Messages not received
users.txt?enabled.txt set to true?webhooks/incoming-message.txt is true| Variable | Description |
|---|---|
SLACK_BOT_TOKEN | Bot token (xoxb-...) |
SLACK_SIGNING_SECRET | Signing secret for verification |