diff --git a/HOW_TO_USE_EMAIL_REPLY.md b/HOW_TO_USE_EMAIL_REPLY.md
deleted file mode 100644
index 2b0d7fc..0000000
--- a/HOW_TO_USE_EMAIL_REPLY.md
+++ /dev/null
@@ -1,156 +0,0 @@
-# TaskPing Email Reply Feature Guide
-
-**English** | [中文](./HOW_TO_USE_EMAIL_REPLY_ZH.md)
-
-## 📋 Complete Usage Workflow
-
-### Step 1: Start Email Listening Service
-Run in Terminal 1:
-```bash
-cd /Users/jessytsui/dev/TaskPing
-npm run relay:pty
-```
-
-This will start the email listening service, monitoring replies to `noreply@example.com`.
-
-### Step 2: Start Claude Code and Integrate TaskPing
-Run in Terminal 2:
-```bash
-# Start Claude Code
-claude
-
-# Use TaskPing in Claude Code to send email notifications
-# Example: Email notifications will be sent automatically when tasks complete
-```
-
-### Step 3: Configure Claude Code Hooks (if not configured)
-Run in Claude Code:
-```bash
-# View current hook configuration
-cat ~/.config/claude-code/settings/hooks.json
-
-# If not configured, set up TaskPing hooks
-# Copy TaskPing's hook configuration file
-```
-
-## 📧 Email Reply Test Workflow
-
-### Method 1: Manual Email Test
-```bash
-# Run in TaskPing directory
-node test-smtp-token.js
-```
-
-This will send a test email to `user@example.com` with a subject containing Token format:
-`[TaskPing #XXXXXXXX] Claude Code Task Completed - TaskPing-Token-Test`
-
-### Method 2: Integration Test
-1. Execute a task in Claude Code
-2. After task completion, TaskPing will automatically send email notification
-3. Email will be sent to configured mailbox (`user@example.com`)
-
-## 💌 How to Reply to Send Commands
-
-### After Receiving Email:
-1. Receive email at `user@example.com` with subject like:
- ```
- [TaskPing #A53PXR7F] Claude Code Task Completed - Project Name
- ```
-
-2. **Reply directly to the email** with commands in the body:
- ```
- Continue optimizing code
- ```
- or
- ```
- Generate unit tests
- ```
- or
- ```
- Explain the purpose of this function
- ```
-
-3. After sending reply, the email listening service will:
- - Receive the reply email
- - Extract the Token (A53PXR7F)
- - Find corresponding PTY session
- - Inject command into Claude Code CLI
-
-## 🔧 Configuration File Description
-
-### .env Configuration
-```env
-# Outgoing Mail Configuration (Feishu Email)
-SMTP_HOST=smtp.feishu.cn
-SMTP_USER=noreply@example.com
-SMTP_PASS=your-smtp-password
-
-# Incoming Mail Configuration (Feishu Email)
-IMAP_HOST=imap.feishu.cn
-IMAP_USER=noreply@example.com
-IMAP_PASS=your-imap-password
-
-# User Notification Email
-EMAIL_TO=user@example.com
-
-# Allowed Command Senders (Security Whitelist)
-ALLOWED_SENDERS=user@example.com
-```
-
-## 🐛 Troubleshooting
-
-### 1. Not Receiving Email Replies
-Check:
-- Email listening service is running (`npm run relay:pty`)
-- Reply is sent from whitelisted email (`user@example.com`)
-- Email subject contains correct Token format
-
-### 2. Commands Not Injected into Claude Code
-Check:
-- Claude Code is still running
-- PTY session is still valid (Token not expired)
-- Check service log output
-
-### 3. View Debug Logs
-```bash
-# View detailed email listening logs
-DEBUG=true npm run relay:pty
-```
-
-## 📱 Supported Email Clients
-
-Users can reply from any email to `noreply@example.com`:
-- ✅ Gmail Web/Client
-- ✅ Mobile Gmail App
-- ✅ Apple Mail
-- ✅ Outlook
-- ✅ QQ Mail
-- ✅ 163 Mail
-- ✅ Any SMTP-supported email
-
-## 🔒 Security Features
-
-1. **Token Verification**: Each session has unique Token to prevent misoperation
-2. **Sender Whitelist**: Only authorized emails can send commands
-3. **Session Expiry**: Token valid for 24 hours
-4. **Command Filtering**: Automatically filters potentially dangerous commands
-
-## 🎯 Real-world Use Cases
-
-### Scenario 1: Long Build Process
-```
-1. Start project build in Claude Code
-2. Leave computer, receive build completion email on phone
-3. Reply directly from phone: "Continue deployment to production"
-4. Deployment completed when returning to computer
-```
-
-### Scenario 2: Code Review
-```
-1. Claude Code completes code generation
-2. Receive email notification
-3. Reply: "Please add unit tests and documentation"
-4. Claude automatically generates tests and docs
-```
-
-This enables true remote control of Claude Code!
\ No newline at end of file
diff --git a/HOW_TO_USE_EMAIL_REPLY_ZH.md b/HOW_TO_USE_EMAIL_REPLY_ZH.md
deleted file mode 100644
index 05b4b69..0000000
--- a/HOW_TO_USE_EMAIL_REPLY_ZH.md
+++ /dev/null
@@ -1,156 +0,0 @@
-# TaskPing 邮件回复功能使用指南
-
-[English](./HOW_TO_USE_EMAIL_REPLY.md) | **中文**
-
-## 📋 完整使用流程
-
-### 步骤1:启动邮件监听服务
-在终端1中运行:
-```bash
-cd /Users/jessytsui/dev/TaskPing
-npm run relay:pty
-```
-
-这会启动邮件监听服务,监听 `noreply@example.com` 收到的回复邮件。
-
-### 步骤2:启动Claude Code并集成TaskPing
-在终端2中运行:
-```bash
-# 启动Claude Code
-claude
-
-# 在Claude Code中使用TaskPing发送邮件通知
-# 例如:当任务完成时会自动发送邮件
-```
-
-### 步骤3:配置Claude Code钩子(如果还没配置)
-在Claude Code中运行:
-```bash
-# 查看当前钩子配置
-cat ~/.config/claude-code/settings/hooks.json
-
-# 如果没有配置,需要设置TaskPing钩子
-# 复制TaskPing的钩子配置文件
-```
-
-## 📧 邮件回复测试流程
-
-### 方法1:手动测试发送邮件
-```bash
-# 在TaskPing目录中运行
-node test-smtp-token.js
-```
-
-这会发送一封测试邮件到 `user@example.com`,邮件主题包含Token格式:
-`[TaskPing #XXXXXXXX] Claude Code 任务完成 - TaskPing-Token-Test`
-
-### 方法2:实际集成测试
-1. 在Claude Code中执行一个任务
-2. 任务完成后,TaskPing会自动发送邮件通知
-3. 邮件会发送到配置的邮箱(`user@example.com`)
-
-## 💌 如何回复邮件发送命令
-
-### 收到邮件后:
-1. 在 `user@example.com` 收到邮件,主题如:
- ```
- [TaskPing #A53PXR7F] Claude Code 任务完成 - 项目名
- ```
-
-2. **直接回复邮件**,在正文中输入命令:
- ```
- 继续优化代码
- ```
- 或
- ```
- 生成单元测试
- ```
- 或
- ```
- 解释这个函数的作用
- ```
-
-3. 发送回复后,邮件监听服务会:
- - 收到回复邮件
- - 提取Token(A53PXR7F)
- - 找到对应的PTY会话
- - 将命令注入到Claude Code CLI
-
-## 🔧 配置文件说明
-
-### .env 配置
-```env
-# 发件配置(飞书邮箱)
-SMTP_HOST=smtp.feishu.cn
-SMTP_USER=noreply@example.com
-SMTP_PASS=kKgS3tNReRTL3RQC
-
-# 收件配置(飞书邮箱)
-IMAP_HOST=imap.feishu.cn
-IMAP_USER=noreply@example.com
-IMAP_PASS=kKgS3tNReRTL3RQC
-
-# 用户通知邮箱
-EMAIL_TO=user@example.com
-
-# 允许发送命令的邮箱(安全白名单)
-ALLOWED_SENDERS=user@example.com
-```
-
-## 🐛 故障排除
-
-### 1. 收不到邮件回复
-检查:
-- 邮件监听服务是否正在运行(`npm run relay:pty`)
-- 是否从白名单邮箱(`user@example.com`)发送回复
-- 邮件主题是否包含正确的Token格式
-
-### 2. 命令没有注入到Claude Code
-检查:
-- Claude Code是否还在运行
-- PTY会话是否还有效(Token未过期)
-- 检查服务日志输出
-
-### 3. 查看调试日志
-```bash
-# 查看详细的邮件监听日志
-DEBUG=true npm run relay:pty
-```
-
-## 📱 支持的邮件客户端
-
-用户可以从任意邮箱回复到 `noreply@example.com`:
-- ✅ Gmail 网页版/客户端
-- ✅ 手机Gmail APP
-- ✅ Apple Mail
-- ✅ Outlook
-- ✅ QQ邮箱
-- ✅ 163邮箱
-- ✅ 任何支持SMTP的邮箱
-
-## 🔒 安全特性
-
-1. **Token验证**:每个会话有唯一Token,防止误操作
-2. **发件人白名单**:只有授权邮箱可以发送命令
-3. **会话过期**:Token有24小时有效期
-4. **命令过滤**:自动过滤潜在危险命令
-
-## 🎯 实际使用场景
-
-### 场景1:长时间构建
-```
-1. 在Claude Code中启动项目构建
-2. 离开电脑,在手机收到构建完成邮件
-3. 手机直接回复:"继续部署到生产环境"
-4. 回到电脑时部署已完成
-```
-
-### 场景2:代码审查
-```
-1. Claude Code完成代码生成
-2. 收到邮件通知
-3. 回复:"请添加单元测试和文档"
-4. Claude自动生成测试和文档
-```
-
-这样就可以实现真正的远程控制Claude Code了!
\ No newline at end of file
diff --git a/README.md b/README.md
index 65e6c4b..4be36b3 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Control [Claude Code](https://claude.ai/code) remotely via email. Start tasks lo
### 🎥 Watch Demo Video
-
+
@@ -18,15 +18,48 @@ Control [Claude Code](https://claude.ai/code) remotely via email. Start tasks lo
## ✨ Features
-- **📧 Email Notifications**: Get notified when Claude completes tasks
+- **📧 Email Notifications**: Get notified when Claude completes tasks 
- **🔄 Email Control**: Reply to emails to send new commands to Claude
- **📱 Remote Access**: Control Claude from anywhere with just email
- **🔒 Secure**: Whitelist-based sender verification
- **📋 Multi-line Support**: Send complex commands with formatting
-## 🚀 Quick Start
-### 1. Install
+## 📅 Changelog
+
+### January 2025
+- **2025-01-15**: Implement terminal-style UI for email notifications ([#8](https://github.com/JessyTsui/Claude-Code-Remote/pull/8) by [@vaclisinc](https://github.com/vaclisinc))
+- **2025-01-15**: Fix working directory issue - enable claude-remote to run from any directory ([#7](https://github.com/JessyTsui/Claude-Code-Remote/pull/7) by [@vaclisinc](https://github.com/vaclisinc))
+- **2025-01-14**: Fix self-reply loop issue when using same email for send/receive ([#4](https://github.com/JessyTsui/Claude-Code-Remote/pull/4) by [@vaclisinc](https://github.com/vaclisinc))
+
+### July 2025
+- **2025-07-28**: Remove hardcoded values and implement environment-based configuration ([#2](https://github.com/JessyTsui/Claude-Code-Remote/pull/2) by [@kevinsslin](https://github.com/kevinsslin))
+
+## 📋 TODO List
+
+### Notification Channels
+- [ ] **Discord & Telegram**: Bot integration for messaging platforms
+- [ ] **Slack Workflow**: Native Slack app with slash commands
+
+### Developer Tools
+- [ ] **AI Tools**: Support for Gemini CLI, Cursor, and other AI tools
+- [ ] **Git Automation**: Auto-commit, PR creation, branch management
+
+### Usage Analytics
+- [ ] **Cost Tracking**: Token usage and estimated costs
+- [ ] **Performance Metrics**: Execution time and resource usage
+- [ ] **Scheduled Reports**: Daily/weekly usage summaries via email
+
+### Native Apps
+- [ ] **Mobile Apps**: iOS and Android applications
+- [ ] **Desktop Apps**: macOS and Windows native clients
+
+
+## 🚀 Setup Guide
+
+Follow these steps to get Claude Code Remote running:
+
+### Step 1: Clone and Install Dependencies
```bash
git clone https://github.com/JessyTsui/Claude-Code-Remote.git
@@ -34,32 +67,52 @@ cd Claude-Code-Remote
npm install
```
-### 2. Configure Email
+### Step 2: Configure Email Settings
```bash
-# Copy example config
+# Copy the example configuration
cp .env.example .env
-# Edit with your email credentials
-nano .env
+# Open .env in your editor
+nano .env # or use vim, code, etc.
```
-**Required settings:**
+Edit the `.env` file with your email credentials:
+
```env
+# Email account for sending notifications
SMTP_USER=your-email@gmail.com
-SMTP_PASS=your-app-password
+SMTP_PASS=your-app-password # Gmail: use App Password, not regular password
+
+# Email account for receiving replies (can be same as SMTP)
IMAP_USER=your-email@gmail.com
IMAP_PASS=your-app-password
+
+# Where to send notifications
EMAIL_TO=your-notification-email@gmail.com
+
+# Who can send commands (security whitelist)
ALLOWED_SENDERS=your-notification-email@gmail.com
-SESSION_MAP_PATH=/your/path/to/Claude-Code-Remote/src/data/session-map.json
+
+# Path to session data (use absolute path)
+SESSION_MAP_PATH=/your/absolute/path/to/Claude-Code-Remote/src/data/session-map.json
```
-📌 **Gmail users**: Use [App Passwords](https://myaccount.google.com/security), not your regular password.
+📌 **Gmail users**: Create an [App Password](https://myaccount.google.com/security) instead of using your regular password.
-### 3. Configure Claude Code Hooks
+### Step 3: Set Up Claude Code Hooks
-Add to `~/.claude/settings.json`:
+Open Claude's settings file:
+
+```bash
+# Create the directory if it doesn't exist
+mkdir -p ~/.claude
+
+# Edit settings.json
+nano ~/.claude/settings.json
+```
+
+Add this configuration (replace `/your/absolute/path/` with your actual path):
```json
{
@@ -68,7 +121,7 @@ Add to `~/.claude/settings.json`:
"matcher": "*",
"hooks": [{
"type": "command",
- "command": "node /your/path/to/Claude-Code-Remote/claude-remote.js notify --type completed",
+ "command": "node /your/absolute/path/to/Claude-Code-Remote/claude-remote.js notify --type completed",
"timeout": 5
}]
}],
@@ -76,7 +129,7 @@ Add to `~/.claude/settings.json`:
"matcher": "*",
"hooks": [{
"type": "command",
- "command": "node /your/path/to/Claude-Code-Remote/claude-remote.js notify --type waiting",
+ "command": "node /your/absolute/path/to/Claude-Code-Remote/claude-remote.js notify --type waiting",
"timeout": 5
}]
}]
@@ -84,86 +137,149 @@ Add to `~/.claude/settings.json`:
}
```
-### 4. Start
+### Step 4: Test Your Setup
```bash
-# Start email monitoring
-npm run relay:pty
+# Test email configuration
+node claude-remote.js test
+```
-# In another terminal, start Claude Code
-tmux new-session -d -s my-project
-tmux attach -t my-project
+You should receive a test email. If not, check your email settings.
+
+### Step 5: Start Claude Code Remote
+
+**Terminal 1 - Start email monitoring:**
+```bash
+npm run relay:pty
+```
+
+Keep this running. You should see:
+```
+🚀 Claude Code Remote is running!
+📧 Monitoring emails...
+```
+
+**Terminal 2 - Start Claude in tmux:**
+```bash
+# Create a new tmux session
+tmux new-session -s my-project
+
+# Inside tmux, start Claude
claude
```
-## 🎮 How It Works
+### Step 6: You're Ready!
-1. **Use Claude normally** in tmux session
-2. **Get email notifications** when Claude completes tasks
-3. **Reply to emails** with new commands
-4. **Commands execute automatically** in Claude
+1. Use Claude normally in the tmux session
+2. When Claude completes a task, you'll receive an email
+3. Reply to the email with new commands
+4. Your commands will execute automatically in Claude
-📖 **Detailed Email Reply Guide**: [English](./HOW_TO_USE_EMAIL_REPLY.md) | [中文](./HOW_TO_USE_EMAIL_REPLY_ZH.md)
+### Verify Everything Works
-### Example Email Flow
+In Claude, type:
+```
+What is 2+2?
+```
+
+Wait for Claude to respond, then check your email. You should receive a notification!
+
+## 📖 How to Use
+
+### Email Notifications
+When Claude completes a task, you'll receive an email notification:
-**📩 Notification received:**
```
Subject: Claude Code Remote Task Complete [#ABC123]
-Claude completed: "Analyze the code structure"
-[Claude's full response...]
+Claude completed: "analyze the code structure"
-Reply to send new commands.
+[Claude's full response here...]
+
+Reply to this email to send new commands.
```
-**📨 Your reply:**
+### Sending Commands via Email Reply
+
+1. **Direct Reply**: Simply reply to the notification email
+2. **Write Command**: Type your command in the email body:
+ ```
+ Please refactor the main function and add error handling
+ ```
+3. **Send**: Your command will automatically execute in Claude!
+
+### Advanced Email Features
+
+**Multi-line Commands**
```
-Please optimize the performance and fix any bugs you find.
+First analyze the current code structure.
+Then create a comprehensive test suite.
+Finally, update the documentation.
```
-**⚡ Result:** Your command automatically executes in Claude!
+**Complex Instructions**
+```
+Refactor the authentication module with these requirements:
+- Use JWT tokens instead of sessions
+- Add rate limiting
+- Implement refresh token logic
+- Update all related tests
+```
-## 💡 Use Cases
+### Email Reply Workflow
-- **Remote Code Reviews**: Start reviews at office, continue from home via email
-- **Long-running Tasks**: Monitor progress and guide next steps remotely
-- **Multi-location Development**: Control Claude from anywhere without VPN
+1. **Receive Notification** → You get an email when Claude completes a task
+2. **Reply with Command** → Send your next instruction via email reply
+3. **Automatic Execution** → The system extracts your command and injects it into Claude
+4. **Get Results** → Receive another email when the new task completes
-## 🔧 Commands
+### Supported Email Clients
+
+Works with any email client that supports standard reply functionality:
+- ✅ Gmail (Web/Mobile)
+- ✅ Apple Mail
+- ✅ Outlook
+- ✅ Any SMTP-compatible email client
+
+## 💡 Common Use Cases
+
+- **Remote Development**: Start coding at the office, continue from home via email
+- **Long Tasks**: Let Claude work while you're in meetings, check results via email
+- **Team Collaboration**: Share Claude sessions by forwarding notification emails
+
+## 🔧 Useful Commands
```bash
-# Test functionality
+# Test email setup
node claude-remote.js test
-# Check status
+# Check system status
node claude-remote.js status
-# View pending commands
-node claude-remote.js commands list
-
-# Manage sessions
+# View tmux sessions
tmux list-sessions
-tmux attach -t session-name
+tmux attach -t my-project
+
+# Stop email monitoring
+# Press Ctrl+C in the terminal running npm run relay:pty
```
## 🔍 Troubleshooting
-**Email not working?**
-```bash
-node claude-remote.js test # Test email setup
-```
+**Not receiving emails?**
+- Run `node claude-remote.js test` to test email setup
+- Check spam folder
+- Verify SMTP settings in `.env`
+- For Gmail: ensure you're using App Password
-**Commands not injecting?**
-```bash
-tmux list-sessions # Check if session exists
-grep ALLOWED_SENDERS .env # Verify sender whitelist
-```
+**Commands not executing?**
+- Ensure tmux session is running: `tmux list-sessions`
+- Check sender email matches `ALLOWED_SENDERS` in `.env`
+- Verify Claude is running inside tmux
-**Hooks not triggering?**
-```bash
-node claude-remote.js notify --type completed # Test manually
-```
+**Need help?**
+- Check [Issues](https://github.com/JessyTsui/Claude-Code-Remote/issues)
+- Follow [@Jiaxi_Cui](https://x.com/Jiaxi_Cui) for updates
## 🛡️ Security
diff --git a/CCRemote_demo.png b/assets/CCRemote_demo.png
similarity index 100%
rename from CCRemote_demo.png
rename to assets/CCRemote_demo.png
diff --git a/assets/email_demo.png b/assets/email_demo.png
new file mode 100644
index 0000000..5ab2223
Binary files /dev/null and b/assets/email_demo.png differ
diff --git a/src/data/processed-messages.json b/src/data/processed-messages.json
index 02ff827..5c0b24a 100644
--- a/src/data/processed-messages.json
+++ b/src/data/processed-messages.json
@@ -1,42 +1,46 @@
[
{
"id": 1312,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1315,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1310,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1323,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1331,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1334,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1342,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1346,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 1348,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
},
{
"id": 180,
- "timestamp": 1754021490457
+ "timestamp": 1754022727524
+ },
+ {
+ "id": 1691,
+ "timestamp": 1754022727524
}
]
\ No newline at end of file
diff --git a/src/data/sent-messages.json b/src/data/sent-messages.json
index 5099b92..077538b 100644
--- a/src/data/sent-messages.json
+++ b/src/data/sent-messages.json
@@ -41,6 +41,97 @@
"token": "L4KQ8DVJ",
"type": "notification",
"sentAt": "2025-08-01T04:12:15.795Z"
+ },
+ {
+ "messageId": "",
+ "sessionId": "e3392712-9a5b-4c96-a23c-5d97c226b415",
+ "token": "7ZFMSK5P",
+ "type": "notification",
+ "sentAt": "2025-08-01T04:30:41.978Z"
+ },
+ {
+ "messageId": "<5d19da23-5c9d-4855-824e-fbd09a0d986c-1754022731688@claude-code-remote>",
+ "sessionId": "5d19da23-5c9d-4855-824e-fbd09a0d986c",
+ "token": "PJOE746Q",
+ "type": "notification",
+ "sentAt": "2025-08-01T04:32:13.100Z"
+ },
+ {
+ "messageId": "",
+ "sessionId": "ed814c4b-0b97-4e10-8ad1-dae1a7cb7ef9",
+ "token": "C9I24JHD",
+ "type": "notification",
+ "sentAt": "2025-08-01T04:35:28.987Z"
+ },
+ {
+ "messageId": "<46ae2185-2f70-4355-a3b8-9fc04fa01181-1754023256348@claude-code-remote>",
+ "sessionId": "46ae2185-2f70-4355-a3b8-9fc04fa01181",
+ "token": "GGBKJ2DV",
+ "type": "notification",
+ "sentAt": "2025-08-01T04:40:58.066Z"
+ },
+ {
+ "messageId": "<49c51c77-8ecc-4a04-a7a8-5955f89411b1-1754023825872@claude-code-remote>",
+ "sessionId": "49c51c77-8ecc-4a04-a7a8-5955f89411b1",
+ "token": "DQH198YY",
+ "type": "notification",
+ "sentAt": "2025-08-01T04:50:27.443Z"
+ },
+ {
+ "messageId": "",
+ "sessionId": "cc5a1eba-7e04-44e6-919f-0395ddf2ee08",
+ "token": "GQE6LLIF",
+ "type": "notification",
+ "sentAt": "2025-08-01T04:54:16.491Z"
+ },
+ {
+ "messageId": "<63198b90-3b9d-4448-a932-7c39c771554a-1754024273245@claude-code-remote>",
+ "sessionId": "63198b90-3b9d-4448-a932-7c39c771554a",
+ "token": "WYKEGTXV",
+ "type": "notification",
+ "sentAt": "2025-08-01T04:57:54.938Z"
+ },
+ {
+ "messageId": "",
+ "sessionId": "bfd8b8d0-bcc4-4336-a6eb-8ca3f8b6c96e",
+ "token": "ATUBLIN1",
+ "type": "notification",
+ "sentAt": "2025-08-01T05:19:18.866Z"
+ },
+ {
+ "messageId": "",
+ "sessionId": "cdbfc3f9-e27e-47d9-82b9-9058f0180fff",
+ "token": "2W24RZTM",
+ "type": "notification",
+ "sentAt": "2025-08-01T05:20:35.851Z"
+ },
+ {
+ "messageId": "",
+ "sessionId": "cf18cb3b-bc72-46ea-985f-2b7f29f0993f",
+ "token": "PHAVU604",
+ "type": "notification",
+ "sentAt": "2025-08-01T05:24:16.539Z"
+ },
+ {
+ "messageId": "<6da5d6f6-7e68-47eb-8676-175d77f0ddbc-1754026029245@claude-code-remote>",
+ "sessionId": "6da5d6f6-7e68-47eb-8676-175d77f0ddbc",
+ "token": "C2APCY3V",
+ "type": "notification",
+ "sentAt": "2025-08-01T05:27:10.601Z"
+ },
+ {
+ "messageId": "<9143d717-be05-4869-b40a-2c775addcfc4-1754026119754@claude-code-remote>",
+ "sessionId": "9143d717-be05-4869-b40a-2c775addcfc4",
+ "token": "N5P4GUG3",
+ "type": "notification",
+ "sentAt": "2025-08-01T05:28:41.439Z"
+ },
+ {
+ "messageId": "<6fb2932d-d4ac-427b-8b7d-54af44fee1f2-1754026220881@claude-code-remote>",
+ "sessionId": "6fb2932d-d4ac-427b-8b7d-54af44fee1f2",
+ "token": "CZIKHCFO",
+ "type": "notification",
+ "sentAt": "2025-08-01T05:30:22.303Z"
}
]
}
\ No newline at end of file
diff --git a/src/data/session-map.json b/src/data/session-map.json
index 2b79bdb..bfe17e4 100644
--- a/src/data/session-map.json
+++ b/src/data/session-map.json
@@ -610,5 +610,122 @@
"sessionId": "2b30b1f7-b9c3-4cb4-b889-11c58009bd07",
"tmuxSession": "test-session",
"description": "completed - Claude-Code-Remote-Test"
+ },
+ "7ZFMSK5P": {
+ "type": "pty",
+ "createdAt": 1754022640,
+ "expiresAt": 1754109040,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "e3392712-9a5b-4c96-a23c-5d97c226b415",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "PJOE746Q": {
+ "type": "pty",
+ "createdAt": 1754022731,
+ "expiresAt": 1754109131,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "5d19da23-5c9d-4855-824e-fbd09a0d986c",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "C9I24JHD": {
+ "type": "pty",
+ "createdAt": 1754022927,
+ "expiresAt": 1754109327,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "ed814c4b-0b97-4e10-8ad1-dae1a7cb7ef9",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "GGBKJ2DV": {
+ "type": "pty",
+ "createdAt": 1754023256,
+ "expiresAt": 1754109656,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "46ae2185-2f70-4355-a3b8-9fc04fa01181",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "DQH198YY": {
+ "type": "pty",
+ "createdAt": 1754023825,
+ "expiresAt": 1754110225,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "49c51c77-8ecc-4a04-a7a8-5955f89411b1",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "GQE6LLIF": {
+ "type": "pty",
+ "createdAt": 1754024054,
+ "expiresAt": 1754110454,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "cc5a1eba-7e04-44e6-919f-0395ddf2ee08",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "WYKEGTXV": {
+ "type": "pty",
+ "createdAt": 1754024273,
+ "expiresAt": 1754110673,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "63198b90-3b9d-4448-a932-7c39c771554a",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "ATUBLIN1": {
+ "type": "pty",
+ "createdAt": 1754025557,
+ "expiresAt": 1754111957,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "bfd8b8d0-bcc4-4336-a6eb-8ca3f8b6c96e",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "2W24RZTM": {
+ "type": "pty",
+ "createdAt": 1754025634,
+ "expiresAt": 1754112034,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "cdbfc3f9-e27e-47d9-82b9-9058f0180fff",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "PHAVU604": {
+ "type": "pty",
+ "createdAt": 1754025855,
+ "expiresAt": 1754112255,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "cf18cb3b-bc72-46ea-985f-2b7f29f0993f",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "C2APCY3V": {
+ "type": "pty",
+ "createdAt": 1754026029,
+ "expiresAt": 1754112429,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "6da5d6f6-7e68-47eb-8676-175d77f0ddbc",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "N5P4GUG3": {
+ "type": "pty",
+ "createdAt": 1754026119,
+ "expiresAt": 1754112519,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "9143d717-be05-4869-b40a-2c775addcfc4",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
+ },
+ "CZIKHCFO": {
+ "type": "pty",
+ "createdAt": 1754026220,
+ "expiresAt": 1754112620,
+ "cwd": "/Users/jessytsui/dev/Claude-Code-Remote",
+ "sessionId": "6fb2932d-d4ac-427b-8b7d-54af44fee1f2",
+ "tmuxSession": "a",
+ "description": "completed - Claude-Code-Remote"
}
}
\ No newline at end of file