claude-code-remote-remake/README.md

364 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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>