364 lines
8.8 KiB
Markdown
364 lines
8.8 KiB
Markdown
|
|
# TaskPing - Claude Code 邮件自动化
|
|||
|
|
|
|||
|
|
TaskPing 是一个智能的邮件自动化工具,可以监听你的邮件回复,并将回复内容自动输入到 Claude Code 中执行。
|
|||
|
|
|
|||
|
|
## 🚀 快速开始
|
|||
|
|
|
|||
|
|
### 1. 配置邮箱
|
|||
|
|
```bash
|
|||
|
|
npm run config
|
|||
|
|
```
|
|||
|
|
按照提示配置你的邮箱信息(SMTP和IMAP)。
|
|||
|
|
|
|||
|
|
### 2. 启动服务
|
|||
|
|
```bash
|
|||
|
|
npm start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 使用流程
|
|||
|
|
1. 当 Claude Code 完成任务时,TaskPing 会发送邮件通知到你的邮箱
|
|||
|
|
2. 直接回复这封邮件,在邮件中写入你想让 Claude Code 执行的下一个命令
|
|||
|
|
3. TaskPing 会自动监听到你的回复,提取命令内容,并自动输入到 Claude Code 中
|
|||
|
|
4. 命令会自动执行,无需任何手动操作
|
|||
|
|
|
|||
|
|
## ✨ 核心特性
|
|||
|
|
|
|||
|
|
### 🎯 智能检测
|
|||
|
|
- 基于Claude Code官方hooks机制
|
|||
|
|
- 自动识别任务完成和等待输入状态
|
|||
|
|
- 无需手动监控,完全自动化
|
|||
|
|
|
|||
|
|
### 📢 多渠道通知
|
|||
|
|
- **桌面通知**:即时本地通知
|
|||
|
|
- **邮件通知**:远程邮件提醒 + 回复执行命令
|
|||
|
|
- 支持自定义通知声音和消息内容
|
|||
|
|
- 同时启用多个通知渠道
|
|||
|
|
|
|||
|
|
### 🏠 远程命令执行
|
|||
|
|
- **邮件回复**:直接回复邮件执行下一步命令
|
|||
|
|
- **自动化流程**:人不在电脑前也能继续对话
|
|||
|
|
- **安全机制**:会话过期、命令过滤、来源验证
|
|||
|
|
|
|||
|
|
### 🌍 跨平台支持
|
|||
|
|
- **macOS**:原生通知中心 + 系统提示音
|
|||
|
|
- **Windows**:Toast通知系统
|
|||
|
|
- **Linux**:libnotify桌面通知
|
|||
|
|
|
|||
|
|
### 🎛️ 灵活配置
|
|||
|
|
- 多语言支持(中文、英文、日文)
|
|||
|
|
- 自定义提示音(支持系统音效)
|
|||
|
|
- 邮件 SMTP/IMAP 配置
|
|||
|
|
- 可调节通知频率和超时时间
|
|||
|
|
|
|||
|
|
## 📦 快速安装
|
|||
|
|
|
|||
|
|
### 自动安装(推荐)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 克隆或下载项目
|
|||
|
|
git clone <repository-url>
|
|||
|
|
cd TaskPing
|
|||
|
|
|
|||
|
|
# 2. 运行安装脚本
|
|||
|
|
node taskping.js install
|
|||
|
|
|
|||
|
|
# 3. 按提示完成配置
|
|||
|
|
# 安装器会自动配置Claude Code的hooks设置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 手动安装
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 测试通知功能
|
|||
|
|
node taskping.js test
|
|||
|
|
|
|||
|
|
# 2. 配置Claude Code
|
|||
|
|
# 将以下内容添加到 ~/.claude/settings.json 的 "hooks" 部分:
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"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会自动工作:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 正常启动Claude Code
|
|||
|
|
claude
|
|||
|
|
|
|||
|
|
# 2. 执行任务
|
|||
|
|
> 请帮我重构这个项目的代码结构
|
|||
|
|
|
|||
|
|
# 3. 当Claude完成任务时,你会收到通知:
|
|||
|
|
# 📱 "任务已完成,Claude正在等待下一步指令"
|
|||
|
|
|
|||
|
|
# 4. 当Claude需要你的输入时,你会收到提醒:
|
|||
|
|
# 📱 "Claude需要您的进一步指导"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 配置管理
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 启动配置工具
|
|||
|
|
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` 等系统音效
|
|||
|
|
|
|||
|
|
### 基础配置示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"language": "zh-CN",
|
|||
|
|
"sound": {
|
|||
|
|
"completed": "Glass",
|
|||
|
|
"waiting": "Tink"
|
|||
|
|
},
|
|||
|
|
"enabled": true,
|
|||
|
|
"timeout": 5
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 邮件配置示例
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"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"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**📧 邮件功能设置指南**: 查看 [邮件功能详细指南](docs/EMAIL_GUIDE.md) 了解完整的配置和使用方法。
|
|||
|
|
|
|||
|
|
## 💡 实际应用场景
|
|||
|
|
|
|||
|
|
### 🏗️ 代码重构项目
|
|||
|
|
```
|
|||
|
|
你:请帮我重构这个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权限问题
|
|||
|
|
如果收不到通知,请检查:
|
|||
|
|
1. 打开"系统偏好设置" → "安全性与隐私" → "隐私"
|
|||
|
|
2. 选择"通知",确保终端应用有权限
|
|||
|
|
3. 或者在"系统偏好设置" → "通知"中启用终端通知
|
|||
|
|
|
|||
|
|
### Linux依赖缺失
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt-get install libnotify-bin
|
|||
|
|
|
|||
|
|
# Fedora/RHEL
|
|||
|
|
sudo dnf install libnotify
|
|||
|
|
|
|||
|
|
# Arch Linux
|
|||
|
|
sudo pacman -S libnotify
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Windows执行策略
|
|||
|
|
```powershell
|
|||
|
|
# 如果遇到PowerShell执行策略限制
|
|||
|
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 测试通知
|
|||
|
|
```bash
|
|||
|
|
# 测试所有通知渠道
|
|||
|
|
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的开发!
|
|||
|
|
|
|||
|
|
### 如何贡献
|
|||
|
|
1. Fork本项目
|
|||
|
|
2. 创建功能分支:`git checkout -b feature/new-feature`
|
|||
|
|
3. 提交更改:`git commit -am 'Add new feature'`
|
|||
|
|
4. 推送分支:`git push origin feature/new-feature`
|
|||
|
|
5. 提交Pull Request
|
|||
|
|
|
|||
|
|
### 开发环境
|
|||
|
|
- Node.js >= 14.0.0
|
|||
|
|
- 支持macOS、Linux、Windows开发
|
|||
|
|
|
|||
|
|
## 📄 许可证
|
|||
|
|
|
|||
|
|
本项目采用 [MIT License](LICENSE) 开源协议。
|
|||
|
|
|
|||
|
|
## 💬 联系我们
|
|||
|
|
|
|||
|
|
- 🐛 **问题反馈**:[提交Issue](https://github.com/TaskPing/TaskPing/issues)
|
|||
|
|
- 💡 **功能建议**:[Discussion](https://github.com/TaskPing/TaskPing/discussions)
|
|||
|
|
- 📧 **邮件联系**:contact@taskping.dev
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
<div align="center">
|
|||
|
|
|
|||
|
|
**让Claude Code工作流程更加智能高效!**
|
|||
|
|
|
|||
|
|
⭐ 如果这个项目对你有帮助,请给我们一个Star!
|
|||
|
|
|
|||
|
|
</div>
|