TL;DR
一个 Claude Code 插件,让 Claude 可以往自己的输入框发消息。
核心能力:
- 后台任务完成 → 自动回调 → Claude 继续工作
- 长时间任务 → 定期报告进度
- 定时轮询 → 检查邮件、整理记忆、睡眠机制
- 你不用回来说”继续”,Claude 自己唤醒自己完成多步骤工作
GitHub: https://github.com/shanjiaming/send-to-claude-plugin
痛点
用过 Claude Code 都知道:
你:训练模型,完成后分析结果并生成报告
Claude:开始训练...
[10 分钟后训练完成]
Claude:(沉默)
你:(回来)训练完了吗?
Claude:完了!开始分析...
Claude 不知道后台任务何时完成,多步骤工作流在这里断了。
解决方案
让 Claude 能给自己发消息:
# Claude 写的训练脚本
import os
train_model() # 训练 10 分钟
# 完成后唤醒自己
os.system('send-to-claude "训练完成!准确率 94%,开始分析..."')
当脚本跑完,Claude 的输入框自动出现这条消息,Claude 被唤醒,继续工作。
还可以实现定时轮询:每小时检查邮件、每 4 小时触发睡眠机制、定期整理记忆等。
工作原理
- Claude 运行在 tmux/iTerm2 里,有环境变量
$TMUX或$ITERM_SESSION_ID - Claude 创建的脚本继承这些环境变量
- 脚本调用
send-to-claude→ 通过环境变量找到 Claude 的 session - 发送消息到 Claude 的终端输入
技术实现:
# tmux
tmux send-keys -t $session:$window.$pane "message"
sleep 0.5
tmux send-keys -t $session:$window.$pane "Enter"
# iTerm2
tell session to write text "message"
delay 0.5
tell session to write text ""
安装使用
要求
必须在 tmux 或 iTerm2 中运行 Claude Code。
安装
# 1. 在 Claude Code 中
/plugin marketplace add https://github.com/shanjiaming/send-to-claude-plugin
/plugin install send-to-claude
# 2. 复制粘贴运行
bash ~/.claude/plugins/cache/send-to-claude/send-to-claude/0.1.0/install.sh
使用
装完就能用,直接给多步骤任务:
"训练模型,然后分析结果"
"处理 1000 个文件,每 100 个报告进度"
"下载数据,清洗,训练,部署"
Claude 自动在脚本里加回调,自主完成。
测试:对 Claude 说 “Test the callback mechanism”
对比 Background Agents
| 特性 | send-to-claude | Background Agents |
|---|---|---|
| 任务完成通知 | ✅ | ✅ |
| 任意时刻回调 | ✅ | ❌ 只有完成时 |
| Claude 自主继续 | ✅ | ❌ 需要用户 |
| 多步骤自动化 | ✅ | ❌ 每步需要用户 |
| 定时轮询 | ✅ | ❌ |
技术细节
为什么不轮询?
轮询占用 session、浪费 token、无法处理其他任务。
回调机制:Claude 释放资源,任务完成时精确唤醒,等待时零消耗。
环境变量为什么能工作?
Unix 子进程继承父进程环境变量:
Claude (tmux, 有 $TMUX)
└─ python train.py (继承 $TMUX)
└─ os.system('send-to-claude') (继承 $TMUX)
└─ 读取 $TMUX,找到 Claude session
总结
这个插件让 Claude 从”被动响应”变成”主动持续工作”。
装上之后:
- 不用盯着进度
- 不用回来说”继续”
- 不用手动串步骤
Claude 真的能自己工作了。
GitHub: https://github.com/shanjiaming/send-to-claude-plugin
欢迎 star / issue / PR!
