In Development

Agent task console for your phone

Mac mini 上持续运行 Claude Code,手机端实时查看、控制、审批。

Overview

不是终端,不是聊天 App

Claude Work 是 Agent 任务托管器。Claude 在后台持续工作,你随时掌控全局。

任务托管

锁屏、断网、关 App,任务照跑。Mac mini 24h 在线。

移动控制

看状态、发指令、改方向、Fork 分支。每个操作两步完成。

审批中心

高风险命令自动拦截推送。10 分钟超时自动拒绝。

实时通知

完成、失败、等输入——Web Push 到手机。

技术底座
--resume -p --verbose --output-format stream-jsonVerified
PreToolUse HTTP hook hold responseVerified
Hook hold 60s+ (10min timeout)Verified
Fork session + custom UUIDVerified
Stop hook → last_assistant_messageVerified
Kill → session data lost (exit 143)Limitation
iOS PWA notification action buttonsUnsupported
Architecture

手机 → VPS → Mac mini

VPS 只跑 nginx (HTTPS + 反代),daemon 全部在 Mac mini 上。

iPhone Safari (PWA)
    ↕ HTTPS + WSS
VPS (nginx)
    ├── Static files (PWA)
    ├── /api/*  → 100.68.227.68:3456 (Tailscale)
    └── /ws     → ws://100.68.227.68:3456/ws

claude-hostd (Node.js, Mac mini)
    ├── Express (REST + WS + /hooks)
    ├── Process Manager → spawn + pipe NDJSON
    ├── SQLite (WAL)
    └── Web Push
    ↓
claude --resume <sid> -p --verbose --output-format stream-json "prompt"

不 Kill 进程

Kill 后 session 丢失。Redirect 只在 turn 间执行,running 时排队。

PreToolUse 审批

PermissionRequest 不触发 -p 模式。用 hook hold HTTP 阻塞。

NDJSON ≠ SSE

完整 JSON/行,不是 token delta。解析简单。

崩溃保护

非关键 hook 5s timeout。重启自动 deny pending。

Design

High-Fidelity Prototype

iOS 原生风格,3 个核心页面。默认看摘要不看日志。

Session List
9:41

Sessions

1 approval pending
fix auth bug
~/projects/myapp
编辑 src/auth.ts — 重构 handleLogin
12s ago · Run 3
robotics research
~/projects/research
Waiting: rm -rf dist && npm run build
2m ago · Run 1
update docs
~/projects/docs
Completed — modified 3 files
15m ago · Run 2
refactor API
~/projects/api-server
Waiting for input
8m ago · Run 5
Session Detail
9:41
Sessions
fix auth bug Run 3
Timeline
Output
History
Running · ~/projects/myapp · 4m 32s
Analysis (4) 1m 12s
Editing 2m 48s
Read src/auth.ts
Read src/reducer.ts
Edit src/auth.ts
→ Extracted validateToken into separate module
Edit src/middleware.ts
→ 重构 handleLogin 函数
Testing
View raw output
Message
Fork
Approval
9:41
Sessions
robotics research
Waiting Approval · ~/projects/research
Setup (3) 32s
Analysis (6) 2m 15s
Approval Required 8:42
Tool
Bash
Command
rm -rf dist && npm run build
High risk — directory deletion
Context
Claude wants to clean the dist folder and rebuild the project after modifying 4 source files.
Deny
Allow
Interactions

Every flow, two taps

创建、发消息、审批、断线重连——每个流程都清晰简短。

创建任务

1点击 +
2选择项目 + 输入描述
3POST /sessions → spawn
4卡片出现 running

发送消息

1输入消息
2POST /sessions/:id/message
3空闲→执行 | running→排队
4UI 乐观更新

审批流程

1Claude 触发高风险 tool
2daemon hold HTTP → 阻塞
3Push + WS 通知手机
4AllowDeny
5返回 held response

断线重连

1WS 断开 → 任务继续
2重连 → GET /sessions
3?after_seq=N 增量补发
StatusBottom Bar Actions
runningMessage (queued) · Fork
waiting_inputMessage · Fork · Complete
waiting_approvalAllow · Deny
failedResume · Fork
Data Flow

NDJSON → Events → Timeline

daemon 逐行解析 stdout,转化为结构化事件推送到手机。

Event Mapping

NDJSONcontentEvent
systemsession.started
assistanttool_usetool.called
usertool_resulttool.result
assistanttextstep.started
resulttask.completed

Timeline Display

ToolDisplay
Read读取 file
Edit编辑 file
Write创建 file
Bash执行 cmd[:40]
Grep搜索 pattern
Agent子任务

Auto Grouping

ToolsPhase
Read, Grep, GlobAnalysis
Edit, WriteEditing
Bash (test/*)Testing
Specification

PRD v1.3

经 CLI 实测验证、多轮 review 的完整技术文档。
Read full PRD

Phase 1 · 能跑

daemon + session + NDJSON + WS + 列表详情页 + nginx

Phase 2 · 可用

消息 + Fork + 排队 + 审批 + Push + 离线

Phase 3 · 稳定

僵尸检测 + 并发 + Timeline 分组 + launchd

ModuleLines
daemon (8 ts)~1,000
web (html+js+css+sw)~800
scripts + config~100
Total~1,900