Features
- Output streams live to chat as Claude works
- Sticky to-do lists at the bottom of each thread
- Works with Slack and Mattermost, multiple workspaces at once
- Multiple concurrent sessions (one per thread), persisted across bot restarts
- Three permission modes: prompt every action, let Claude classify, or skip prompts entirely
-
Invite teammates to collaborate on a session; they get added as
Co-Authored-By:on Claude's commits - Approve file writes and commands via emoji reactions
- Attach any file (100 MB cap); Claude reads it from disk with full multimodal for images and PDFs
- Claude posts files back into chat (screenshots, generated PDFs, plots, audio)
- Share a Slack or Mattermost permalink and Claude follows the thread
- Git worktrees to isolate changes in branches
- Round-robin across multiple Claude subscriptions or API keys with automatic rate-limit cooldown
Why I built this
I wanted my team to use Claude Code without everyone needing their own setup. Screen sharing works but only one person can type. With claude-threads, colleagues watch Claude work in Slack and can jump in to help, approve actions, or ask questions. All from chat.
After the first minimal version, I built claude-threads using claude-threads. Colleagues watched, asked questions, and caught bugs in real time. It turns out that multiple people guiding the same AI session actually works.
The bot runs on your machine. You control what projects Claude can access.
Commands
| Command | Description |
|---|---|
!help |
Show available commands |
!context |
Show context usage |
!cost |
Show token usage and cost |
!compact |
Compress context |
!cd <path> |
Change working directory |
!permissions <mode> |
Switch between default, auto,
bypass
|
!worktree <branch> |
Create git worktree (also: list,
switch, remove, cleanup)
|
!plugin <cmd> |
Manage Claude Code plugins |
!invite @user |
Invite user (added as Co-Authored-By: on commits)
|
!kick @user |
Remove invited user |
!github-email <email> |
Register your GitHub noreply address for commit attribution |
!update |
Auto-update status (!update now /
!update defer)
|
!release-notes |
What changed in the running version |
!bug <desc> |
Report a bug (creates a GitHub issue) |
!escape |
Interrupt current task |
!stop |
Stop session |
Controls
Permissions
When Claude wants to run a tool:
Plans
When Claude creates a plan:
Questions
Multiple choice:
Session
Interrupt, stop, or resume:
Permission modes
Three ways to control what Claude can run. Pick per session with
!permissions default|auto|bypass, set as a default in
config, or pass --permission-mode on the command line.
| Mode | Behavior |
|---|---|
default 🔐 |
Every tool use prompts the thread for 👍 / ✅ / 👎 |
auto ⚡ |
Claude's classifier auto-approves low-risk actions; high-risk still prompts. Recommended. |
bypass ⚠️ |
No prompts, all tools allowed. Trusted environments only. |
Quickstart
Requires Bun or Node 18+ and Claude Code CLI
bun install -g claude-threads # or: npm install -g claude-threads cd /your/project claude-threadsclick to copy
The setup wizard will guide you through connecting Slack or Mattermost.