By fadysan-rh
Notify Slack when Claude Code sessions start and stop. Automatically posts prompts, work summaries, changed files, and Git operations to a Slack thread.
Real-time Slack notifications for Claude Code session activity. Prompt submissions, AskUserQuestion answers, and stop summaries are grouped into one thread.
Language: English | Japanese
When teams use Claude Code, it can be hard to see what is currently in progress. cc-slackhook makes that visible in Slack.
You: "Implement authentication"
↓
Slack:
*Claude Code Session Started*
*repo/dir:* org:repo/main
*Prompt*
Implement authentication
├── Request: "JWT or session?"
├── Answer: "JWT"
└── Work complete
Changed Files:
• M src/auth/jwt.ts (+48 -0)
• M src/middleware.ts (+12 -3)
Git:
• `a1b2c3d` feat: add JWT authentication
| Hook | Trigger | What it does |
|---|---|---|
| Prompt | UserPromptSubmit | Posts to Slack on user prompt submission. First post starts a new thread; later prompts continue in the thread. |
| Answer | PostToolUse | Posts AskUserQuestion answers as thread replies. |
| Summary | Stop | Posts work summary, changed files (with diff stats), and Git operation results. |
CC_SLACK_THREAD_TIMEOUTFor end users:
claude plugin marketplace add fadysan-rh/cc-slackhook-plugin
claude plugin install cc-slackhook@cc-slackhook-marketplace --scope user
For local development only:
claude --plugin-dir /path/to/cc-slackhook-plugin
Add these environment variables to ~/.claude/settings.json:
{
"env": {
"CC_SLACK_USER_TOKEN": "xoxp-...", // Prompt/Answer posts (as user)
"CC_SLACK_BOT_TOKEN": "xoxb-...", // Summary posts (as bot)
"CC_SLACK_CHANNEL": "C0XXXXXXX", // Target channel ID
"CC_SLACK_LOCALE": "ja", // Message locale: ja / en (default: ja)
"CC_SLACK_HOOK_DEBUG": "0", // Optional: set 1 to enable debug logs
"CC_CC_SLACK_HOOK_DEBUG_LOG": "" // Optional: custom debug log path
}
}
| Variable | Required | Description |
|---|---|---|
CC_SLACK_USER_TOKEN | Yes | Token for prompt/answer notifications (posted as the user) |
CC_SLACK_BOT_TOKEN | Yes | Token for stop summary notifications (posted as the bot) |
CC_SLACK_CHANNEL | Yes | Target Slack channel ID |
CC_SLACK_THREAD_TIMEOUT | No | Seconds before starting a new thread (default: 1800) |
CC_SLACK_LOCALE | No | Notification locale: ja or en (default: ja) |
CC_SLACK_HOOK_DEBUG | No | Set 1 to enable hook debug logs (default: disabled) |
CC_CC_SLACK_HOOK_DEBUG_LOG | No | Debug log path (default: $HOME/.claude/slack-times-debug.log) |
Create a new app in Slack API.
In OAuth & Permissions, add these scopes.
| Token | Scope |
|---|---|
| Bot Token | chat:write |
| User Token | chat:write |
Install the app in your workspace and copy the tokens.
Invite the app to the target channel (/invite @your-app).
See CONTRIBUTING.md for architecture, development, and release information.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub fadysan-rh/cc-slackhook-plugin --plugin cc-slackhookStart, stop, join, resume, and manage Claude Code sessions mirrored to Slack via slaude
Drives a full feature-development workflow (clarify -> design -> plan -> execute -> PR -> test) over Slack via the claude-slack-bridge daemon. Ships /process-setup for one-time per-repo configuration and /process for clarification + handoff to the daemon's workflow engine.
Slack integration for deployment and build notifications
Desktop notifications showing what Claude Code is working on - stay informed even when the terminal is not in focus. Optional sound alerts and AI summaries
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions