Skip to main content

Slack app for running Claude Code CLI commands

Project description

Slack Claude Code Bot

PyPI version Python versions License Tests

Claude Code, but in Slack. Access Claude Code remotely from any device, or use it full-time for a better UI experience.

Why Slack?

Feature Terminal Slack
Code blocks Plain text Syntax-highlighted with copy button
Long output Scrolls off screen "View Details" modal
Permissions Y/n prompts Approve/Deny buttons
Parallel work Multiple terminals Threads = isolated sessions
File sharing cat or copy-paste Drag & drop with preview
Notifications Watch the terminal Alerts when tasks complete
Streaming Live terminal output Watch responses as they generate
Smart context Manual file inclusion Frequently-used files auto-included

Installation

Prerequisites

1. Install the ccslack executable

pipx install slack-claude-code

2. Create Slack App

Go to https://api.slack.com/apps → "Create New App" → "From scratch"

Socket Mode: Enable and create an app-level token with connections:write scope (save the xapp- token)

Bot Token Scopes (OAuth & Permissions):

  • chat:write, commands, channels:history, app_mentions:read, files:read, files:write

Event Subscriptions: Enable and add message.channels, app_mention

App Icon: In "Basic Information" → "Display Information", upload assets/claude_logo.png from this repo as the app icon

Slash Commands: Add the commands from the tables below (or the subset that you plan to use)

Configuration

Customize Claude's behavior for your workflow.

Command Description Example
/model Show or change AI model /model sonnet
/mode View or set permission mode /mode, /mode plan
/permissions View/update permissions /permissions
/notifications Configure notifications /notifications

Session Management

Each Slack thread maintains an isolated Claude session with its own context.

Command Description Example
/clear Reset conversation /clear
/compact Compact context /compact
/cost Show session cost /cost
/resume Resume previous session /resume
/sessions List active sessions /sessions
/session-cleanup Clean up inactive sessions /session-cleanup

Navigation

Control the working directory for Claude's file operations.

Command Description Example
/ls List directory contents /ls, /ls src/
/cd Change working directory /cd /home/user/project, cd subfolder, cd ..
/pwd Print working directory /pwd
/add-dir Add directory to context /add-dir ./lib

CLI Tools

Direct access to Claude Code CLI functionality.

Command Description Example
/init Initialize project config /init
/memory View/edit Claude's memory /memory
/review Review code changes /review
/doctor Diagnose installation /doctor
/stats Show session statistics /stats
/context Display context info /context
/todos List and manage todos /todos
/mcp Show MCP server configuration /mcp
/claude-help Show Claude Code help /claude-help
/claude-config Show configuration /claude-config

Multi-Agent Tasks

Autonomous Planner → Worker → Evaluator pipeline for complex tasks. Iterates up to 3 times until complete.

Command Description Example
/task Start a multi-agent task /task add unit tests for UserService
/tasks List active tasks with status /tasks
/task-cancel Cancel a running task /task-cancel abc123

Command Queue

Queue commands for sequential execution while preserving Claude's session context across items.

Command Description Example
/q Add command to queue /q analyze the API endpoints
/qv View queue status /qv
/qc Clear pending queue /qc
/qr Remove specific item /qr 5

Jobs & Control

Monitor and control long-running operations with real-time progress updates.

Command Description Example
/st Show active job status /st
/cc Cancel jobs /cc or /cc abc123
/esc Send interrupt (Ctrl+C) /esc

Git

Full git workflow without leaving Slack. Includes branch name and commit message validation.

Command Description Example
/status Show branch and changes /status
/diff Show uncommitted changes /diff --staged
/commit Commit staged changes /commit fix: resolve race condition
/branch Manage branches /branch create feature/auth

3. Configure

Use the built-in config CLI to securely store your Slack credentials:

ccslack-config set SLACK_BOT_TOKEN=xoxb-...
ccslack-config set SLACK_APP_TOKEN=xapp-...
ccslack-config set SLACK_SIGNING_SECRET=...

Config CLI Commands:

Command Description
ccslack-config set KEY=VALUE Store a configuration value
ccslack-config get KEY Retrieve a configuration value
ccslack-config list List all stored configuration
ccslack-config delete KEY Remove a configuration value
ccslack-config path Show config file locations

Configuration is encrypted and stored in ~/.slack-claude-code/config.enc. Sensitive values (tokens, secrets) are masked when displayed.

Alternative: You can also use environment variables or a .env file. Config values take precedence over environment variables.

Where to find these values:

  • SLACK_BOT_TOKEN: Your App → OAuth & Permissions → Bot User OAuth Token
  • SLACK_APP_TOKEN: Your App → Basic Information → App-Level Tokens → (token you created with connections:write)
  • SLACK_SIGNING_SECRET: Your App → Basic Information → App Credentials → Signing Secret

4. Start the Slack bot

You can now run ccslack in your terminal. The working directory where you start the executable will be the default working directory for your Claude Code session(s). If you have a .env file in this directory, it will automatically be loaded.

Usage

Type messages in any channel where the bot is installed. The main channel is a single Claude Code session. If you click reply to any message and start a thread, this will be a new Claude Code session.

Architecture

src/
├── app.py                 # Main entry point
├── config.py              # Configuration
├── database/              # SQLite persistence (models, migrations, repository)
├── claude/                # Claude CLI integration (streaming)
├── handlers/              # Slack command handlers
├── agents/                # Multi-agent orchestration (planner→worker→evaluator)
├── approval/              # Permission & plan approval handling
├── git/                   # Git operations (status, diff, commit, branch)
├── hooks/                 # Event hook system
├── question/              # AskUserQuestion tool support
├── tasks/                 # Background task management
└── utils/                 # Formatters, helpers, validators

Troubleshooting

Problem Solution
Configuration errors on startup Check .env has all required tokens
Commands not appearing Verify slash commands in Slack app settings

License

MIT


Congratulations, you can now use Claude Code from anywhere 🎉💪

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slack_claude_code-0.1.6.tar.gz (87.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slack_claude_code-0.1.6-py3-none-any.whl (113.1 kB view details)

Uploaded Python 3

File details

Details for the file slack_claude_code-0.1.6.tar.gz.

File metadata

  • Download URL: slack_claude_code-0.1.6.tar.gz
  • Upload date:
  • Size: 87.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for slack_claude_code-0.1.6.tar.gz
Algorithm Hash digest
SHA256 5bacdef0f78dc2a83216fc9d12eb79ef7dca91020914660177b886b79744ce87
MD5 87dc621e0cc8538a3be55dd6dcdc2865
BLAKE2b-256 bfeff02d56b1a1a0cf5c77f5978cdc0d49d652ed69121330062cb7a0be2c5406

See more details on using hashes here.

Provenance

The following attestation bundles were made for slack_claude_code-0.1.6.tar.gz:

Publisher: release.yml on djkelleher/slack-claude-code

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file slack_claude_code-0.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for slack_claude_code-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 47de7a8cb290fb72da8a4ceaeecd0667a909ba7749e64d8f3a83138322cf50d3
MD5 d406179d7c38ca40e0a8ccde02741296
BLAKE2b-256 21ce7554a0d4650116948a447bddbdc6fb16b5862636fa005cd8808dfb1bf90d

See more details on using hashes here.

Provenance

The following attestation bundles were made for slack_claude_code-0.1.6-py3-none-any.whl:

Publisher: release.yml on djkelleher/slack-claude-code

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page