- 基于 relay-injection.md 方案一实现 - 使用 node-pty 管理 Claude Code 进程 - 支持从邮件回复中提取命令并注入到 CLI - 添加完整的测试工具和使用文档 - 支持多种邮件格式和命令输入方式 功能特性: - 邮件监听和命令提取 - PTY 进程管理和命令注入 - 会话管理和过期控制 - 安全验证(发件人白名单) - 详细的日志和错误处理 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| config | ||
| docs | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| LICENSE | ||
| PROJECT_STRUCTURE.md | ||
| PROJECT_STRUCTURE_NEW.md | ||
| QUICKSTART.md | ||
| README.md | ||
| TaskPing.md | ||
| debug-email.js | ||
| diagnose-automation.js | ||
| email-automation.js | ||
| email-checker.js | ||
| package-lock.json | ||
| package.json | ||
| relay-injection.md | ||
| setup-permissions.js | ||
| simple-start.js | ||
| start-relay-pty.js | ||
| taskping-config.js | ||
| taskping.js | ||
| test-clipboard.js | ||
| test-email-reply.js | ||
README.md
TaskPing - Claude Code 邮件自动化
TaskPing 是一个智能的邮件自动化工具,可以监听你的邮件回复,并将回复内容自动输入到 Claude Code 中执行。
🚀 快速开始
1. 配置邮箱
npm run config
按照提示配置你的邮箱信息(SMTP和IMAP)。
2. 启动服务
npm start
3. 使用流程
- 当 Claude Code 完成任务时,TaskPing 会发送邮件通知到你的邮箱
- 直接回复这封邮件,在邮件中写入你想让 Claude Code 执行的下一个命令
- TaskPing 会自动监听到你的回复,提取命令内容,并自动输入到 Claude Code 中
- 命令会自动执行,无需任何手动操作
✨ 核心特性
🎯 智能检测
- 基于Claude Code官方hooks机制
- 自动识别任务完成和等待输入状态
- 无需手动监控,完全自动化
📢 多渠道通知
- 桌面通知:即时本地通知
- 邮件通知:远程邮件提醒 + 回复执行命令
- 支持自定义通知声音和消息内容
- 同时启用多个通知渠道
🏠 远程命令执行
- 邮件回复:直接回复邮件执行下一步命令
- 自动化流程:人不在电脑前也能继续对话
- 安全机制:会话过期、命令过滤、来源验证
🌍 跨平台支持
- macOS:原生通知中心 + 系统提示音
- Windows:Toast通知系统
- Linux:libnotify桌面通知
🎛️ 灵活配置
- 多语言支持(中文、英文、日文)
- 自定义提示音(支持系统音效)
- 邮件 SMTP/IMAP 配置
- 可调节通知频率和超时时间
📦 快速安装
自动安装(推荐)
# 1. 克隆或下载项目
git clone <repository-url>
cd TaskPing
# 2. 运行安装脚本
node taskping.js install
# 3. 按提示完成配置
# 安装器会自动配置Claude Code的hooks设置
手动安装
# 1. 测试通知功能
node taskping.js test
# 2. 配置Claude Code
# 将以下内容添加到 ~/.claude/settings.json 的 "hooks" 部分:
{
"hooks": {
"Stop": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "node /path/to/TaskPing/taskping.js notify --type completed",
"timeout": 5
}]
}],
"SubagentStop": [{
"matcher": "*",
"hooks": [{
"type": "command",
"command": "node /path/to/TaskPing/taskping.js notify --type waiting",
"timeout": 5
}]
}]
}
}
🎮 使用方法
基本使用
安装完成后,TaskPing会自动工作:
# 1. 正常启动Claude Code
claude
# 2. 执行任务
> 请帮我重构这个项目的代码结构
# 3. 当Claude完成任务时,你会收到通知:
# 📱 "任务已完成,Claude正在等待下一步指令"
# 4. 当Claude需要你的输入时,你会收到提醒:
# 📱 "Claude需要您的进一步指导"
配置管理
# 启动配置工具
node taskping.js config
# 快速查看当前配置
node taskping.js config --show
# 查看系统状态
node taskping.js status
# 测试通知功能
node taskping.js test
# 启动邮件命令中继服务 (NEW!)
node taskping.js relay start
🔧 配置选项
语言设置
zh-CN:简体中文en:英语ja:日语
提示音选择(macOS)
Glass:清脆玻璃音(推荐用于任务完成)Tink:轻柔提示音(推荐用于等待输入)Ping、Pop、Basso等系统音效
基础配置示例
{
"language": "zh-CN",
"sound": {
"completed": "Glass",
"waiting": "Tink"
},
"enabled": true,
"timeout": 5
}
邮件配置示例
{
"email": {
"enabled": true,
"config": {
"smtp": {
"host": "smtp.gmail.com",
"port": 587,
"secure": false,
"auth": {
"user": "your-email@gmail.com",
"pass": "your-app-password"
}
},
"imap": {
"host": "imap.gmail.com",
"port": 993,
"secure": true
},
"from": "TaskPing <your-email@gmail.com>",
"to": "your-email@gmail.com"
}
}
}
📧 邮件功能设置指南: 查看 邮件功能详细指南 了解完整的配置和使用方法。
💡 实际应用场景
🏗️ 代码重构项目
你:请帮我重构这个React组件,提高性能
Claude:开始分析组件结构...
📱 通知:任务完成!
Claude:我找到了3个优化方案,你倾向于哪种?
📱 通知:Claude需要您的进一步指导
📚 文档生成
你:为这个API生成完整的文档
Claude:正在分析API接口...
📱 通知:任务完成!
Claude:文档已生成,需要我添加使用示例吗?
📱 通知:Claude需要您的进一步指导
🐛 Bug调试
你:帮我找出这个内存泄漏的原因
Claude:开始深度分析代码...
📱 通知:任务完成!
Claude:发现了2个可能的原因,需要查看哪个文件?
📱 通知:Claude需要您的进一步指导
📧 远程邮件工作流程
1. 你在家里:启动 Claude Code 任务
2. 你出门了:📧 收到邮件 "任务完成,Claude等待下一步指令"
3. 在路上:回复邮件 "请继续优化代码性能"
4. 自动执行:命令自动在你的电脑上执行
5. 再次收到:📧 "优化完成" 邮件通知
6. 继续回复:进行下一步操作
真正实现远程 AI 编程!🚀
🛠️ 故障排除
macOS权限问题
如果收不到通知,请检查:
- 打开"系统偏好设置" → "安全性与隐私" → "隐私"
- 选择"通知",确保终端应用有权限
- 或者在"系统偏好设置" → "通知"中启用终端通知
Linux依赖缺失
# Ubuntu/Debian
sudo apt-get install libnotify-bin
# Fedora/RHEL
sudo dnf install libnotify
# Arch Linux
sudo pacman -S libnotify
Windows执行策略
# 如果遇到PowerShell执行策略限制
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
测试通知
# 测试所有通知渠道
node taskping.js test
# 手动发送通知
node taskping.js notify --type completed
node taskping.js notify --type waiting
# 查看系统状态
node taskping.js status
📊 项目结构
TaskPing/
├── 📄 README.md # 项目文档
├── 🚀 taskping.js # 主要CLI入口
├── 📋 TaskPing.md # 产品规格文档
├── 📦 package.json # 项目依赖
├── config/ # 配置文件目录
│ ├── defaults/ # 默认配置模板
│ ├── user.json # 用户个人配置
│ └── channels.json # 通知渠道配置
├── src/ # 核心源代码
│ ├── core/ # 核心模块
│ │ ├── config.js # 配置管理器
│ │ ├── logger.js # 日志系统
│ │ └── notifier.js # 通知编排器
│ ├── channels/ # 通知渠道实现
│ │ ├── local/ # 本地通知
│ │ ├── email/ # 邮件通知
│ │ └── chat/ # 聊天应用通知
│ ├── tools/ # 管理工具
│ │ ├── installer.js # 安装器
│ │ └── config-manager.js # 配置管理器
│ └── assets/ # 静态资源
└── docs/ # 文档目录
🔮 发展规划
TaskPing按照产品规格文档分阶段开发:
✅ Phase 1 - 本地通知MVP(已完成)
- 本地桌面通知
- Claude Code hooks集成
- 基础配置管理
✅ Phase 2 - 邮件通知和远程执行(已完成)
- 📧 邮件通知功能
- 🔄 邮件回复命令执行
- 🔒 安全会话管理
- 🛠️ 命令中继服务
🚧 Phase 3 - 多渠道通知(规划中)
- Telegram/Discord/WhatsApp/飞书集成
- 移动端推送通知
- 多渠道命令中继
🌟 Phase 4 - 企业级功能(未来)
- 团队协作功能
- 用户权限管理
- 审计日志
- API 接口
🤝 贡献指南
欢迎参与TaskPing的开发!
如何贡献
- Fork本项目
- 创建功能分支:
git checkout -b feature/new-feature - 提交更改:
git commit -am 'Add new feature' - 推送分支:
git push origin feature/new-feature - 提交Pull Request
开发环境
- Node.js >= 14.0.0
- 支持macOS、Linux、Windows开发
📄 许可证
本项目采用 MIT License 开源协议。
💬 联系我们
- 🐛 问题反馈:提交Issue
- 💡 功能建议:Discussion
- 📧 邮件联系:contact@taskping.dev
让Claude Code工作流程更加智能高效!
⭐ 如果这个项目对你有帮助,请给我们一个Star!