返回列表

部落格

我的日常 Tactic Remote 工作流程:工作階段、通知與行動審查循環

我如何同時執行三個 Claude Code 代理、在它們完成時收到推播通知、用 iPhone 審查一切——實際的日常流程,不是理論。

發布於 標籤: workflow / guide / productivity / practical
部落格

繼續查看該欄目下的產品與工程更新。

瀏覽此分類

我同時在三個專案上執行 Claude Code。每個處理不同的任務——前端、後端、測試。任何一個完成或需要我審批時,我的手機會收到推播通知。點擊、審查、核准,然後走開。

這是我用 Tactic Remote 的實際日常工作流程。沒有理論,只有我每天在做的事。

TL;DR: 三個 tmux 工作階段,每個對應一個專案或任務。Mac 伴侶應用程式自動設定的 hooks 發送推播通知。用 iPhone 審查,一鍵核准,繼續走路。

工作階段佈局

我按專案而非工具來組織 tmux 工作階段。每個專案有自己的工作階段和工作目錄:

┌─────────────────────────────────────────────────┐
│                  Your Mac                        │
│                                                  │
│  tmux session: webapp      (~/code/webapp)       │
│    └─ Claude: "Refactoring auth to use JWT..."   │
│                                                  │
│  tmux session: api         (~/code/api)          │
│    └─ Claude: "Adding rate limiting..."          │
│                                                  │
│  tmux session: mobile      (~/code/mobile-app)   │
│    └─ Claude: "Fixing navigation crash..."       │
│                                                  │
└─────────────────────────────────────────────────┘
                      │
                      │  push notification:
                      │  "Claude Task Completed — webapp"
                      ▼
              ┌──────────────┐
              │   iPhone     │
              │  Claude      │
              │  Remote      │
              └──────────────┘

為什麼用工作階段而不是視窗?因為每個 Claude Code 實例需要自己的工作目錄和 50,000 行捲動緩衝區。工作階段提供了乾淨的隔離——切換專案就是切換工作階段,不用記住哪個視窗編號對應哪個任務。

從手機建立工作階段

在 Tactic Remote 應用程式中:

  1. 點擊工作階段選擇器(畫面頂部)
  2. 點擊「建立工作階段」
  3. 命名(例如 webapp)
  4. 使用路徑選擇器瀏覽到專案目錄
  5. 點擊「啟動 Claude」

後台執行的操作:

tmux new-session -d -s webapp -c ~/code/webapp
tmux set-option -t webapp history-limit 50000
tmux send-keys -t webapp -l 'claude'
tmux send-keys -t webapp C-m

然後對 api 和 mobile 重複同樣的操作。三個工作階段,三個獨立的 Claude Code 實例,各自指向正確的專案。

通知管線

這是讓整個工作流程切實可行的關鍵部分。沒有通知,你就得不斷查看手機確認 Claude 是否完成了。有了通知,你可以真正地走開。

設定方式

Mac 伴侶應用程式在伺服器啟動時自動設定 Claude Code hooks,無需手動設定。它在 ~/.claude/hooks/ 寫入三個 shell 指令碼:

#!/bin/bash
# claude-remote-stop.sh (auto-generated)
 
PORT="${CLAUDE_REMOTE_PORT:-8765}"
HOOK_SERVER_URL="http://localhost:${PORT}/hook"
 
TMUX_SESSION=""
if [ -n "$TMUX" ]; then
    TMUX_SESSION=$(tmux display-message -p '#S')
fi
 
PROJECT="$(basename "$PWD")"
TIMESTAMP=$(date +%s)
 
curl -s -X POST "$HOOK_SERVER_URL" \
    -H "Content-Type: application/json" \
    -d "{\"event\":\"Stop\",\"project\":\"$PROJECT\",\"tmux_session\":\"$TMUX_SESSION\",\"timestamp\":$TIMESTAMP}" \
    > /dev/null 2>&1 &
exit 0

然後在 ~/.claude/settings.json 中註冊這些指令碼,使 Claude Code 在生命週期事件時呼叫它們:

{
  "hooks": {
    "Stop": [
      {
        "matcher": "*",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/claude-remote-stop.sh" }]
      }
    ],
    "Notification": [
      {
        "matcher": "*",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/claude-remote-notification.sh" }]
      }
    ]
  }
}

事件流程

Claude 完成任務
    │
    ▼
Claude Code hook 觸發: claude-remote-stop.sh
    │
    ▼
curl POST http://localhost:8765/hook
  {"event": "Stop", "project": "webapp", "tmux_session": "webapp"}
    │
    ▼
Node.js 伺服器接收 hook → 廣播給所有 WebSocket 用戶端
    │
    ├─► 如果 iPhone 在前台:
    │     終端顯示: 📢 [Claude] Project completed
    │
    └─► 如果 iPhone 在背景:
          系統推播通知出現
          點擊 → 直接開啟對應工作階段

去重

Claude 有時會快速連續觸發多個 hook 事件——例如連續完成多個子任務時。iOS 應用程式使用 3 秒視窗進行去重。如果相同事件(相同專案、相同工作階段、相同時間戳記)在 3 秒內到達兩次,重複的會被靜默丟棄。沒有通知轟炸。

審查循環

典型的審查週期是這樣的:

步驟 1:收到通知

手機震動:「Claude Task Completed — webapp」

我在咖啡店、沙發上,或者走在去吃午飯的路上。無所謂。

步驟 2:審查輸出

點擊通知。Tactic Remote 直接開啟 webapp 工作階段。我看到 Claude 的完整輸出——它改了什麼、在問什麼、測試結果如何。

