[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-JessyTsui--Claude-Code-Remote":3,"tool-JessyTsui--Claude-Code-Remote":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":32,"env_os":95,"env_gpu":96,"env_ram":96,"env_deps":97,"category_tags":102,"github_topics":78,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":103,"updated_at":104,"faqs":105,"releases":135},4919,"JessyTsui\u002FClaude-Code-Remote","Claude-Code-Remote","Control Claude Code remotely via email、discord、telegram. Start tasks locally, receive notifications when Claude completes them, and send new commands by simply replying to emails.","Claude-Code-Remote 是一款让开发者能够随时随地通过即时通讯软件或邮件远程操控 Claude Code 的开源工具。它主要解决了编程任务必须守在电脑终端前才能启动和监控的痛点，让用户在本地发起任务后，即使离开座位也能通过手机接收完成通知，并直接回复消息下达新指令。\n\n这款工具特别适合需要灵活办公的软件开发人员、运维工程师以及 AI 研究者。无论是通勤途中还是居家休息，用户都能利用碎片时间管理代码任务，甚至支持在 LINE 或 Telegram 群组中进行团队协作。\n\n其技术亮点在于强大的双向交互能力与多平台适配：不仅支持电子邮件、Telegram、LINE 及桌面通知，还能在邮件中完整呈现终端执行轨迹；具备基于 ID 的安全白名单验证，确保操作安全；更创新地集成了 tmux 会话管理，可无缝将命令注入正在运行的终端环境。配合智能声音提醒和历史对话追踪，Claude-Code-Remote 让远程编码协作变得像日常聊天一样简单自然。","# Claude Code Remote\n\nControl [Claude Code](https:\u002F\u002Fclaude.ai\u002Fcode) remotely via multiple messaging platforms. Start tasks locally, receive notifications when Claude completes them, and send new commands by simply replying to messages.\n\n**Supported Platforms:**\n- 📧 **Email** - Traditional SMTP\u002FIMAP integration with execution trace\n- 📱 **Telegram** - Interactive bot with smart buttons ✅ **NEW**\n- 💬 **LINE** - Rich messaging with token-based commands\n- 🖥️ **Desktop** - Sound alerts and system notifications\n\n\u003Cdiv align=\"center\">\n  \n  ### 🎥 Watch Demo Video\n  \n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002F_yrNlDYOJhw\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_1c1bf587a0d5.png\" alt=\"Claude Code Remote Demo\" width=\"100%\">\n    \u003Cbr>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F▶-Watch%20on%20YouTube-red?style=for-the-badge&logo=youtube\" alt=\"Watch on YouTube\">\n  \u003C\u002Fa>\n  \n\u003C\u002Fdiv>\n\n> 🐦 Follow [@Jiaxi_Cui](https:\u002F\u002Fx.com\u002FJiaxi_Cui) for updates and AI development insights\n\n## ✨ Features\n\n- **📧 Multiple Messaging Platforms**: \n  - Email notifications with full execution trace and reply-to-send commands ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_1d4b98229df4.png)\n  - Telegram Bot with interactive buttons and slash commands ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_28c44ae850d2.png)\n  - LINE messaging with token-based commands\n  - Desktop notifications with sound alerts\n- **🔄 Two-way Control**: Reply to messages or emails to send new commands\n- **📱 Remote Access**: Control Claude from anywhere\n- **🔒 Secure**: ID-based whitelist verification for all platforms\n- **👥 Group Support**: Use in LINE groups or Telegram groups for team collaboration\n- **🤖 Smart Commands**: Intuitive command formats for each platform\n- **📋 Multi-line Support**: Send complex commands with formatting\n- **⚡ Smart Monitoring**: Intelligent detection of Claude responses with historical tracking\n- **🔄 tmux Integration**: Seamless command injection into active tmux sessions\n- **📊 Execution Trace**: Full terminal output capture in email notifications\n\n## 📅 Changelog\n\n### August 2025\n- **2025-08-02**: Add full execution trace to email notifications ([#14](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F14) by [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc))\n- **2025-08-01**: Enhanced Multi-Channel Notification System ([#1](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F1) by [@laihenyi](https:\u002F\u002Fgithub.com\u002Flaihenyi) [@JessyTsui](https:\u002F\u002Fgithub.com\u002FJessyTsui))\n  - ✅ **Telegram Integration Completed** - Interactive buttons, real-time commands, smart personal\u002Fgroup chat handling\n  - ✅ **Multi-Channel Notifications** - Simultaneous delivery to Desktop, Telegram, Email, LINE\n  - ✅ **Smart Sound Alerts** - Always-on audio feedback with customizable sounds\n  - ✅ **Intelligent Session Management** - Auto-detection, real conversation content, 24-hour tokens\n- **2025-08-01**: Fix #9 #12: Add configuration to disable subagent notifications ([#10](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F10) by [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc))\n- **2025-08-01**: Implement terminal-style UI for email notifications ([#8](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F8) by [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc))\n- **2025-08-01**: Fix working directory issue - enable claude-remote to run from any directory ([#7](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F7) by [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc))\n\n### July 2025\n- **2025-07-31**: Fix self-reply loop issue when using same email for send\u002Freceive ([#4](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F4) by [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc))\n- **2025-07-28**: Remove hardcoded values and implement environment-based configuration ([#2](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F2) by [@kevinsslin](https:\u002F\u002Fgithub.com\u002Fkevinsslin))\n\n## 📋 TODO List\n\n### Notification Channels\n- ~~**📱 Telegram Integration**~~ ✅ **COMPLETED** - Bot integration with interactive buttons and real-time commands\n- **💬 Discord Integration** - Bot integration for messaging platforms\n- **⚡ Slack Workflow** - Native Slack app with slash commands\n\n### Developer Tools\n- **🤖 AI Tools Support** - Integration with Gemini CLI, Cursor, and other AI development tools\n- **🔀 Git Automation** - Auto-commit functionality, PR creation, branch management\n\n### Usage Analytics\n- **💰 Cost Tracking** - Token usage monitoring and estimated costs\n- **⚡ Performance Metrics** - Execution time tracking and resource usage analysis\n- **📧 Scheduled Reports** - Daily\u002Fweekly usage summaries delivered via email\n\n### Native Apps\n- **📱 Mobile Apps** - iOS and Android applications for remote Claude control\n- **🖥️ Desktop Apps** - macOS and Windows native clients with system integration\n\n## 🚀 Quick Start\n\n### 1. Prerequisites\n\n**System Requirements:**\n- Node.js >= 14.0.0\n- For default PTY mode: no tmux required (recommended for本地直接用)\n- For tmux mode: tmux + an active session with Claude Code running\n\n### 2. Install\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote.git\ncd Claude-Code-Remote\nnpm install\n```\n\n### 3. Interactive Setup (Recommended)\n\n```bash\nnpm run setup\n```\n\n- 引导式填写 Email \u002F Telegram \u002F LINE 配置，生成 `.env`\n- 自动把 Claude hooks 合并进 `~\u002F.claude\u002Fsettings.json`\n- 可随时重跑更新密钥\u002F切换渠道\n- 如需手动配置或离线编辑 `.env`，见下方“手动配置”\n\n### 4. 手动配置（可选，跳过如果已运行 `npm run setup`）\n\n#### Option A: Configure Email (Recommended for Beginners)\n\n```bash\n# Copy example config\ncp .env.example .env\n\n# Edit with your email credentials\nnano .env\n```\n\n**Required email settings:**\n```env\nEMAIL_ENABLED=true\nSMTP_USER=your-email@gmail.com\nSMTP_PASS=your-app-password\nIMAP_USER=your-email@gmail.com  \nIMAP_PASS=your-app-password\nEMAIL_TO=your-notification-email@gmail.com\nALLOWED_SENDERS=your-notification-email@gmail.com\nSESSION_MAP_PATH=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fsrc\u002Fdata\u002Fsession-map.json\n```\n\n📌 **Gmail users**: Use [App Passwords](https:\u002F\u002Fmyaccount.google.com\u002Fsecurity), not your regular password.\n\n#### Option B: Configure Telegram ✅ **NEW**\n\n**Quick Setup:**\n```bash\nchmod +x setup-telegram.sh\n.\u002Fsetup-telegram.sh\n```\n\n**Manual Setup:**\n1. Create bot via [@BotFather](https:\u002F\u002Ft.me\u002FBotFather)\n2. Get your Chat ID from bot API\n3. Configure webhook URL (use ngrok for local testing)\n\n**Required Telegram settings:**\n```env\nTELEGRAM_ENABLED=true\nTELEGRAM_BOT_TOKEN=your-bot-token-here\nTELEGRAM_CHAT_ID=your-chat-id-here\nTELEGRAM_WEBHOOK_URL=https:\u002F\u002Fyour-ngrok-url.app\nSESSION_MAP_PATH=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fsrc\u002Fdata\u002Fsession-map.json\n```\n\n**Optional Telegram settings:**\n```env\n# Force IPv4 connections to Telegram API (default: false)\n# Enable this if you experience connectivity issues with IPv6\nTELEGRAM_FORCE_IPV4=true\n```\n\n**Network Configuration Notes:**\n- **IPv4 vs IPv6**: Some network environments may have unstable IPv6 connectivity to Telegram's API servers\n- **When to use `TELEGRAM_FORCE_IPV4=true`**:\n  - Connection timeouts or failures when sending messages\n  - Inconsistent webhook delivery\n  - Network environments that don't properly support IPv6\n- **Default behavior**: Uses system default (usually IPv6 when available, fallback to IPv4)\n- **Performance impact**: Minimal - only affects initial connection establishment\n\n#### Option C: Configure LINE\n\n**Required LINE settings:**\n```env\nLINE_ENABLED=true\nLINE_CHANNEL_ACCESS_TOKEN=your-token\nLINE_CHANNEL_SECRET=your-secret\nLINE_USER_ID=your-user-id\n```\n\n#### Configure Claude Code Hooks（仅在跳过 `npm run setup` 时需要）\n\nCreate hooks configuration file:\n\n**Method 1: Global Configuration (Recommended)**\n```bash\n# Add to ~\u002F.claude\u002Fsettings.json\n{\n  \"hooks\": {\n    \"Stop\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"node \u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hook-notify.js completed\",\n        \"timeout\": 5\n      }]\n    }],\n    \"SubagentStop\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"node \u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hook-notify.js waiting\",\n        \"timeout\": 5\n      }]\n    }]\n  }\n}\n```\n\n**Method 2: Project-Specific Configuration**\n```bash\n# Set environment variable\nexport CLAUDE_HOOKS_CONFIG=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hooks.json\n```\n\n> **Note**: Subagent notifications are disabled by default. To enable them, set `enableSubagentNotifications: true` in your config. See [Subagent Notifications Guide](.\u002Fdocs\u002FSUBAGENT_NOTIFICATIONS.md) for details.\n\n### 5. 启动 Claude（按你的注入模式选择）\n\n- **默认 PTY 模式（无需 tmux）**：直接在终端运行 `claude-code --config \u002Fpath\u002Fto\u002Fyour\u002Fclaude\u002Fsettings.json`\n- **如果你选择 tmux 模式**：\n  ```bash\n  tmux new-session -d -s claude-session\n  tmux attach-session -t claude-session\n  claude-code --config \u002Fpath\u002Fto\u002Fyour\u002Fclaude\u002Fsettings.json\n  ```\n  > Detach: Ctrl+B 然后 D\n\n> **Note**: Interactive setup 已合并 hooks 到 `~\u002F.claude\u002Fsettings.json`。若跳过，请确保手动配置 hooks。\n\n### 6. Start Services\n\n#### For All Platforms (Recommended)\n```bash\n# Automatically starts all enabled platforms\nnpm run webhooks\n# or\nnode start-all-webhooks.js\n```\n\n#### For Individual Platforms\n\n**For Email:**\n```bash\nnpm run daemon:start\n# or\nnode claude-remote.js daemon start\n```\n\n**For Telegram:**\n```bash\nnpm run telegram\n# or\nnode start-telegram-webhook.js\n```\n\n**For LINE:**\n```bash\nnpm run line\n# or\nnode start-line-webhook.js\n```\n\n### 7. Test Your Setup\n\n**Quick Test:**\n```bash\n# Test all notification channels\nnode claude-hook-notify.js completed\n# Should receive notifications via all enabled platforms\n```\n\n**Full Test:**\n1. Start Claude in tmux session with hooks enabled\n2. Run any command in Claude\n3. Check for notifications (email\u002FTelegram\u002FLINE)\n4. Reply with new command to test two-way control\n\n## 🎮 How It Works\n\n1. **Use Claude normally** in tmux session\n2. **Get notifications** when Claude completes tasks via:\n   - 🔊 **Sound alert** (Desktop)\n   - 📧 **Email notification with execution trace** (if enabled)\n   - 📱 **Telegram message with buttons** (if enabled)\n   - 💬 **LINE message** (if enabled)\n3. **Reply with commands** using any platform\n4. **Commands execute automatically** in Claude\n\n### Platform Command Formats\n\n**Email:**\n```\nSimply reply to notification email with your command\nNo special formatting required\n```\n\n**Telegram:** ✅ **NEW**\n```\nClick smart button to get format:\n📝 Personal Chat: \u002Fcmd TOKEN123 your command here\n👥 Group Chat: @bot_name \u002Fcmd TOKEN123 your command here\n```\n\n**LINE:**\n```\nReply to notification with: Your command here\n(Token automatically extracted from conversation context)\n```\n\n**Local fallback (no tmux)**  \n- 默认 `INJECTION_MODE=pty`：命令通过 PTY\u002F智能粘贴注入，不依赖 tmux  \n- macOS 可自动复制\u002F粘贴到 Claude\u002F终端；若自动注入失败，会把命令复制到剪贴板并弹出提醒\n\n### Advanced Configuration\n\n**Email Notification Options**\n\n1. **Subagent Activities in Email**\n\n   By default, email notifications only show the execution trace. You can optionally enable a separate subagent activities summary section:\n\n   ```json\n   \u002F\u002F In your config\u002Fconfig.json\n   {\n     \"showSubagentActivitiesInEmail\": true  \u002F\u002F Default: false\n   }\n   ```\n\n   When enabled, emails will include:\n   - **Subagent Activities Summary**: A structured list of all subagent activities\n   - **Full Execution Trace**: The complete terminal output\n\n   Since the execution trace already contains all information, this feature is disabled by default to keep emails concise.\n\n2. **Execution Trace Display**\n\n   You can control whether to include the execution trace in email notifications:\n\n   ```json\n   \u002F\u002F In your email channel configuration\n   {\n     \"email\": {\n       \"config\": {\n         \"includeExecutionTrace\": false  \u002F\u002F Default: true\n       }\n     }\n   }\n   ```\n\n   - When `true` (default): Shows a scrollable execution trace section in emails\n   - When `false`: Removes the execution trace section entirely from emails\n\n   This is useful if you find the execution trace too verbose or if your email client has issues with scrollable content.\n\n## 💡 Use Cases\n\n- **Remote Code Reviews**: Start reviews at office, continue from home via any platform\n- **Long-running Tasks**: Monitor progress and guide next steps remotely\n- **Multi-location Development**: Control Claude from anywhere without VPN\n- **Team Collaboration**: Share Telegram groups for team notifications\n- **Mobile Development**: Send commands from phone via Telegram\n\n## 🔧 Commands\n\n### Setup\n```bash\nnpm run setup   # Interactive wizard to create .env and merge hooks into ~\u002F.claude\u002Fsettings.json\n```\n\n### Testing & Diagnostics\n```bash\n# Test all notification channels\nnode claude-hook-notify.js completed\n\n# Test specific platforms\nnode test-telegram-notification.js\nnode test-real-notification.js\nnode test-injection.js\n\n# System diagnostics\nnode claude-remote.js diagnose\nnode claude-remote.js status\nnode claude-remote.js test\n```\n\n### Service Management\n```bash\n# Start all enabled platforms\nnpm run webhooks\n\n# Individual services\nnpm run telegram         # Telegram webhook\nnpm run line            # LINE webhook  \nnpm run daemon:start    # Email daemon\n\n# Stop services\nnpm run daemon:stop     # Stop email daemon\n```\n\n## 🔍 Troubleshooting\n\n### Common Issues\n\n**Not receiving notifications from Claude?**\n1. Check hooks configuration in tmux session:\n   ```bash\n   echo $CLAUDE_HOOKS_CONFIG\n   ```\n2. Verify Claude is running with hooks enabled\n3. Test notification manually:\n   ```bash\n   node claude-hook-notify.js completed\n   ```\n\n**Telegram bot not responding?** ✅ **NEW**\n```bash\n# Test bot connectivity\ncurl -X POST \"https:\u002F\u002Fapi.telegram.org\u002Fbot$TELEGRAM_BOT_TOKEN\u002FsendMessage\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d \"{\\\"chat_id\\\": $TELEGRAM_CHAT_ID, \\\"text\\\": \\\"Test\\\"}\"\n\n# Check webhook status\ncurl \"https:\u002F\u002Fapi.telegram.org\u002Fbot$TELEGRAM_BOT_TOKEN\u002FgetWebhookInfo\"\n```\n\n**Commands not executing in Claude?**\n```bash\n# Check tmux session exists\ntmux list-sessions\n\n# Verify injection mode\ngrep INJECTION_MODE .env  # Should be 'tmux'\n\n# Test injection\nnode test-injection.js\n```\n\n**Not receiving emails?**\n- Run `node claude-remote.js test` to test email setup\n- Check spam folder\n- Verify SMTP settings in `.env`\n- For Gmail: ensure you're using App Password\n\n### Debug Mode\n```bash\n# Enable detailed logging\nLOG_LEVEL=debug npm run webhooks\nDEBUG=true node claude-hook-notify.js completed\n```\n\n## 🛡️ Security\n\n### Multi-Platform Authentication\n- ✅ **Email**: Sender whitelist via `ALLOWED_SENDERS` environment variable\n- ✅ **Telegram**: Bot token and chat ID verification\n- ✅ **LINE**: Channel secret and access token validation\n- ✅ **Session Tokens**: 8-character alphanumeric tokens for command verification\n\n### Session Security\n- ✅ **Session Isolation**: Each token controls only its specific tmux session\n- ✅ **Auto Expiration**: Sessions timeout automatically after 24 hours\n- ✅ **Token-based Commands**: All platforms require valid session tokens\n- ✅ **Minimal Data Storage**: Session files contain only necessary information\n\n## 🤝 Contributing\n\nFound a bug or have a feature request? \n\n- 🐛 **Issues**: [GitHub Issues](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fissues)\n- 🐦 **Updates**: Follow [@Jiaxi_Cui](https:\u002F\u002Fx.com\u002FJiaxi_Cui) on Twitter\n- 💬 **Discussions**: Share your use cases and improvements\n\n## 📄 License\n\nMIT License - Feel free to use and modify!\n\n---\n\n**🚀 Make Claude Code truly remote and accessible from anywhere!**\n\n## ⭐ Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_9b7de7cdfdb2.png)](https:\u002F\u002Fstar-history.com\u002F#JessyTsui\u002FClaude-Code-Remote&Date)\n\n⭐ **Star this repo** if it helps you code more efficiently!\n\n> 💡 **Tip**: Enable multiple notification channels for redundancy - never miss a Claude completion again!\n","# Claude Code 远程\n\n通过多个消息平台远程控制 [Claude Code](https:\u002F\u002Fclaude.ai\u002Fcode)。您可以在本地启动任务，在 Claude 完成任务时接收通知，并只需回复消息即可发送新命令。\n\n**支持的平台：**\n- 📧 **电子邮件** - 传统的 SMTP\u002FIMAP 集成，附带执行轨迹\n- 📱 **Telegram** - 带有智能按钮的交互式机器人 ✅ **新增**\n- 💬 **LINE** - 基于令牌的丰富消息指令\n- 🖥️ **桌面** - 声音提醒和系统通知\n\n\u003Cdiv align=\"center\">\n  \n  ### 🎥 观看演示视频\n  \n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002F_yrNlDYOJhw\">\n    \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_1c1bf587a0d5.png\" alt=\"Claude Code Remote 演示\" width=\"100%\">\n    \u003Cbr>\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F▶-观看%20在%20YouTube-red?style=for-the-badge&logo=youtube\" alt=\"在 YouTube 上观看\">\n  \u003C\u002Fa>\n  \n\u003C\u002Fdiv>\n\n> 🐦 关注 [@Jiaxi_Cui](https:\u002F\u002Fx.com\u002FJiaxi_Cui)，获取最新动态和 AI 开发见解\n\n## ✨ 功能\n\n- **📧 多种消息平台**：\n  - 电子邮件通知，附带完整执行轨迹及回复发送命令 ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_1d4b98229df4.png)\n  - Telegram 机器人，带有交互式按钮和斜杠命令 ![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_28c44ae850d2.png)\n  - LINE 消息，支持基于令牌的命令\n  - 桌面通知，附带声音提醒\n- **🔄 双向控制**：回复消息或邮件即可发送新命令\n- **📱 远程访问**：随时随地控制 Claude\n- **🔒 安全性**：所有平台均采用基于 ID 的白名单验证\n- **👥 团队支持**：可在 LINE 群组或 Telegram 群组中使用，便于团队协作\n- **🤖 智能命令**：各平台提供直观的命令格式\n- **📋 多行支持**：支持格式化的复杂命令\n- **⚡ 智能监控**：智能检测 Claude 的响应，并可进行历史追踪\n- **🔄 tmux 集成**：无缝将命令注入到正在运行的 tmux 会话中\n- **📊 执行轨迹**：电子邮件通知中完整捕获终端输出\n\n## 📅 更改记录\n\n### 2025 年 8 月\n- **2025-08-02**：在电子邮件通知中添加完整的执行轨迹（[#14](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F14)，由 [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc) 提交）\n- **2025-08-01**：增强多渠道通知系统（[#1](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F1)，由 [@laihenyi](https:\u002F\u002Fgithub.com\u002Flaihenyi) 和 [@JessyTsui](https:\u002F\u002Fgithub.com\u002FJessyTsui) 提交）\n  - ✅ **Telegram 集成完成**：交互式按钮、实时命令、智能处理个人与群聊\n  - ✅ **多渠道通知**：同时推送到桌面、Telegram、电子邮件和 LINE\n  - ✅ **智能声音提醒**：始终开启的音频反馈，支持自定义声音\n  - ✅ **智能会话管理**：自动检测、识别对话内容、24 小时有效期令牌\n- **2025-08-01**：修复 #9 和 #12：增加禁用子代理通知的配置（[#10](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F10)，由 [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc) 提交）\n- **2025-08-01**：为电子邮件通知实现终端风格的 UI（[#8](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F8)，由 [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc) 提交）\n- **2025-08-01**：修复工作目录问题——使 claude-remote 能够从任意目录运行（[#7](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F7)，由 [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc) 提交）\n\n### 2025 年 7 月\n- **2025-07-31**：修复使用同一邮箱作为收发邮箱时的自回复循环问题（[#4](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F4)，由 [@vaclisinc](https:\u002F\u002Fgithub.com\u002Fvaclisinc) 提交）\n- **2025-07-28**：移除硬编码值，实施基于环境变量的配置（[#2](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fpull\u002F2)，由 [@kevinsslin](https:\u002F\u002Fgithub.com\u002Fkevinsslin) 提交）\n\n## 📋 待办事项清单\n\n### 通知渠道\n- ~~**📱 Telegram 集成**~~ ✅ **已完成**：机器人集成，支持交互式按钮和实时命令\n- **💬 Discord 集成**：为消息平台集成机器人\n- **⚡ Slack 工作流**：原生 Slack 应用程序，支持斜杠命令\n\n### 开发工具\n- **🤖 AI 工具支持**：与 Gemini CLI、Cursor 等其他 AI 开发工具集成\n- **🔀 Git 自动化**：自动提交功能、PR 创建、分支管理\n\n### 使用分析\n- **💰 成本跟踪**：监控令牌使用情况并估算成本\n- **⚡ 性能指标**：跟踪执行时间并分析资源使用情况\n- **emailer 报告**：每日\u002F每周使用摘要通过电子邮件发送\n\n### 原生应用\n- **📱 移动应用**：iOS 和 Android 应用程序，用于远程控制 Claude\n- **🖥️ 桌面应用**：macOS 和 Windows 原生客户端，支持系统集成\n\n## 🚀 快速入门\n\n### 1. 先决条件\n\n**系统要求：**\n- Node.js >= 14.0.0\n- 对于默认 PTY 模式：无需 tmux（推荐直接在本地使用）\n- 对于 tmux 模式：需要 tmux 和一个正在运行 Claude Code 的会话\n\n### 2. 安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote.git\ncd Claude-Code-Remote\nnpm install\n```\n\n### 3. 交互式设置（推荐）\n\n```bash\nnpm run setup\n```\n\n- 引导式填写电子邮件、Telegram 和 LINE 的配置，生成 `.env`\n- 自动将 Claude 钩子合并到 `~\u002F.claude\u002Fsettings.json`\n- 可随时重新运行以更新密钥或切换渠道\n- 如需手动配置或离线编辑 `.env` 文件，请参阅下方“手动配置”\n\n### 4. 手动配置（可选，如果已运行 `npm run setup` 则可跳过）\n\n#### 选项 A：配置电子邮件（推荐给初学者）\n\n```bash\n# 复制示例配置文件\ncp .env.example .env\n\n# 使用您的电子邮件凭据编辑\nnano .env\n```\n\n**必需的电子邮件设置：**\n```env\nEMAIL_ENABLED=true\nSMTP_USER=your-email@gmail.com\nSMTP_PASS=your-app-password\nIMAP_USER=your-email@gmail.com  \nIMAP_PASS=your-app-password\nEMAIL_TO=your-notification-email@gmail.com\nALLOWED_SENDERS=your-notification-email@gmail.com\nSESSION_MAP_PATH=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fsrc\u002Fdata\u002Fsession-map.json\n```\n\n📌 **Gmail 用户**：请使用[应用专用密码](https:\u002F\u002Fmyaccount.google.com\u002Fsecurity)，而非常规密码。\n\n#### 选项 B：配置 Telegram ✅ **新增**\n\n**快速设置：**\n```bash\nchmod +x setup-telegram.sh\n.\u002Fsetup-telegram.sh\n```\n\n**手动设置：**\n1. 通过 [@BotFather](https:\u002F\u002Ft.me\u002FBotFather) 创建机器人\n2. 从机器人 API 获取您的 Chat ID\n3. 配置 Webhook URL（本地测试可使用 ngrok）\n\n**必需的 Telegram 设置：**\n```env\nTELEGRAM_ENABLED=true\nTELEGRAM_BOT_TOKEN=your-bot-token-here\nTELEGRAM_CHAT_ID=your-chat-id-here\nTELEGRAM_WEBHOOK_URL=https:\u002F\u002Fyour-ngrok-url.app\nSESSION_MAP_PATH=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fsrc\u002Fdata\u002Fsession-map.json\n```\n\n**可选的 Telegram 设置：**\n```env\n# 强制使用 IPv4 连接至 Telegram API（默认为假）\n\n# 如果您遇到 IPv6 连接问题，请启用此项\nTELEGRAM_FORCE_IPV4=true\n```\n\n**网络配置说明：**\n- **IPv4 与 IPv6**：某些网络环境可能存在 Telegram API 服务器的 IPv6 连接不稳定的情况。\n- **何时使用 `TELEGRAM_FORCE_IPV4=true`**：\n  - 发送消息时出现连接超时或失败；\n  - Webhook 消息传递不一致；\n  - 网络环境未正确支持 IPv6。\n- **默认行为**：使用系统默认设置（通常在可用时优先使用 IPv6，不可用时回退到 IPv4）。\n- **性能影响**：极小——仅影响初始连接建立。\n\n#### 选项 C：配置 LINE\n\n**必需的 LINE 设置：**\n```env\nLINE_ENABLED=true\nLINE_CHANNEL_ACCESS_TOKEN=your-token\nLINE_CHANNEL_SECRET=your-secret\nLINE_USER_ID=your-user-id\n```\n\n#### 配置 Claude Code Hooks（仅在跳过 `npm run setup` 时需要）\n\n创建 hooks 配置文件：\n\n**方法 1：全局配置（推荐）**\n```bash\n# 添加到 ~\u002F.claude\u002Fsettings.json\n{\n  \"hooks\": {\n    \"Stop\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"node \u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hook-notify.js completed\",\n        \"timeout\": 5\n      }]\n    }],\n    \"SubagentStop\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"node \u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hook-notify.js waiting\",\n        \"timeout\": 5\n      }]\n    }]\n  }\n}\n```\n\n**方法 2：项目特定配置**\n```bash\n# 设置环境变量\nexport CLAUDE_HOOKS_CONFIG=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hooks.json\n```\n\n> **注意**：子代理通知默认是关闭的。如需启用，请在配置中设置 `enableSubagentNotifications: true`。详情请参阅 [子代理通知指南](.\u002Fdocs\u002FSUBAGENT_NOTIFICATIONS.md)。\n\n### 5. 启动 Claude（按你的注入模式选择）\n\n- **默认 PTY 模式（无需 tmux）**：直接在终端运行 `claude-code --config \u002Fpath\u002Fto\u002Fyour\u002Fclaude\u002Fsettings.json`\n- **如果你选择 tmux 模式**：\n  ```bash\n  tmux new-session -d -s claude-session\n  tmux attach-session -t claude-session\n  claude-code --config \u002Fpath\u002Fto\u002Fyour\u002Fclaude\u002Fsettings.json\n  ```\n  > 分离会话：Ctrl+B 然后 D\n\n> **注意**：交互式设置已将 hooks 合并到 `~\u002F.claude\u002Fsettings.json`。若跳过，请确保手动配置 hooks。\n\n### 6. 启动服务\n\n#### 对所有平台（推荐）\n```bash\n# 自动启动所有已启用的平台\nnpm run webhooks\n# 或\nnode start-all-webhooks.js\n```\n\n#### 对于单个平台\n\n**对于电子邮件：**\n```bash\nnpm run daemon:start\n# 或\nnode claude-remote.js daemon start\n```\n\n**对于 Telegram：**\n```bash\nnpm run telegram\n# 或\nnode start-telegram-webhook.js\n```\n\n**对于 LINE：**\n```bash\nnpm run line\n# 或\nnode start-line-webhook.js\n```\n\n### 7. 测试您的设置\n\n**快速测试：**\n```bash\n# 测试所有通知渠道\nnode claude-hook-notify.js completed\n# 应该通过所有已启用的平台收到通知\n```\n\n**完整测试：**\n1. 在启用了 hooks 的 tmux 会话中启动 Claude；\n2. 在 Claude 中执行任意命令；\n3. 检查通知（电子邮件\u002FTelegram\u002FLINE）；\n4. 回复新命令以测试双向控制。\n\n## 🎮 工作原理\n\n1. **在 tmux 会话中正常使用 Claude**；\n2. **当 Claude 完成任务时接收通知**，方式包括：\n   - 🔊 **桌面声音提醒**；\n   - 📧 **带有执行轨迹的电子邮件通知**（如果启用）；\n   - 📱 **带有按钮的 Telegram 消息**（如果启用）；\n   - 💬 **LINE 消息**（如果启用）；\n3. **使用任意平台回复命令**；\n4. **命令会在 Claude 中自动执行**。\n\n### 各平台的命令格式\n\n**电子邮件：**\n```\n只需回复通知邮件即可发送命令\n无需特殊格式\n```\n\n**Telegram：** ✅ **NEW**\n```\n点击智能按钮获取格式：\n📝 个人聊天：\u002Fcmd TOKEN123 您的命令在这里\n👥 群组聊天：@bot_name \u002Fcmd TOKEN123 您的命令在这里\n```\n\n**LINE：**\n```\n回复通知内容：您的命令在这里\n（令牌会自动从对话上下文中提取）\n```\n\n**本地回退（无 tmux）**  \n- 默认 `INJECTION_MODE=pty`：命令通过 PTY\u002F智能粘贴注入，不依赖 tmux  \n- macOS 可自动复制\u002F粘贴到 Claude\u002F终端；若自动注入失败，会把命令复制到剪贴板并弹出提醒\n\n### 高级配置\n\n**电子邮件通知选项**\n\n1. **电子邮件中的子代理活动**\n\n   默认情况下，电子邮件通知仅显示执行轨迹。您可以选择启用单独的子代理活动摘要部分：\n\n   ```json\n   \u002F\u002F 在您的 config\u002Fconfig.json 中\n   {\n     \"showSubagentActivitiesInEmail\": true  \u002F\u002F 默认：false\n   }\n   ```\n\n   启用后，电子邮件将包含：\n   - **子代理活动摘要**：所有子代理活动的结构化列表；\n   - **完整的执行轨迹**：完整的终端输出。\n\n   由于执行轨迹已经包含了所有信息，此功能默认关闭，以保持邮件简洁。\n\n2. **执行轨迹显示**\n\n   您可以控制是否在电子邮件通知中包含执行轨迹：\n\n   ```json\n   \u002F\u002F 在您的电子邮件通道配置中\n   {\n     \"email\": {\n       \"config\": {\n         \"includeExecutionTrace\": false  \u002F\u002F 默认：true\n       }\n     }\n   }\n   ```\n\n   - 当为 `true`（默认）时：电子邮件中会显示可滚动的执行轨迹部分；\n   - 当为 `false`时：完全移除电子邮件中的执行轨迹部分。\n\n   如果您觉得执行轨迹过于冗长，或者您的电子邮件客户端对可滚动内容有兼容性问题，此功能非常有用。\n\n## 💡 使用场景\n\n- **远程代码评审**：在办公室开始评审，然后在家通过任何平台继续；\n- **长时间运行的任务**：远程监控进度并指导下一步操作；\n- **多地点开发**：无需 VPN 即可在任何地方控制 Claude；\n- **团队协作**：共享 Telegram 群组以进行团队通知；\n- **移动开发**：通过 Telegram 从手机发送命令。\n\n## 🔧 命令\n\n### 设置\n```bash\nnpm run setup   # 交互式向导，用于创建 .env 文件并将 hooks 合并到 ~\u002F.claude\u002Fsettings.json\n```\n\n### 测试与诊断\n```bash\n# 测试所有通知渠道\nnode claude-hook-notify.js completed\n\n# 测试特定平台\nnode test-telegram-notification.js\nnode test-real-notification.js\nnode test-injection.js\n\n# 系统诊断\nnode claude-remote.js diagnose\nnode claude-remote.js status\nnode claude-remote.js test\n```\n\n### 服务管理\n```bash\n# 启动所有已启用的平台\nnpm run webhooks\n\n# 单独的服务\nnpm run telegram         # Telegram webhook\nnpm run line            # LINE webhook  \nnpm run daemon:start    # Email daemon\n\n# 停止服务\nnpm run daemon:stop     # 停止 email 守护进程\n```\n\n## 🔍 故障排除\n\n### 常见问题\n\n**未收到来自 Claude 的通知？**\n1. 检查 tmux 会话中的 hooks 配置：\n   ```bash\n   echo $CLAUDE_HOOKS_CONFIG\n   ```\n2. 确认 Claude 正在运行且启用了 hooks；\n3. 手动测试通知：\n   ```bash\n   node claude-hook-notify.js completed\n   ```\n\n**Telegram 机器人没有响应？** ✅ **NEW**\n```bash\n# 测试机器人连通性\ncurl -X POST \"https:\u002F\u002Fapi.telegram.org\u002Fbot$TELEGRAM_BOT_TOKEN\u002FsendMessage\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d \"{\\\"chat_id\\\": $TELEGRAM_CHAT_ID, \\\"text\\\": \\\"Test\\\"}\"\n\n# 检查 webhook 状态\ncurl \"https:\u002F\u002Fapi.telegram.org\u002Fbot$TELEGRAM_BOT_TOKEN\u002FgetWebhookInfo\"\n```\n\n**Claude 中命令未执行？**\n```bash\n# 检查 tmux 会话是否存在\ntmux list-sessions\n\n# 验证注入模式\ngrep INJECTION_MODE .env  # 应为 'tmux'\n\n# 测试注入\nnode test-injection.js\n```\n\n**未收到邮件？**\n- 运行 `node claude-remote.js test` 来测试邮件设置\n- 检查垃圾邮件文件夹\n- 验证 `.env` 文件中的 SMTP 设置\n- 对于 Gmail：确保使用应用专用密码\n\n### 调试模式\n```bash\n# 启用详细日志记录\nLOG_LEVEL=debug npm run webhooks\nDEBUG=true node claude-hook-notify.js completed\n```\n\n## 🛡️ 安全性\n\n### 多平台认证\n- ✅ **邮箱**: 通过 `ALLOWED_SENDERS` 环境变量进行发件人白名单管理\n- ✅ **Telegram**: Bot Token 和 Chat ID 验证\n- ✅ **LINE**: Channel Secret 和 Access Token 验证\n- ✅ **会话令牌**: 8 位字母数字组合的令牌用于命令验证\n\n### 会话安全\n- ✅ **会话隔离**: 每个令牌仅控制其特定的 tmux 会话\n- ✅ **自动过期**: 会话在 24 小时后自动超时\n- ✅ **基于令牌的命令**: 所有平台均需有效的会话令牌\n- ✅ **最小化数据存储**: 会话文件仅包含必要信息\n\n## 🤝 贡献\n\n发现 bug 或有功能需求？\n\n- 🐛 **问题**: [GitHub Issues](https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fissues)\n- 🐦 **更新**: 关注 Twitter 上的 [@Jiaxi_Cui](https:\u002F\u002Fx.com\u002FJiaxi_Cui)\n- 💬 **讨论**: 分享您的使用场景和改进建议\n\n## 📄 许可证\n\nMIT 许可证 - 欢迎自由使用和修改！\n\n---\n\n**🚀 让 Claude 代码真正实现远程化，随时随地访问！**\n\n## ⭐ 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_readme_9b7de7cdfdb2.png)](https:\u002F\u002Fstar-history.com\u002F#JessyTsui\u002FClaude-Code-Remote&Date)\n\n⭐ 如果这个项目帮助您更高效地编码，请给它点个星吧！\n\n> 💡 **提示**: 启用多个通知渠道以增加冗余——再也不错过 Claude 的任何完成结果了！","# Claude-Code-Remote 快速上手指南\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **Node.js**: 版本 >= 14.0.0\n*   **运行模式选择**:\n    *   **默认 PTY 模式（推荐）**: 无需安装额外工具，适合本地直接运行。\n    *   **tmux 模式**: 需安装 `tmux` 并保持一个活跃会话（适用于远程服务器场景）。\n*   **网络环境**: 若使用 Telegram 渠道且遇到连接超时，可能需要在配置中强制启用 IPv4。\n\n## 安装步骤\n\n### 1. 克隆项目与安装依赖\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote.git\ncd Claude-Code-Remote\nnpm install\n```\n> 💡 **国内加速提示**: 若 `npm install` 速度较慢，可临时切换至国内镜像源：\n> `npm config set registry https:\u002F\u002Fregistry.npmmirror.com` 然后重新运行 `npm install`。\n\n### 2. 交互式配置（推荐）\n\n运行以下命令启动向导，自动完成邮箱\u002FTelegram\u002FLINE 配置及 Claude Hooks 注入：\n\n```bash\nnpm run setup\n```\n\n该脚本将：\n*   引导填写各平台凭证，生成 `.env` 文件。\n*   自动将通知钩子合并至 `~\u002F.claude\u002Fsettings.json`。\n*   支持随时重跑以更新密钥或切换通知渠道。\n\n### 3. 手动配置（可选）\n\n若跳过上述步骤，需手动编辑 `.env` 文件并配置 Hooks。\n\n**A. 配置环境变量 (.env)**\n复制示例文件并编辑：\n```bash\ncp .env.example .env\nnano .env\n```\n\n*   **Email 配置示例**:\n    ```env\n    EMAIL_ENABLED=true\n    SMTP_USER=your-email@gmail.com\n    SMTP_PASS=your-app-password\n    IMAP_USER=your-email@gmail.com  \n    IMAP_PASS=your-app-password\n    EMAIL_TO=your-notification-email@gmail.com\n    ALLOWED_SENDERS=your-notification-email@gmail.com\n    SESSION_MAP_PATH=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fsrc\u002Fdata\u002Fsession-map.json\n    ```\n    > 📌 **注意**: Gmail 用户请使用 [应用专用密码](https:\u002F\u002Fmyaccount.google.com\u002Fsecurity)，而非登录密码。\n\n*   **Telegram 配置示例**:\n    ```env\n    TELEGRAM_ENABLED=true\n    TELEGRAM_BOT_TOKEN=your-bot-token-here\n    TELEGRAM_CHAT_ID=your-chat-id-here\n    TELEGRAM_WEBHOOK_URL=https:\u002F\u002Fyour-ngrok-url.app\n    SESSION_MAP_PATH=\u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fsrc\u002Fdata\u002Fsession-map.json\n    # 若遇网络连接问题，可开启此项\n    TELEGRAM_FORCE_IPV4=true\n    ```\n\n**B. 配置 Claude Hooks (若未运行 setup)**\n确保 `~\u002F.claude\u002Fsettings.json` 包含以下内容（路径需替换为实际绝对路径）：\n\n```json\n{\n  \"hooks\": {\n    \"Stop\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"node \u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hook-notify.js completed\",\n        \"timeout\": 5\n      }]\n    }],\n    \"SubagentStop\": [{\n      \"matcher\": \"*\",\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"node \u002Fyour\u002Fpath\u002Fto\u002FClaude-Code-Remote\u002Fclaude-hook-notify.js waiting\",\n        \"timeout\": 5\n      }]\n    }]\n  }\n}\n```\n\n## 基本使用\n\n### 1. 启动服务\n\n根据需求选择启动方式：\n\n*   **启动所有已启用的平台（推荐）**:\n    ```bash\n    npm run webhooks\n    # 或\n    node start-all-webhooks.js\n    ```\n\n*   **仅启动特定平台**:\n    *   Email: `npm run daemon:start`\n    *   Telegram: `npm run telegram`\n    *   LINE: `npm run line`\n\n### 2. 运行 Claude\n\n*   **PTY 模式**: 直接在终端运行：\n    ```bash\n    claude-code --config \u002Fpath\u002Fto\u002Fyour\u002Fclaude\u002Fsettings.json\n    ```\n*   **tmux 模式**:\n    ```bash\n    tmux new-session -d -s claude-session\n    tmux attach-session -t claude-session\n    claude-code --config \u002Fpath\u002Fto\u002Fyour\u002Fclaude\u002Fsettings.json\n    ```\n    *(分离会话快捷键：Ctrl+B 然后 D)*\n\n### 3. 测试与交互\n\n**验证通知**:\n运行以下命令测试通知渠道是否通畅：\n```bash\nnode claude-hook-notify.js completed\n```\n您应收到来自已启用平台（邮件\u002FTelegram\u002FLINE\u002F桌面弹窗）的通知。\n\n**完整工作流**:\n1.  在 Claude 中执行任意代码任务。\n2.  任务完成后，您将收到通知（含执行轨迹）。\n3.  **直接回复**该消息即可发送新指令给 Claude：\n    *   **Email**: 直接回复邮件正文。\n    *   **Telegram**: 点击智能按钮或使用 `\u002Fcmd \u003CTOKEN> 你的指令`。\n    *   **LINE**: 直接回复消息内容。\n4.  Claude 将自动接收并执行您的回复指令。","资深后端工程师李明在周末外出露营时，突然收到生产环境紧急报警，需要立即排查日志并修复一个复杂的并发 Bug。\n\n### 没有 Claude-Code-Remote 时\n- **响应严重滞后**：李明身处户外无电脑环境，无法远程连接开发机启动调试任务，只能焦急等待返回酒店。\n- **信息获取断层**：即使勉强用手机 SSH 连接，狭小的屏幕难以查看完整的终端执行轨迹和长日志输出，极易遗漏关键错误。\n- **交互操作繁琐**：在移动端输入复杂的多行修复命令极其困难，且无法直观监控 AI 的实时思考与执行过程。\n- **协作沟通受阻**：无法将实时的修复进度和完整报告直接转发给团队群组，导致协同效率低下。\n\n### 使用 Claude-Code-Remote 后\n- **随时随地启动**：李明直接在 Telegram 或邮件中回复指令，即可远程触发本地开发机的 Claude Code 开始分析代码库。\n- **全景执行追踪**：任务完成后，系统自动将包含完整终端输出和执行轨迹的详细报告推送到他的手机，如同亲临现场。\n- **双向便捷控制**：发现新线索时，他只需在邮件或聊天窗口直接回复新的自然语言命令，即可让 AI 继续深入排查或应用修复。\n- **智能即时通知**：配合桌面端声音警报和多通道消息同步，确保他在任何场景下都能第一时间感知任务状态并介入决策。\n\n核心价值在于打破物理设备限制，将强大的本地 AI 编程能力延伸至任意通讯终端，实现真正的“零延迟”远程研发运维。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FJessyTsui_Claude-Code-Remote_1d4b9822.png","JessyTsui","Jiaxi Cui","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FJessyTsui_60f56025.jpg","Building https:\u002F\u002FCerul.ai in public\r\nVideo retrieval, indexing & embeddings for AI agents API ","cerul.ai","Hangzhou",null,"Jiaxi_Cui","https:\u002F\u002Fcerul.ai","https:\u002F\u002Fgithub.com\u002FJessyTsui",[83,87],{"name":84,"color":85,"percentage":86},"JavaScript","#f1e05a",97.1,{"name":88,"color":89,"percentage":90},"Shell","#89e051",2.9,1199,130,"2026-04-06T06:46:21","MIT","Linux, macOS, Windows","未说明",{"notes":98,"python":96,"dependencies":99},"该工具基于 Node.js 运行，非 Python AI 模型，因此无 GPU 和特定显存需求。核心依赖为 Node.js 14+。支持两种运行模式：默认 PTY 模式（无需 tmux，推荐本地直接使用）和 tmux 模式（需安装 tmux 并保持会话运行）。配置通过交互式脚本或手动编辑 .env 文件完成，需设置 Email、Telegram 或 LINE 的凭证。若使用 Gmail 需应用专用密码。桌面通知支持声音提醒。",[100,101],"Node.js >= 14.0.0","tmux (可选，用于 tmux 模式)",[13,52],"2026-03-27T02:49:30.150509","2026-04-07T14:37:09.995890",[106,111,116,121,126,131],{"id":107,"question_zh":108,"answer_zh":109,"source_url":110},22322,"为什么 Claude 会将自己的回复误认为是新提示并陷入无限循环？","这是因为配置错误导致的。如果将 `SMTP_USER`（发送邮箱）和 `ALLOWED_SENDERS`（允许接收的邮箱）设置为同一个邮箱地址，系统会读取自己发出的邮件并将其作为新任务处理，从而形成死循环。\n\n解决方案：\n1. **配置区分**：确保 `SMTP_USER` 和监控收件箱的邮箱（或 `ALLOWED_SENDERS`）使用不同的邮箱地址。\n2. **系统机制**：项目已更新逻辑，通过本地 JSON 数据库存储发出消息的 ID。当系统收到带有匹配 ID 的邮件时，会自动忽略并删除记录，从而从代码层面防止自回环。","https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fissues\u002F3",{"id":112,"question_zh":113,"answer_zh":114,"source_url":115},22323,"在多个 tmux 会话中运行时，为什么只有一个会话能成功发送邮件？","这通常不是 tmux 会话本身的问题，而是由于 `.env` 配置文件使用了**相对路径**加载，导致只有在项目根目录启动的会话才能正确读取配置。\n\n解决方案：\n维护者已修复此问题，将 `claude-remote.js` 和 `relay-pty.js` 中的配置加载方式改为**绝对路径**。现在工具可以从任何目录运行。如果您遇到此问题，请确保拉取最新代码，或手动修改脚本以使用绝对路径加载环境变量。","https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fissues\u002F5",{"id":117,"question_zh":118,"answer_zh":119,"source_url":120},22324,"运行 Telegram Webhook 时出现 'Error: listen EADDRINUSE' 错误怎么办？","该错误表示端口已被占用（例如日志中的 `address already in use :::3001`）。\n\n原因与解决步骤：\n1. **检查进程**：可能有另一个实例正在运行并占用了 3001 端口。\n2. **终止占用进程**：在 macOS\u002FLinux 上，可以使用命令 `lsof -i :3001` 查找占用端口的进程 ID (PID)，然后使用 `kill -9 \u003CPID>` 终止它。\n3. **避免重复启动**：确保不要多次运行 `node start-telegram-webhook.js` 脚本。","https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fissues\u002F28",{"id":122,"question_zh":123,"answer_zh":124,"source_url":125},22325,"如何在最终的通知邮件中包含代理的完整推理过程或执行日志？","目前的设计已经支持在邮件中包含完整的处理过程。为了保持邮件整洁，建议采用以下优化方案：\n1. **折叠显示**：利用 HTML 的 `\u003Cdetails>` 标签将完整日志默认折叠，用户点击后可展开查看。\n2. **长度限制**：对于上下文很长的任务，可以引入类似 `traceMaxChars` 的配置项来限制日志长度。\n3. **快速操作**：未来可能支持邮件内的快速操作按钮（如“显示完整上下文”），以便更好地管理长线程对话。","https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fissues\u002F11",{"id":127,"question_zh":128,"answer_zh":129,"source_url":130},22326,"该项目是否支持 Windows 操作系统？","根据现有 Issues 数据，关于 Windows 支持的具体确认信息尚未在评论中明确给出（相关提问因超时无回复而关闭）。但考虑到项目依赖 `tmux` 会话管理和 AppleScript（用于触发通知），这些通常是 Unix\u002FLinux\u002FmacOS 特有的工具。\n\n建议：\nWindows 用户可能需要通过 WSL (Windows Subsystem for Linux) 环境来运行此项目，或者等待官方明确添加对 Windows 原生环境的适配。在安装前请确保您的环境满足 Node.js 及相关依赖要求。","https:\u002F\u002Fgithub.com\u002FJessyTsui\u002FClaude-Code-Remote\u002Fissues\u002F32",{"id":132,"question_zh":133,"answer_zh":134,"source_url":130},22327,"如何提交一个高质量的 Issue 报告或提问？","为了确保问题能被快速响应，请遵循以下标题命名规则和模板：\n\n1. **标题格式**：\n   - 提问请使用 `[QUESTION]` 前缀，例如：`[QUESTION] How to configure environment variables on Windows?`\n   - 报错请使用 `[BUG]` 前缀，例如：`[BUG] Installation fails on Windows with Node 18`\n   - 避免使用模糊的标题如 \"Help\" 或 \"Problem\"。\n\n2. **内容要求**：\n   - **Bug 报告**：需包含复现步骤、预期行为、实际行为、环境信息（Node 版本、OS）以及完整的错误日志。\n   - **问题咨询**：需说明您尝试过的方法、具体的上下文以及相关的配置细节。",[]]