后台调用 Claude Code 执行任务,任务完成后自动通知。
- 后台执行:在后台启动 Claude Code,不阻塞当前会话
- 自动通知:任务完成后自动发送 Telegram 通知
- 结果保存:所有输出自动保存到本地
- 多形态使用:可作为 CLI 工具、Skill、或库函数调用
# 克隆项目
git clone https://github.com/ethanclaw/claude-code-hooks.git ~/claude-code-hooks
cd ~/claude-code-hooks
# 安装 Hook(当前目录作为项目目录)
./scripts/install.sh# 克隆项目
git clone https://github.com/ethanclaw/claude-code-hooks.git ~/.openclaw/workspace-coder/skills/claude-hooks
# 安装(指定 workspace 目录)
~/.openclaw/workspace-coder/skills/claude-hooks/scripts/install.sh \
-w ~/.openclaw/workspace-coder \
-c ~/.claude| 参数 | 说明 |
|---|---|
-w, --workspace |
Skill 模式:指定 workspace 目录 |
-c, --claude-dir |
Claude 配置目录(默认 ~/.claude) |
所有路径会自动转换为绝对路径。
# 基础用法
./scripts/dispatch.sh -p "实现一个 Python 爬虫"
# 完整参数
./scripts/dispatch.sh \
-p "重构项目测试" \
-n my-task \ # 任务名称
-w ~/projects/myapp \ # 工作目录
-g "-5260404039" \ # Telegram 群组 ID
-m opus # 模型| 参数 | 说明 |
|---|---|
-p, --prompt |
任务描述(必需) |
-n, --name |
任务名称,默认随机 ID |
-w, --workdir |
工作目录,默认当前目录 |
-g, --group |
Telegram 群组 ID,不传则使用配置默认值 |
-m, --model |
模型(sonnet/opus/haiku),默认用 Claude Code 配置 |
-t, --timeout |
超时时间(秒),默认 3600 |
{root}/
├── output/
│ └── {task-id}/
│ ├── meta.json # 任务参数
│ ├── output.txt # 原始输出
│ └── result.json # 解析结果
├── logs/
│ └── {date}.log # 日志
└── config.yaml # 自动生成
./scripts/uninstall.sh这会从 ~/.claude/settings.json 中移除 hooks 配置。
- 安装时会修改 Claude 配置:install.sh 会修改
~/.claude/settings.json - Telegram 通知需要群组 ID:可在 config.yaml 中设置默认群组
- 任务在后台运行:dispatch 会立即返回,任务在后台执行
放入 OpenClaw skills 目录即可:
cp -r ~/.claude-code-hooks ~/.openclaw/workspace-coder/skills/claude-hookssource ~/.claude-code-hooks/scripts/lib/common.sh
dispatch_task "任务描述" "/work/dir" "task-name"