Tại sao có bài này
Bài FleetView phần 2 tôi kết bằng một câu khá dứt khoát: FleetView đã đủ để orchestrate công việc, không chỉ theo dõi nó. Lúc đó tôi không định viết thêm phần 3.
Nhưng khoảng một tuần sau khi publish bài 2, phiên bản 2.1.169 ra. Không phải update lớn theo nghĩa feature mới đột phá, nhưng nó gộp một chuỗi thay đổi làm thay đổi cách tôi nhìn vào các session hàng ngày.
Thứ dễ thấy nhất: tên “FleetView” biến mất trong interface. Binary giờ gọi nó là “Agent View”. Đi kèm là hai slash command /rename và /color, một feature search session theo nội dung transcript, và một loạt lọc trong /resume picker tôi đã dùng nhiều lần từ đó mà không nhận ra mình đang dùng tính năng mới.
Bài này ghi lại những thứ đó.
FleetView giờ là Agent View
Từ v2.1.169, binary chứa biến môi trường CLAUDE_CODE_DISABLE_AGENT_VIEW và setting defaultToAgentsView. “FleetView” vẫn còn trong tài liệu cũ và trong code telemetry một số chỗ, nhưng UI gọi nó là “Agents view” và khi CC detect bạn đang chạy nhiều session cùng lúc, thông báo nó hiện là:
Running multiple Claude sessions? Use /color and /rename to tell them apart at a glance.
Không còn “FleetView” trong thông báo đó. Tên mới phản ánh đúng hơn scope của tool: không chỉ là “nhìn bầy session từ xa” mà là nơi bạn làm việc với agent.
Setting defaultToAgentsView: true trong settings.json khiến mỗi lần gõ claude mà không có argument, CC mở thẳng Agent View thay vì interactive session thường. Tôi bật cái này từ tháng trước. Cái gì muốn viết một câu hỏi nhanh thì gõ trực tiếp trong prompt box của Agent View. Cái gì cần một session dài thì Enter từ đó.
Nếu vì lý do gì bạn không muốn Agent View, CLAUDE_CODE_DISABLE_AGENT_VIEW=1 tắt nó hoàn toàn.
/rename và /color: identity cho session
Hai command này tôi xếp vào cùng vì chúng giải quyết cùng một vấn đề: trong Agent View, bảy session cùng status “Working” với cwd gần giống nhau thì không phân biệt được.
/rename <tên> đặt display name cho session hiện tại. Cái tên đó hiện ở:
- Prompt box (dòng nhỏ ngay trên chỗ gõ, format
[session-name]) /resumepicker khi chọn session để tiếp tục- Terminal tab title (nếu chưa tắt bằng setting
terminalTitle: false) - Agent View khi bạn attach và detach
Gõ /rename không có argument thì CC tự generate tên từ conversation context, dùng Haiku cho nhanh. Nếu chưa có đủ context (session mới tinh chưa nói câu nào), nó báo lỗi và yêu cầu bạn tự đặt.
/color <màu> đặt accent color cho terminal title bar của session. Danh sách màu có sẵn: amber, blue, coral, crimson, cyan, gold, green, indigo, jade, lavender, lime, magenta, mint, navy, olive, orange, peach, pink, plum, purple, rose, ruby, sienna, teal, violet, yellow. /color default reset về không màu.
Hai cái này nhỏ nhưng hữu dụng theo cách không ngờ. Khi chạy ba session song song cho ba project khác nhau và cần tab-switch trong iTerm, màu và tên trên title bar là cái duy nhất tôi nhìn vào. Không cần nhớ số pane hay order trong tmux nữa.
Một giới hạn đáng nhớ: nếu session đó là teammate trong một team (spawned qua TeamCreate), /rename và /color bị block. Team leader là cái set name và color cho teammate, không phải teammate tự set. Lỗi rõ ràng: “Cannot rename: This session is a teammate. Teammate names are set by the team leader.”
Detect nhiều CC session chạy song song
V2.1.169 thêm logic detectMultiClauding: khi CC phát hiện nhiều process Claude Code đang chạy cùng lúc trên máy, nó hiện một prompt.
Nếu bạn chưa dùng Agent View và đang mở hai session thường: “Running multiple Claude sessions? Run [claude agents] to manage them in one view.”
Nếu đã dùng Agent View: “Running multiple Claude sessions? Use /color and /rename to tell them apart at a glance.”
Telemetry gọi event này là agents-view-multiclauding. Behavior phụ thuộc vào hasOpenedAgentsView để biết nên suggest gì.
Tôi không dùng tính năng này để quyết định gì, nhưng nó là tín hiệu rõ ràng về intent của Anthropic: Agent View là primary surface cho multi-session workflow, không phải option phụ nữa.
Agentic search trong /resume picker
Đây là thứ tôi thấy ảnh hưởng workflow nhiều nhất.
/resume trước đây là một picker hiện danh sách session gần đây, sorted theo thời gian. Tìm session cũ thì scroll. Không có search content.
Từ v2.1.169, picker chạy trong hai mode. Mode thường: list session gần đây theo cwd và thời gian như cũ. Mode search: gõ keyword, CC spawn một mini-agent (Haiku, max 20 turns) grep qua .jsonl transcript trong ~/.claude/projects/, tìm session có content match.
Cú pháp từ shell:
# Mở interactive picker bình thường
claude --resume
# Tìm session theo keyword trong nội dung transcript
claude --resume "kafka partition rebalancing"
# Tìm session linked tới một PR cụ thể
claude --resume --pr 42
Cơ chế bên dưới: mini-agent nhận system prompt dạng “You are searching for past CC sessions. Use Grep with files_with_matches mode to scan efficiently.” Khi tìm thấy, output cuối cùng phải là một JSON object {"session_ids": ["<uuid>", ...]} trên một dòng riêng. CC parse đó ra, fetch session tương ứng, đưa vào picker có sorted by relevance.
Tôi hay dùng cái này cho session viết blog cũ. Gõ lệnh sau:
claude --resume "bài về kafka partition"
Tìm đúng session cần trong khoảng 3-4 giây, không phải nhớ ngày tháng hay scroll qua 50 entry.
Có thể cancel search đang chạy, event là tengu_agentic_search_cancelled. Không cần đợi nó xong nếu thấy kết quả đầu tiên đã đúng.
Bộ filter của /resume picker
Song song với agentic search, picker còn thêm ba toggle:
Branch filter: chỉ hiện session đang trên git branch hiện tại. Hữu ích khi làm việc trong feature branch và muốn tìm session cũ cũng trên branch đó.
Worktree filter: chỉ hiện session có cwd là worktree của repo hiện tại. Tách biệt session worktree khỏi session repo gốc trong picker.
All-projects toggle: mặc định picker chỉ hiện session của project hiện tại (theo cwd). Bật toggle này thì hiện tất cả session từ mọi project. Hữu ích khi bạn nhớ làm cái gì đó nhưng không nhớ trong project nào.
Tất cả ba cái đang chờ trong dropdown phía trên picker, không phải flag CLI. Tôi thường bật branch filter khi đang làm feature branch dài, bật all-projects khi tìm session từ máy cũ (nếu đã copy projects dir sang).
Session preview trong picker
Bên cạnh filter, picker giờ có peek mode. Nhấn phím xem trước (default right arrow hoặc một phím cụ thể tùy terminal) trên một session entry thì side panel hiện vài dòng đầu của transcript đó mà không cần attach vào session.
Telemetry gọi event này tengu_session_preview_opened. Dùng khi tôi thấy hai session tên giống nhau trong picker và cần xem cái nào đúng trước khi resume.
Personal memory sync
V2.1.169 bật personal memory sync, trước đây chỉ có team memory sync (yêu cầu organization plan).
Personal memory sync đồng bộ ~/.claude/agent-memory/ (user-scope auto-memory) qua GitHub. Cơ chế: CC watch thay đổi trong memory directory, push lên một remote URL. Pull về khi session mới start.
Setting allow_memory_sync trong organization policy cho phép hoặc block tính năng này. Nếu organization block, CC báo “Not authorized for memory sync” và dừng.
Telemetry events: personal_memory_sync_pull, personal_memory_sync_push, personal_memory_sync_conflict. Conflict xảy ra khi hai máy cùng modify cùng memory file trước khi sync, giải quyết theo last-write-wins.
Với workflow của tôi (MacBook chính + homelab Ubuntu), cái này giải quyết một phần vấn đề multi-machine mà bài trước tôi liệt vào “chưa solve”. Memory tự sync, không cần tay copy. Nhưng chỉ là memory, không phải session state hay transcript. Muốn biết homelab đang có session nào vẫn phải SSH vào và chạy claude agents.
Autofix PR
Tính năng này thêm từ 2.1.169, không liên quan trực tiếp Agent View nhưng nằm trong cùng release và ảnh hưởng workflow multi-session.
Khi bạn có PR đang mở, gõ /autofix-pr hoặc dùng flag autofixPrMode, CC spawn một background cloud session monitor PR đó. Session theo dõi CI check, và khi có lỗi CI auto-fixable, tự fix và push commit mới.
# Spawn autofix session cho PR hiện tại (phải đang trong cwd repo có PR mở)
/autofix-pr
Session đó xuất hiện trong Agent View như session thường, source là cloud. Bạn có thể attach để xem nó đang làm gì, detach và để nó chạy, hoặc kill khi xong.
Tôi đã thử một lần với một PR có failing lint. Session fix xong trong khoảng hai phút, push commit, CI xanh. Không cần mở terminal riêng, không cần ngồi chờ. Nhưng feature này yêu cầu open PR và CI failing, không phải thứ dùng hàng ngày.
Bảng thay đổi so với Part 2
Part 2 kết với nhận xét FleetView đã trở thành orchestration hub. Khoảng cách với tmux lớn hơn nhiều. Phần này bổ sung thêm một chiều: bây giờ bạn có thể tìm lại session cũ theo nội dung, đặt tên và màu để nhận diện nhanh trong tab-switch, và sync memory giữa máy mà không cần tay.
Bảng so sánh ba bài:
| Khía cạnh | Part 1 (v2.1.143-146) | Part 2 (v2.1.147-168) | Part 3 (v2.1.169+) |
|---|---|---|---|
| Tên UI | FleetView | FleetView | Agent View |
| Session identity | cwd + status | cwd + status + PR column | + tên + màu |
| Tìm session cũ | scroll list | scroll list | agentic search |
| Filter trong picker | không có | không có | branch, worktree, all-projects |
| Memory sync | không có | không có | personal memory sync |
| Default launch | gõ claude agents | gõ claude agents | defaultToAgentsView: true |
Hai cái vẫn chưa solve: multi-machine (vẫn cần SSH vào từng máy) và phone (vẫn cần Telegram bridge). Memory sync giảm một phần pain của multi-machine nhưng không xóa nó.
Cấu hình để thử ngay
Thêm vào ~/.claude/settings.json nếu muốn Agent View là default:
{
"defaultToAgentsView": true
}
Tắt Agent View nếu vì lý do gì không muốn:
export CLAUDE_CODE_DISABLE_AGENT_VIEW=1
Workflow /rename và /color tôi hay làm khi mở session mới cho task dài:
# Trong session Claude Code:
/rename blog-agent-view-part3
/color coral
Sau đó khi tab-switch trong iTerm, title bar hiện màu coral và tên bài đang viết. Không nhầm được với session debug cùng lúc.
Agentic search: chỉ cần thêm keyword vào lệnh resume:
claude --resume "agentic search session picker"
Cái này search xuyên mọi project transcript trên máy, không phải chỉ project hiện tại. Nếu muốn giới hạn, bật current-project mode trong picker trước khi search.
Bài thuộc series Claude Code từ zero. Bài trước: FleetView từ session manager thành orchestration hub.