返回市场
slack-克劳德代码集成

slack-克劳德代码集成

作者:engineers-hub-ltd-in-house-project5 星标更新:2025-06-30

项目介绍

Slack → Claude Code 统合项目

从Slack操作Claude Code的集成系统。支持多个开发团队共享并使用Claude Code。

🎯 概述

该项目通过Slack作为接口来操作Claude Code。使用MCP(Model Context Protocol)将Claude Code封装为服务器,并通过Slack Bot连接。

架构

Slack → Slack Bot → Claude Code MCP Server → Claude Code CLI

主要功能

  • Slack提及: 使用 @ClaudeBot 来调用Claude Code
  • 直接消息: 与Bot进行私密工作
  • 斜杠命令: 使用 /claude 快速执行命令
  • 多项目支持: 使用 --project 选项切换多个项目
  • 团队共享: 多个成员可以使用相同的Claude Code环境

🚀 设置指南

前提条件

  • Node.js 22以上(推荐)或Node.js 20以上
  • npm 或 yarn
  • TypeScript基础(开发时)
  • 已安装Claude Code CLI(npm install -g @anthropic-ai/claude-code
  • Slack工作区管理员权限
  • Docker & Docker Compose(可选)

步骤 1: 创建和配置Slack应用

1-1. 创建新的Slack应用

  1. 访问 https://api.slack.com/apps
  2. 点击 "创建新应用"
  3. 选择 "从头开始"
  4. 选择应用名称(例如:Claude Code Bot)和工作区
  5. 点击 "创建应用"

1-2. 启用Socket模式

  1. 在左侧菜单中选择 "Socket模式"
  2. "启用Socket模式" 开关打开
  3. 弹出窗口提示生成App级Token

1-3. 生成App级Token

  1. 输入Token名称(例如:socket-token
  2. 点击 "添加范围" 按钮
  3. 选择 connections:write
  4. 点击 "生成" 按钮
  5. 复制生成的Token(xapp-1-...)并保存

1-4. 配置OAuth和权限

  1. 在左侧菜单中选择 "OAuth和权限"
  2. 滚动到 "范围" 部分
  3. "Bot Token范围" 中点击 "添加一个OAuth范围"
  4. 添加以下范围:
    • app_mentions:read - 读取提及
    • chat:write - 发送消息
    • chat:write.public - 发送到公共频道
    • commands - 接收斜杠命令
    • im:history - 读取DM历史
    • im:read - 读取DM
    • im:write - 发送DM
    • users:read - 读取用户信息(可选)

1-5. 配置事件订阅

  1. 在左侧菜单中选择 "事件订阅"
  2. "启用事件" 开关打开
  3. 请求URL在使用Socket模式时不需要设置
  4. "订阅机器人事件" 部分添加以下内容:
    • app_mention - @提及事件
    • message.im - 直接消息事件
  5. 点击 "保存更改"

1-6. 配置斜杠命令

  1. 在左侧菜单中选择 "斜杠命令"
  2. 点击 "创建新命令"
  3. 输入以下信息:
    • 命令: /claude
    • 请求URL: https://example.com (在使用Socket模式时不会使用)
    • 短描述: Claude Code助手
    • 使用提示: [任务说明] [--project /path/to/project]
  4. 点击 "保存"

1-7. 确认应用清单(可选)

  1. 在左侧菜单中选择 "应用清单"
  2. 确认设置是否正确反映

1-8. 在工作区中安装应用

  1. 在左侧菜单中选择 "安装应用"
  2. 点击 "安装到工作区" 按钮
  3. 在权限确认页面点击 "允许"
  4. 复制并保存 Bot用户OAuth Token (xoxb-...)

1-9. 从基本信息获取认证信息

  1. 在左侧菜单中选择 "基本信息"
  2. "应用凭证" 部分复制以下内容:
    • 签名密钥: 应用的签名密钥

步骤 2: 设置项目

2-1. 克隆仓库

# 从GitHub克隆(或直接下载)
git clone https://github.com/your-org/slack-claude-code-integration.git
cd slack-claude-code-integration

# 或直接使用项目目录
cd /home/yusuke/engineers-hub.ltd/in-house-project/slack-claude-code-integration

2-2. 设置环境变量

# 从 .env.example 创建 .env 文件
cp .env.example .env

# 编辑 .env 文件
nano .env  # 或使用您喜欢的编辑器

.env文件内容:

# Slack应用认证信息(步骤1中获取的值)
SLACK_BOT_TOKEN=xoxb-your-bot-token-here
SLACK_SIGNING_SECRET=your-signing-secret-here
SLACK_APP_TOKEN=xapp-your-app-token-here

# Claude Code设置
CLAUDE_PATH=claude  # Claude CLI路径(通常保持不变)
PROJECT_PATH=/home/yusuke/your-project  # 默认操作项目的路径

# 调试设置
DEBUG=true  # 开发时设为true

2-3. 确认Claude Code CLI

# 确认已安装Claude CLI
which claude

# 如果未安装
npm install -g @anthropic-ai/claude-code

# 确认认证已完成
claude --version

步骤 3: 安装依赖项

# 在根目录运行
npm run setup

# 构建TypeScript
npm run build

# 或单独安装
npm install  # 在根目录
cd claude-code-mcp && npm install && cd ..
cd slack-bot && npm install && cd ..
npm run build  # 构建TypeScript

步骤 4: 启动应用程序

4-1. 本地运行(开发环境)

# 开发模式启动(带有自动构建和热重载的TypeScript)
npm run dev

# 或单独启动
# 终端1: TypeScript监视模式
npm run build:watch

# 终端2: MCP服务器
npm run start:mcp

# 终端3: Slack Bot
npm run start:bot

正常启动时的输出示例:

> slack-claude-code-integration@1.0.0 dev
> npm run build && concurrently "npm run build:watch" "npm run start:mcp" "npm run start:bot"

[0] TypeScript编译完成
[1] 监视文件变化...
[2] [MCP] Claude Code MCP服务器已启动
[2] [MCP] Claude路径: claude
[2] [MCP] 项目路径: /home/yusuke/your-project
[3] 连接到Claude Code MCP服务器...
[3] 已连接到Claude Code MCP服务器
[3] 可用工具: [ { 名称: 'claude_code', ... } ]
[3] ⚡️ Slack Claude Code Bot正在运行!
[3] 项目路径: /home/yusuke/your-project

4-2. Docker运行(推荐用于生产环境)

# 构建Docker镜像
npm run docker:build

# 或
docker-compose build

# 启动服务
npm run docker:up

# 或
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止
npm run docker:down

步骤 5: 验证应用程序运行

5-1. 启动验证

正常启动后会显示如下日志:

[MCP] Claude Code MCP服务器已启动
[MCP] Claude路径: claude
[MCP] 项目路径: /home/yusuke/engineers-hub.ltd/in-house-project
连接到Claude Code MCP服务器...
已连接到Claude Code MCP服务器
可用工具: [
  {
    "名称": "claude_code",
    "描述": "在项目目录中执行Claude Code命令",
    "输入模式": { ... }
  }
]
[INFO]  socket-mode:SocketModeClient:0 正在建立与Slack的新连接...
⚡️ Slack Claude Code Bot正在运行!
项目路径: /home/yusuke/engineers-hub.ltd/in-house-project
🧪 正在测试模式下运行 - 使用echo命令
[INFO]  socket-mode:SocketModeClient:0 已连接到Slack

5-2. 运行模式

测试模式(默认):

  • TEST_MODE=true 时,实际使用的是echo命令而非Claude Code
  • 可以安全地进行测试
  • 示例: 输入“列出文件” -> 输出“Claude将会执行: '列出文件' 在 /path/to/project”

生产模式:

  • TEST_MODE=false 设置后,实际执行Claude Code
  • 可以进行实际的文件操作或代码修改

5-3. 从测试模式切换到生产模式

方法1: 通过环境变量设置(推荐)

# 停止应用程序(Ctrl+C)后
# 在 .env 文件中添加
echo "TEST_MODE=false" >> .env

# 或直接编辑
nano .env
# 添加 TEST_MODE=false

# 重新启动应用程序
./start-test.sh

方法2: 编辑启动脚本

# 编辑 start-test.sh
export TEST_MODE=false  # 从 true 更改为 false

方法3: 直接在代码中设置

// slack-bot/index.js 的第263行附近
process.env.TEST_MODE = 'false'; // 从 'true' 更改为 'false'

步骤 6: 在Slack中测试和开始使用

6-1. 将Bot邀请到频道

  1. 打开想要测试的Slack频道
  2. 输入以下命令:
    /invite @Claude Code Bot
    
    (Bot名称为创建时设定的名称)

6-2. 初始测试

帮助消息:

@Claude Code Bot help

响应示例:

你好!你可以执行Claude Code命令。

使用方法:

@ClaudeBot <你的指令> @ClaudeBot <你的指令> --project /path/to/project


示例:
• @ClaudeBot 执行这个项目的测试
• @ClaudeBot 查看package.json的内容
• @ClaudeBot 修复src/index.js中的错误

6-3. 测试模式下的操作验证

获取文件列表(测试模式):

@Claude Code Assistant 列出文件

响应(测试模式):

Claude将会执行: '列出文件' 在 /home/yusuke/engineers-hub.ltd/in-house-project

⚠️ 注意: Bot名称应替换为您实际设置的名称(例如:@Claude Code Assistant)。

6-4. 生产模式下的实际使用示例

检查项目结构:

@Claude Code Bot 告诉我这个项目的结构

检查文件:

@Claude Code Bot 查看package.json的内容

修复代码:

@Claude Code Bot 修复src/index.js中的错误

执行测试:

@Claude Code Bot 执行测试并告诉我结果

在其他项目中执行:

@Claude Code Bot 修复构建错误 --project /home/user/web-app
@Claude Code Bot 执行测试 --project /home/user/api-server

步骤 7: 应用程序管理

7-1. 启动应用程序

开发环境启动:

# 简单启动
cd /path/to/slack-claude-code-integration
npm run dev

# 测试模式启动
./start-test.sh

# 后台启动
nohup npm run dev > app.log 2>&1 &

生产环境启动(systemd服务示例):

# /etc/systemd/system/slack-claude-bot.service
[Unit]
Description=Slack Claude Code Bot
After=network.target

[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/slack-claude-code-integration
Environment="NODE_ENV=production"
Environment="TEST_MODE=false"
ExecStartPre=/usr/bin/npm run build
ExecStart=/usr/bin/node dist/slack-bot/index.js
Restart=always
RestartSec=1

7-2. 进程管理

使用PM2管理(推荐):

# 安装PM2
npm install -g pm2

# 构建TypeScript
npm run build

# 启动应用程序
pm2 start dist/slack-bot/index.js --name slack-claude-bot

# 查看日志
pm2 logs slack-claude-bot

# 重启
pm2 restart slack-claude-bot

# 停止
pm2 stop slack-claude-bot

# 设置自动启动
pm2 startup
pm2 save

7-3. 日志管理

查看日志文件:

# 使用PM2时
pm2 logs slack-claude-bot --lines 100

# 直接运行时
tail -f app.log

# 只查看错误日志
grep ERROR app.log

# 查看MCP服务器的日志
grep "[MCP]" app.log

设置日志轮转:

# /etc/logrotate.d/slack-claude-bot
/path/to/logs/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0640 user group
}

📖 详细使用方法

三种使用方式

1. 提及(在频道内的使用)

在频道内提及 @Claude Code Bot 来使用:

@Claude Code Bot 执行测试并告诉我结果
@Claude Code Bot 修复src/components/Button.tsx中的错误
@Claude Code Bot 创建新功能的分支
@Claude Code Bot 改善这个项目的README

优点:

  • 团队所有人都能查看工作内容
  • 保留历史记录,便于知识共享
  • 可以继续在讨论线程中讨论

2. 直接消息(私人工作)

通过与Bot的直接消息进行个人工作:

执行测试
更新README.md
查找并修复错误
进行代码审查

优点:

  • 不向其他人展示试验过程
  • 适合个人学习和实验
  • 不污染频道

3. 斜杠命令(快速执行)

从任何地方使用 /claude 命令执行:

/claude 运行测试
/claude 修复auth.js中的错误
/claude 分析性能问题
/claude 为user.service.ts创建单元测试

优点:

  • 最快速执行
  • 从任何频道都可以使用
  • 执行结果仅对自己可见(其他人看不到)

项目切换

默认项目

.env中设置的PROJECT_PATH是默认使用的:

@Claude Code Bot 更新包

指定其他项目

使用 --project 选项操作其他项目:

@Claude Code Bot 修复构建错误 --project /home/user/web-app
@Claude Code Bot 执行测试 --project /home/user/api-server

希望这些信息对您有所帮助!