終端檢視保留了 Claude Code 的所有格式:語法醒目提示、diff 顏色、UI 邊框字元。不是精簡摘要——是真實的終端輸出,在手機上用 ANSI 顏色算繪。

如果輸出很長,向上捲動。50,000 行的 tmux 捲動緩衝區意味著什麼都不會遺失,即使我不在時 Claude 產生了大量輸出。應用程式可以透過「載入更多」取得多達 5,000 行。

步驟 3:核准或調整

三種常見情境:

Claude 等待執行指令的權限:

Claude 顯示類似這樣的內容:

> Need permission to run: npm install bcrypt
> [y/n]

我點擊鍵盤工具列上的 Y 按鈕。一次點擊。Claude 繼續工作。

Claude 完成並在提示符等待:

我輸入新指令:「現在為 auth 模組撰寫測試。」點擊發送。Claude 開始處理下一個任務。我放下手機。

Claude 遇到錯誤需要指導:

我閱讀錯誤資訊,輸入應該如何調整的回覆,然後發送。Claude 調整它的方案。

步驟 4:走開

核准或調整後,我切換到下一個工作階段(點擊工作階段選擇器,點擊 api)檢視另一個任務。如果還在執行,我就走開等下一個通知。

循環是:通知 → 審查 → 操作 → 走開。每次循環需要 30 秒到 2 分鐘,取決於 Claude 產出了什麼。

並行任務策略

並行執行多個 Claude 實例很強大,但需要一定的紀律。以下是我的經驗:

給每個任務清晰完整的說明

不要發送模糊的指令,比如「處理前端」。發送具體的:

Refactor the authentication module in src/auth/ to use JWT tokens
instead of session cookies. Update all route handlers that check
auth. Write tests. Run the existing test suite to make sure nothing
breaks.

你的提示越具體,Claude 能自主工作的時間就越長。模糊的提示意味著更多的中斷。

錯開啟動時間

不要同時啟動全部三個工作階段。啟動一個,等它開始工作(大約 5 秒後你會看到初始輸出),再啟動下一個。這樣可以避免三個同時觸發權限提示,導致三個通知同時到達。

先檢查執行最久的

審查時,從執行時間最長的工作階段開始——它最可能已經完成或卡住。最近啟動的工作階段可能還在工作。

使用有意義的工作階段名稱

當你收到推播通知「Claude Task Completed — webapp」時,你需要不用思考就知道它是什麼意思。不要把工作階段命名為 session1、session2、session3。用專案或任務來命名。

常用快捷操作

聊天檢視底部的鍵盤工具列有專為 Claude Code 互動設計的特殊按鍵:

按鈕功能使用情境
Y發送 y 鍵核准權限提示
N發送 n 鍵拒絕權限提示
Enter發送 Enter確認選擇
Esc發送 Escape取消或關閉
Tab發送 Tab自動補全或循環選項
Ctrl+C發送中斷停止失控程序

Y 和 N 按鈕的存在是因為 Claude Code 的權限提示是最常見的互動。能夠一鍵核准——而不是在手機鍵盤上打「y」——讓行動端工作流程切實可行。

我的 .tmux.conf

很簡單,沒有花俏的東西:

# Big scrollback — Claude produces a LOT of output
set -g history-limit 50000
 
# Mouse scrolling (not used much from the phone, but helpful at the desk)
set -g mouse on
 
# Start window numbering at 1
set -g base-index 1

Tactic Remote 在建立工作階段時會將捲動緩衝區設為 50,000,所以 .tmux.conf 的設定是你手動建立工作階段時的備用方案。

實際場景

典型的一個早上:

8:00 AM — 坐到 Mac 前。三個專案需要處理。從 Mac 伴侶應用程式建立三個工作階段(或者從 iPhone 建立——都可以)。

8:05 AM — 在每個工作階段中給 Claude 發送詳細任務。走去廚房。

8:20 AM — 第一個通知:api 工作階段完成。在 iPhone 上審查。Claude 新增了速率限制,測試通過。發送下一個任務:「現在把速率限制 headers 新增到 API 文件中。」

8:35 AM — 第二個通知:webapp 工作階段需要核准。開啟它。Claude 想安裝一個新依賴套件。檢查看起來沒問題。點擊 Y。走到桌前。

8:50 AM — 第三個通知:mobile 工作階段完成。審查。沒問題。開始新任務。

9:00 AM — 坐到 Mac 前。三個專案都有了顯著進展。在 git 中審查 diff,commit,push。

一小時,三個專案,大部分時間在泡咖啡和吃早餐。手機審查循環意味著 Claude 從不因為我不在桌前而被阻塞。

建議

立即啟用通知。 hooks 由 Mac 伴侶應用程式自動設定,但你需要在 iPhone 提示時授予通知權限。首次啟動時就做——整個工作流程依賴於此。

把 Tactic Remote 放在 dock 裡。 在活躍開發期間你一天會開啟它 20-30 次。一鍵可達很重要。

信任捲動緩衝區。 當你重新連線到工作階段時,所有輸出都在那裡。你不需要問 Claude「你做了什麼?」——直接向上捲動閱讀終端輸出。

不要微管理。 這個工作流程的要點是給 Claude 實質性的任務然後走開。如果你每 2 分鐘就檢查一次,那就用錯了。給它一個 15 分鐘的任務,等通知,然後審查。


關於伺服器、tmux 和通知底層運作的技術細節,請參閱從手機遠端執行 Claude Code。初始設定請參閱快速開始。

立即體驗 Tactic Remote

用手機遠端操作程式開發 Agent

連線到 Mac、Windows 或 Linux 電腦上的 Claude Code、Codex 等 Agent,在 iPhone 或 iPad 上查看進度並傳送下一個請求。