☰ Mục lục series
Playbook

Claude Code trên cloud: cẩm nang thực tế về cloud session

Bản dịch từ claude.dev/blog/claude-code-in-the-cloud/

Tác giả bài gốc: Addy Osmani (Member of Technical Staff). Đăng ngày 06/10/2026 trên claude.dev.

Có lẽ bạn đang chạy Claude Code trong terminal trên laptop của mình. Session đó phụ thuộc vào laptop theo ba cách:

  • Nó dùng chung cây làm việc (working tree) của bạn, nên hai session trên cùng một repo có thể sửa cùng các file và tranh nhau dùng cùng một cổng.
  • Nó chạy bằng thông tin xác thực của bạn.
  • Nó dừng khi máy tính chuyển sang chế độ ngủ hoặc Wi-Fi mất kết nối.

Một cloud session chạy Claude Code trên một máy riêng. Mỗi tác vụ có một máy ảo (VM) mới, với repo của bạn được clone vào một nhánh mới và các bước thiết lập môi trường đã hoàn tất.

Bạn có thể khởi chạy session từ claude.ai/code, ứng dụng Claude trên điện thoại, ứng dụng Desktop, terminal và Slack. Sau đó, bạn có thể theo dõi session từ trình duyệt, ứng dụng điện thoại và Desktop. Khi công việc hoàn tất, kết quả nằm trên một nhánh mà bạn có thể tạo pull request.

Cloud session đi kèm gói Pro, Max, Team hoặc Enterprise của bạn mà không mất thêm phí: không có khoản phí riêng cho máy trên cloud, và session dùng chung hạn mức sử dụng với các phần còn lại của Claude Code. Tùy gói, chủ sở hữu tổ chức có thể cần bật cloud session trước.

Credit thưởng cho cloud session. Người dùng cá nhân đang đăng ký Pro và Max có thể nhận một khoản credit thưởng một lần cho cloud session, ngoài hạn mức của gói: $100 cho Pro và $250 cho Max. Nhận trước ngày 7 tháng 10 tại claude.ai/code/claim-credit hoặc bằng /claim-credit trong Claude Code. Credit hết hạn vào ngày 4 tháng 11. Sau khi dùng hết hoặc hết hạn, hạn mức sử dụng thông thường của gói sẽ được áp dụng. Credit này không dùng được cho Projects hoặc Routines. Xem Điều khoản ưu đãi credit khuyến mại.

Để viết cẩm nang này, mình đã chạy bốn cloud session thực tế trên một repo mẫu nhỏ. Bản ghi hội thoại, diff và thời gian chạy của chúng được trình bày xuyên suốt bài. Repo và người dùng trong ảnh chụp màn hình là hư cấu. Công việc, kết quả và các con số đều đến từ những session đó.

Một trong những ưu điểm chính của cloud session là bạn có thể chạy nhiều tác vụ cùng lúc mà chúng không cản trở nhau. Dưới đây là ba session mình khởi chạy cách nhau trong vòng 16 giây, mỗi session trên một máy riêng. Nếu làm trên laptop, mình sẽ phải chạy lần lượt hoặc mất thời gian giữ cho chúng không ảnh hưởng lẫn nhau.

Video: Dòng thời gian thực tế của ba cloud session trên cùng một repo, tính bằng giây kể từ lần khởi chạy đầu tiên. Các thanh có gạch chéo là bước thiết lập để tạo lại repo mẫu (khi dùng bình thường, bước này được thay bằng việc clone từ GitHub), và mỗi chấm là một tool call.

Ba tác vụ, một repo, ba máy

Repo mẫu là tidepool, một API Node nhỏ dự báo thủy triều cho ba cảng hư cấu. Nó có ba vấn đề thường gặp: một test thất bại khoảng một lần trong bốn lần chạy, tài liệu API mô tả các tham số mà code không còn đọc nữa, và logger tạo các dòng log bằng cách nối chuỗi.

Mình khởi chạy ba cloud session cách nhau trong vòng 16 giây, mỗi session xử lý một vấn đề. Mình khởi chạy chúng bằng chương trình, và vì tidepool không có trên GitHub, mỗi session trước tiên tạo lại repo từ các file trong prompt. Với repo thật, bạn sẽ bỏ qua bước đó, và từ terminal, mỗi session chỉ cần một lệnh claude --cloud. Rút gọn lại, ba prompt là:

claude --cloud "npm test fails maybe one run in four. Find the flaky test, fix the root cause in the code (not the test), and prove it by running the suite at least 30 times in a row."
claude --cloud "docs/API.md is out of date with src/server.js. Rewrite it so every endpoint, parameter, default and response shape matches the code. Start the server and run each curl example to check it."
claude --cloud "Make src/logger.js emit one JSON object per line, keep LOG_LEVEL, and log method, path, status and duration_ms as fields. Add a test for the logger."

Các session chạy trong 61, 65 và 72 giây, và cả ba đều hoàn tất sau 87 giây kể từ lúc session đầu tiên bắt đầu. Việc tạo lại repo chiếm khoảng một phần ba đến hơn một nửa thời gian của mỗi lượt chạy. Đây là kết quả.

  • Test lúc được lúc không (flaky test). Claude tìm thấy một tình trạng tranh chấp (race condition) trong TtlCache.get. Cache chỉ lưu giá trị sau khi loader hoàn tất, nên nếu có một lệnh get thứ hai cho cùng key trong lúc đang tải, loader sẽ bị gọi lại. Claude sửa cache để lưu promise đang xử lý, xóa mục đó khi việc tải thất bại, và chạy npm test 40 lần liên tiếp mà không có lần nào thất bại.
  • Tài liệu. Claude khởi động server, chạy curl với từng endpoint và tìm ra năm điểm sai trong tài liệu cũ. Tài liệu liệt kê các trường mà API không bao giờ trả về, mô tả tham số days mà code bỏ qua, ghi độ cao theo feet trong khi thực tế là mét, bỏ sót endpoint /next-high, và không đề cập các response lỗi. Claude còn phát hiện giá trị from= sai định dạng trả về danh sách rỗng với mã 200, rồi ghi lại điều đó như một điểm cần lưu ý thay vì sửa code server mà nó không được yêu cầu đụng tới.
  • Logger. Claude viết logger JSON, chuyển log request sang các trường có cấu trúc và thêm năm test. Commit của nó được tạo khi vẫn còn một test thất bại, nên Claude chạy lại test cache tám lần, thấy thất bại trong năm lần và lần ra nguyên nhân là cùng tình trạng tranh chấp mà session đầu tiên đang sửa. Nó đề xuất cùng một cách sửa, không đụng vào cache vì nằm ngoài tác vụ của mình, và nói rõ trong phần tóm tắt rằng bộ test chưa vượt qua hoàn toàn.

claude.ai/code hiển thị session chuyển sang log có cấu trúc: diff mở rộng của src/server.js thay log request được ghép từ chuỗi bằng logger.info(‘request’, { method, path, status, duration_ms }), và thanh nhánh claude/structured-logging với nút Create PR.

Ba session trong giao diện claude.ai/code, chạy cục bộ và phát lại bản ghi hội thoại thực tế. Các bước thiết lập được lược bớt, đường dẫn hiển thị dưới /home/user, ba tiêu đề cuối ở thanh bên chỉ để minh họa, và nhãn chế độ hiển thị giá trị mặc định.

Session sửa test lúc được lúc không: lệnh sửa cache.js và chạy bộ test 40 lần, kết quả runs=40 fails=0, và phần giải thích của Claude về tình trạng tranh chấp trong TtlCache.get.

Session sửa test lúc được lúc không

Session cập nhật tài liệu API tidepool: phần tóm tắt của Claude về năm điểm sai trong docs/API.md cũ.

Session cập nhật tài liệu API tidepool

Video: Bản ghi 20 giây của cùng bản build cục bộ: nhấp chuyển qua lại giữa ba session, rồi cuộn bản ghi hội thoại của session logger

Kết quả của logger cho thấy vì sao cloud session phù hợp với công việc song song. Mỗi session có bản sao repo riêng, các tiến trình riêng và nhánh riêng. Session tài liệu và session logger đều khởi động server API để kiểm thử, nhưng không ảnh hưởng đến nhau. Trên một laptop, hai agent làm việc trong cùng một bản checkout sẽ sửa cùng các file và đụng cổng, trừ khi mỗi agent chọn một cổng riêng.

Do sự tách biệt đó, session logger không thể truy cập bản sửa cache mà session đầu tiên đang thực hiện. Hãy chia các tác vụ song song theo ranh giới file, merge các nhánh theo thứ tự hợp lý, và chuẩn bị tinh thần rằng một session có thể báo vấn đề mà session khác đang sửa.

Bên trong một cloud session của Claude Code

Cloud session là một session Claude Code chạy trên hạ tầng do Anthropic quản lý, hoặc trên máy của tổ chức bạn với một môi trường tự host. Hình dưới đây mô tả các thành phần. Bốn điểm rút ra sau hình là những điều sẽ thay đổi cách bạn làm việc.

Bạn khởi chạy session từ trình duyệt, điện thoại, Desktop, terminal, Slack hoặc một routine. Session chạy trong một VM mới với bản clone repo trên một nhánh claude, Claude Code ở chế độ auto và các bước thiết lập môi trường của bạn. Lưu lượng GitHub đi qua proxy giữ token của bạn bên ngoài VM; lưu lượng khác đi qua proxy bảo mật áp dụng danh sách mạng được phép truy cập. Kết quả là một nhánh và một pull request.

Cấu tạo của một cloud session. Mọi thứ agent có thể đụng tới đều nằm trong VM. Token GitHub và chính sách mạng của bạn nằm bên ngoài.

  • Mỗi tác vụ có máy riêng. Một VM mới với repo của bạn được clone vào một nhánh mới, nên các session không thể đụng đến file hay cổng của nhau. Xem những gì được cài sẵn.
  • Token GitHub của bạn không bao giờ đi vào VM. Một proxy giữ token đó, còn session nhận thông tin xác thực ngắn hạn chỉ có thể push lên nhánh làm việc của chính nó. Xem proxy GitHub.
  • Cấu hình Claude của repo được mang theo. Cấu hình cá nhân thì không. CLAUDE.md, rule, skill, agent và lệnh đi cùng repo, còn ~/.claude của bạn vẫn ở trên laptop. Xem cài đặt trong cloud session.
  • VM không hoạt động sẽ bị thu hồi. Mở lại session, bạn sẽ có một VM mới với hội thoại được khôi phục, nên hãy commit những phần công việc bạn muốn giữ. Xem môi trường hết hạn.

Để biết thông số, các chế độ quyền và các mức truy cập mạng, hãy xem tài liệu môi trường cloud.

Cục bộ hay cloud?

Cloud session không thay thế session cục bộ, và phần lớn mọi người dùng cả hai. Bảng dưới đây cho thấy các điểm khác nhau, còn các đoạn sau đó giải thích khi nào mỗi loại phù hợp.

Session cục bộ Cloud session
Chạy trên Máy của bạn Một VM mới cho mỗi tác vụ
Laptop ngủ hoặc mất mạng Session dừng Session tiếp tục chạy
Nhiều tác vụ trên một repo Cần worktree, cổng riêng và quản lý cẩn thận Một VM và một nhánh cho mỗi tác vụ
Agent có thể truy cập gì Mọi thứ tài khoản người dùng của bạn có thể truy cập, gồm khóa SSH, các CLI cloud và ~/.claude Repo, mức truy cập mạng bạn đặt, các connector bạn bật và thông tin xác thực GitHub chỉ có hiệu lực trong session
Khởi chạy hoặc theo dõi từ Máy đó, hoặc điện thoại qua điều khiển từ xa Trình duyệt, điện thoại, Desktop, terminal, Slack, một API call hoặc lịch chạy
Phê duyệt Mọi chế độ, gồm phê duyệt từng lệnh Auto, Accept edits hoặc Plan
Kết thúc với Các thay đổi trong working tree của bạn Một nhánh, và một pull request khi bạn muốn
Tài nguyên tính toán Máy của bạn Không tính phí tài nguyên riêng; dùng hạn mức của gói

Hãy làm cục bộ khi tác vụ cần thứ mà chỉ máy của bạn có. Chẳng hạn database chứa dữ liệu cục bộ thật, service bạn truy cập qua VPN, GPU, trình giả lập điện thoại hoặc phần cứng trên bàn. Bạn cũng nên làm cục bộ khi cần lặp nhanh các thay đổi trực quan và muốn thấy từng thay đổi trong trình duyệt của mình trong vài giây, hoặc khi tổ chức dùng Zero Data Retention, vốn vô hiệu hóa cloud session.

Có hai tính năng nằm giữa các lựa chọn này. Điều khiển từ xa (remote control) giữ session trên máy của bạn và cho phép bạn điều khiển nó từ điện thoại hoặc trình duyệt. Môi trường tự host, đang ở giai đoạn beta cho Team và Enterprise, chạy cloud session trên hạ tầng riêng của tổ chức, nên có thể truy cập mạng nội bộ.

Nếu không rơi vào các trường hợp trên, tác vụ đó là ứng viên phù hợp để đưa lên cloud. Phần tiếp theo nói về những workflow tận dụng điều này hiệu quả nhất.

Bảy workflow phù hợp với cloud session

Những workflow này tận dụng các khác biệt trong bảng: một máy riêng cho mỗi tác vụ, session tiếp tục chạy khi bạn vắng mặt, và một nhánh để bạn review khi hoàn tất.

1. Xử lý backlog song song

Giả sử bạn có năm việc sửa nhỏ, không liên quan đến nhau. Nếu làm cục bộ, bạn sẽ làm lần lượt hoặc thiết lập năm worktree và giữ cổng cùng các phần cài đặt của chúng tách biệt. Trên cloud, bạn khởi chạy năm session và review năm nhánh.

claude --cloud "Fix the flaky test in auth.spec.ts"
claude --cloud "Update the API documentation"
claude --cloud "Refactor the logger to use structured output"

claude --cloud clone remote GitHub ở nhánh hiện tại của bạn, nên hãy push các commit cục bộ trước. Trong lúc VM khởi động, CLI hiển thị danh sách các bước thiết lập cập nhật trực tiếp và đưa mọi nội dung bạn gõ vào hàng đợi.

Hãy viết mỗi tác vụ thành một ticket độc lập, nói rõ vấn đề là gì, thế nào là hoàn tất và cách chứng minh điều đó. Prompt sửa flaky test đã chỉ rõ bằng chứng cần có: chạy bộ test ít nhất 30 lần liên tiếp. Session đã chạy 40 lần.

Khi các tác vụ thuộc một công việc lớn hơn, một project (public beta cho Pro và Max) sẽ chạy một hội thoại điều phối để khởi chạy và theo dõi các cloud session giúp bạn. Sau đó, nó nhóm chúng theo trạng thái: đang làm, đang chờ bạn và sẵn sàng review.

2. Để nó chứng minh bản sửa có hiệu quả

Flaky test là ví dụ rõ nhất về công việc cần kiểm chứng lặp lại: bạn phải chạy bộ test hết lần này đến lần khác, và không muốn vòng lặp đó chiếm dụng máy mình đang làm việc. Trên cloud, Claude sửa cache rồi chạy cả bộ test 40 lần trong một lệnh.

Bước Bash của session sửa flaky test: bản sửa src/cache.js để cache promise đang xử lý, sau đó là vòng lặp chạy bộ test 40 lần, với kết quả runs=40 fails=0.

Bốn mươi lần chạy, không lần nào thất bại: lệnh và kết quả thực tế của session sửa flaky test, được phát lại trong giao diện claude.ai/code chạy cục bộ. Claude sửa src/cache.js và lặp cả bộ test 40 lần trong một bước. Đường dẫn hiển thị dưới /home/user.

VM không tính phí tài nguyên tính toán và CPU của nó không phải CPU của bạn, nên hãy yêu cầu kiểm chứng kỹ lưỡng. Chạy bộ test 200 lần, dùng bisect để tìm lỗi hồi quy qua 50 commit, chạy nhóm test tích hợp chậm, hoặc khởi động ứng dụng và gửi request bằng curl như session tài liệu đã làm.

Mỗi lượt của Claude vẫn được tính vào hạn mức gói, nhưng một lượt chạy test dài trong một lệnh tốn ít. Các lệnh chạy ở foreground hết thời gian chờ sau 2 phút theo mặc định (tối đa 10 phút), rồi tiếp tục chạy ở background thêm tối đa 30 phút. Bạn có thể tăng các giá trị mặc định bằng BASH_DEFAULT_TIMEOUT_MS và BASH_MAX_TIMEOUT_MS trong biến của môi trường.

3. Lên kế hoạch tại bàn, triển khai trên cloud, hoàn thiện trong terminal

Với một thay đổi lớn hơn, hãy thống nhất cách làm trước ở nơi việc trao đổi qua lại ít tốn công. Khởi chạy Claude ở chế độ plan, cùng nhau xây dựng kế hoạch, commit kế hoạch rồi push.

claude --permission-mode plan
# ...thống nhất kế hoạch, lưu vào docs/migration-plan.md, commit và push...
claude --cloud "Execute the migration plan in docs/migration-plan.md"

Trong lúc cloud session triển khai, terminal của bạn rảnh để làm việc khác. Khi hoàn tất, kéo session về để tự tay hoàn thiện.

claude --teleport            # chọn một cloud session
claude --teleport <session-id>

Teleport kiểm tra bạn đang ở cùng repo, fetch nhánh của session, checkout nhánh đó và tải toàn bộ hội thoại vào terminal của bạn. Bạn cần một working tree sạch (nó có đề nghị stash), và nhánh phải được push. Từ bên trong Claude Code, /teleport (hoặc /tp) mở cùng bộ chọn đó, và /tasks rồi t cũng hoạt động. Ứng dụng Desktop đi theo chiều ngược lại: menu Open in gửi một session cục bộ lên cloud.

4. Theo dõi từ điện thoại

Tab Code trong ứng dụng Claude kết nối với cùng các session đó. Từ điện thoại, bạn có thể khởi chạy một tác vụ, theo dõi, điều chỉnh hướng làm, trả lời câu hỏi Claude đặt ra hoặc bảo Claude theo dõi một pull request.

Điện thoại phù hợp với những câu hỏi mà bạn có thể quên mất trước khi đến được bàn phím. Mình giao cho session thứ tư kiểu câu hỏi bạn sẽ gõ trên điện thoại: tidepool dự báo thủy triều như thế nào, và có thể sai ra sao ở hai đầu của một khoảng thời gian? Nó chạy code để kiểm tra câu trả lời và tìm được một bug thật. Vòng lặp không bao giờ xét mẫu đầu tiên hoặc cuối cùng, nên API bỏ sót đỉnh triều rơi đúng vào thời điểm bắt đầu khoảng thời gian.

claude.ai/code ở chiều rộng điện thoại hiển thị phần đầu câu trả lời của Claude: predictTides có hai vấn đề ở biên, được xác nhận bằng cách chạy hàm, cùng mục giải thích cách hoạt động.

Một câu hỏi được đặt từ điện thoại: claude.ai/code ở chiều rộng điện thoại trong trình duyệt (không phải ứng dụng native), chạy cục bộ và phát lại câu trả lời thực tế của session thứ tư

Phần cuối câu trả lời: bảng tần suất các đỉnh và đáy triều được báo cáo có mẫu lân cận cùng độ cao ở từng trạm, cùng cách sửa được đề xuất.

Claude kiểm tra từng nhận định bằng cách chạy code với dữ liệu mẫu và không thay đổi file nào

5. Giao lỗi CI và nhận xét review cho Claude

Khi repo đã cài Claude GitHub App, một cloud session có thể theo dõi pull request và hành động theo những gì xảy ra với nó. Từ thanh CI trong một session tại claude.ai/code, bật Auto-fix. Bạn cũng có thể chạy /autofix-pr trên nhánh PR trong terminal, yêu cầu ứng dụng điện thoại theo dõi PR hoặc dán URL của PR vào một session.

Claude push các bản sửa rõ ràng cho những check thất bại và nhận xét review, rồi giải thích những gì đã thay đổi. Nó hỏi bạn về mọi điều mơ hồ hoặc liên quan đến kiến trúc. Các phản hồi trong luồng review được đăng dưới tên người dùng GitHub của bạn, có nhãn Claude Code. Claude không được thông báo về xung đột merge với nhánh cơ sở, nên hãy yêu cầu nó rebase. Bình luận của nó cũng có thể kích hoạt các tác vụ tự động dựa trên bình luận, chẳng hạn Atlantis.

6. Cho công việc tự khởi chạy

Một routine (research preview) là một tập hợp tài nguyên được lưu để thực hiện một tác vụ, chẳng hạn prompt, repo, connector và môi trường. Mỗi lần chạy là một cloud session, được khởi động bởi một trigger. Trigger có thể là lịch chạy (tần suất cao nhất là mỗi giờ), một HTTP call đến endpoint riêng của routine, hoặc một sự kiện GitHub như mở pull request hay phát hành bản release. Tạo routine tại claude.ai/code/routines, trong ứng dụng Desktop hoặc bằng /schedule trong CLI. Routine chạy mà không hỏi phê duyệt, và mặc định push lên các nhánh có tiền tố claude/.

Có hai công cụ nhỏ hơn giúp ích ở đây. Bạn có thể đưa một yêu cầu tiếp theo vào hàng đợi của session đang chạy từ bất kỳ máy nào bạn đã đăng nhập, kể cả một job CI.

claude -p "The integration tier is green now; rebase on main and push" --cloud <session-id>

Bạn cũng có thể đánh dấu trang cho một session được điền sẵn. Một URL như claude.ai/code?prompt=Triage+the+newest+issues&repositories=acme-labs/tidepool mở claude.ai/code với prompt và repo đã được điền.

7. Chạy code bạn chưa hoàn toàn tin tưởng

Pull request của một cộng tác viên, script cài đặt của dependency mới hoặc repo bạn clone năm phút trước đều có thể chạy code bạn chưa đọc. Trên laptop, code đó chạy bên cạnh các khóa SSH, các session CLI cloud và hồ sơ trình duyệt của bạn. Trong cloud session, nó chạy trên một VM dùng xong bỏ đi, không có những thứ đó, với thông tin xác thực GitHub chỉ có hiệu lực trong session và mạng mà bạn có thể giới hạn.

Đặt quyền truy cập mạng của môi trường thành None để chạy với giới hạn chặt nhất, hoặc giữ Trusted, cho phép truy cập các kho package, GitHub và các host SDK cloud lớn. Ngay cả ở mức None, Claude Code vẫn gửi request đến API Anthropic, nên dữ liệu có thể rời VM theo đường đó, và session vẫn có thể push lên nhánh của chính nó. Mọi lưu lượng đi ra đều qua một proxy ghi lại tên host.

Kết nối GitHub mà không bị mắc kẹt

Nếu cloud session đầu tiên gặp vấn đề, GitHub là nguyên nhân có khả năng cao nhất. Phần lớn vấn đề đến từ việc cloud session cần hai quyền GitHub riêng biệt.

  • Đăng nhập bằng GitHub cho Claude biết bạn là ai.
  • Cài Claude GitHub App trên một tài khoản hoặc tổ chức xác định những repo riêng tư mà Claude có thể thấy ở đó.

Repo công khai chỉ cần bước đầu tiên. Repo riêng tư cần bước thứ hai trên tài khoản hoặc tổ chức sở hữu chúng. Nếu bạn đã kết nối GitHub nhưng không thấy một repo riêng tư, thường là App chưa được cài trên tài khoản hoặc tổ chức sở hữu repo đó.

Bạn đã kết nối gì Repo công khai Repo riêng tư của bạn Repo riêng tư của tổ chức Auto-fix, trigger GitHub, project
Chỉ đăng nhập bằng GitHub Có Không Không Không
+ App trên tài khoản cá nhân Có Có Không Repo của bạn
+ App trên tổ chức (chủ sở hữu phê duyệt) Có Chỉ khi cũng cài trên tài khoản của bạn Có Repo của tổ chức
/web-setup (token gh của bạn) Có Có Mọi repo token của bạn có thể truy cập Không, cần App

Cách A: kết nối trong trình duyệt (khuyến nghị)

Kết nối tài khoản GitHub tại claude.ai/connect-github, rồi cài Claude GitHub App trên tài khoản hoặc tổ chức sở hữu repo của bạn. Với tổ chức, thường cần chủ sở hữu phê duyệt việc cài đặt. Hướng dẫn bắt đầu nhanh trình bày từng bước.

Màn hình viết code cùng Claude ở bất cứ đâu với nút Connect to GitHub.

Bước 1, đăng nhập bằng GitHub. Các màn hình hướng dẫn ban đầu của claude.ai/code, chạy cục bộ với dữ liệu mẫu; tên repo trong hình minh họa và nhãn Research preview là một phần hình ảnh có sẵn của sản phẩm.

Màn hình kết nối repo yêu cầu bạn cài Claude GitHub App trên các repo của mình, với các nút Skip và Connect repositories.

Bước 2, cài Claude GitHub App

Nếu GitHub không đưa bạn trở lại claude.ai/code, trang kết nối tại claude.ai/connect-github có thể hiển thị danh sách ngắn các nguyên nhân thường gặp để kiểm tra. Một trong số đó là bước đăng nhập một lần (single sign-on), sẽ khiến các repo của tổ chức bị ẩn nếu bạn bỏ qua.

Màn hình kết nối chưa hoàn tất với năm gợi ý: đăng nhập đúng tài khoản GitHub, cấp quyền cho từng tổ chức ở bước single sign-on, bắt đầu lại nếu thấy GitHub connection not completed, kết nối tài khoản của bạn trước và để chủ sở hữu phê duyệt quyền truy cập tổ chức sau, hoặc chạy /web-setup từ terminal.

Nếu GitHub không đưa bạn trở lại: danh sách kiểm tra có sẵn của sản phẩm cho kết nối GitHub bị gián đoạn, từ luồng hướng dẫn thiết lập nhanh trong giao diện claude.ai/code chạy cục bộ

Auto-fix, routine được kích hoạt bởi GitHub và project cũng phụ thuộc vào App, nên hãy cài nó ngay cả khi bạn kết nối bằng cách khác.

Cách B: kết nối từ terminal bằng /web-setup

Nếu bạn đã dùng CLI gh, chạy /web-setup bên trong Claude Code để gửi token gh đến tài khoản Claude. Khi đó, session có thể truy cập mọi repo mà token đó truy cập được, dù có App hay không. Xem Kết nối từ terminal để biết các bước. Với gói Team và Enterprise, chủ sở hữu phải bật Quick setup trước.

Cách C: bỏ qua GitHub cho một tác vụ dùng một lần

Chạy claude --cloud trong repo không có remote GitHub, hoặc repo chưa cài App, và Claude Code tải lên một gói repo của bạn thay vì clone nó. Session chỉ có thể push trở lại nếu kết nối GitHub của bạn có quyền push vào repo đó. Tài liệu liệt kê những gì gói này bao gồm và bỏ qua.

Nếu bạn dùng Team hoặc Enterprise

Chủ sở hữu có một danh sách ngắn cần thực hiện: bật connector GitHub tại claude.ai/admin-settings/connectors, cho phép cloud session trong cài đặt quản trị Claude Code, cài Claude GitHub App trên các repo của tổ chức (hoặc phê duyệt yêu cầu của thành viên), và quyết định có bật Quick setup hay không. Tổ chức dùng danh sách IP được phép truy cập (IP allowlist) hoặc GitHub Enterprise Server cần thêm một bước. Xem tài liệu về IP allowlist và GitHub Enterprise Server.

Khi vẫn không hoạt động

Bạn thấy gì Vì sao Cách sửa
Một repo riêng tư không xuất hiện trong bộ chọn App chưa được cài trên tài khoản hoặc tổ chức sở hữu repo, hoặc quyền truy cập repo của App không bao gồm repo đó Cài App ở đó, hoặc thêm repo vào mục Repository access của App trong cài đặt GitHub của bạn
Lỗi nói rằng bạn phải là chủ sở hữu tổ chức mới liên kết được Tổ chức chặn việc kiểm tra tư cách thành viên, thường do yêu cầu quyền App đang chờ duyệt, IP allowlist hoặc SAML single sign-on Chủ sở hữu chấp nhận yêu cầu quyền đang chờ trong cài đặt GitHub App của tổ chức, bật việc kế thừa IP allowlist cho các GitHub App đã cài, hoặc (với SAML) cấp quyền truy cập tổ chức cho Claude
Các repo của tổ chức không xuất hiện ngay sau khi kết nối Tổ chức dùng SAML single sign-on và bạn đã bỏ qua bước cấp quyền Ở bước “Single sign-on to your organizations” của GitHub, nhấp Authorize bên cạnh từng tổ chức trước khi tiếp tục. Nếu đã bỏ qua, hãy cấp quyền cho Claude với tổ chức đó trong cài đặt GitHub rồi kết nối lại
Mọi cloud session đều thất bại với lỗi xác thực Tổ chức Claude của bạn dùng IP allowlist Yêu cầu bộ phận hỗ trợ miễn áp dụng giới hạn này cho các service do Anthropic host

Với các vấn đề khác, xem phần khắc phục sự cố trong tài liệu, gồm trường hợp không có repo nào xuất hiện sau khi kết nối GitHub. Để ngắt kết nối GitHub hoàn toàn, dùng claude.ai/customize/connectors.

Cung cấp những gì session cần để tự kiểm tra công việc

Một session có thể chạy test của bạn sẽ tự kiểm tra công việc trước khi bàn giao. Nếu không, bạn phải review các thay đổi chưa ai chạy thử. Phần lớn giá trị trong các demo của cẩm nang này đến từ việc Claude chạy mọi thứ: bộ test 40 lần, server và các lệnh curl, phép tính thủy triều ở biên của khoảng thời gian. Mười phút thiết lập môi trường giúp Claude có cách thực hiện những kiểm tra đó.

Hộp thoại thêm môi trường cloud với tên tidepool, quyền truy cập mạng Trusted, LOG_LEVEL=debug và script thiết lập cài shellcheck bằng apt-get.

Thêm môi trường cloud trong giao diện claude.ai/code, chạy cục bộ với các giá trị mẫu: tên, mức truy cập mạng, biến theo định dạng .env và script thiết lập

  • Bắt đầu với môi trường Default. Nó dùng quyền truy cập mạng Trusted, không có biến và không có script thiết lập, đủ cho phần lớn repo JavaScript, Python, Go và Rust.
  • Dùng script thiết lập cho máy. Script chạy với quyền root trước khi Claude Code khởi động, nên apt install hoạt động. Nó phải thoát với mã 0, nếu không session sẽ không bắt đầu, và nên hoàn tất trong khoảng năm phút để môi trường được cache. Sau đó, các session mới khởi động từ một bản chụp trạng thái (snapshot) đã có các tool của bạn trên đĩa. Cache được tạo lại khi bạn thay đổi script hoặc các host được phép truy cập, và khoảng mỗi bảy ngày.
  • Dùng hook SessionStart cho project. Đặt npm install và các bước tương tự vào một hook trong .claude/settings.json của repo để chúng chạy giống nhau ở máy cục bộ và trên cloud. Kiểm tra CLAUDE_CODE_REMOTE nếu một bước chỉ nên chạy trên cloud. Hook của repo được nạp trong các session chỉ có một repo.
  • Khởi động service cho từng session. Cache lưu các file. Những tiến trình đang chạy không được giữ lại qua cache. Yêu cầu Claude chạy service postgresql start, hoặc làm việc đó trong hook SessionStart.
  • Chọn mức truy cập mạng hẹp nhất đủ dùng. Trusted bao gồm các kho package thông dụng. Dùng Custom để thêm kho riêng, và chỉ dùng Full khi tác vụ cần truy cập internet không giới hạn. Thay đổi được áp dụng cho các session đang chạy trong khoảng một phút.
  • Không đặt bí mật vào các biến dùng chung. Bất kỳ ai sử dụng môi trường đều nhìn thấy biến môi trường. Trên Pro và Max, thông tin xác thực API của môi trường gắn khóa vào request gửi đến các host bạn chỉ định, ở bên ngoài VM, nên khóa không bao giờ nằm trong một biến.
  • Đặt các lệnh trong CLAUDE.md. ~/.claude cá nhân của bạn không đi vào VM trên cloud. Nếu Claude cần biết cách chạy test tích hợp, repo phải nói rõ điều đó.

Những thói quen hữu ích

  • Một tác vụ, một session. Các session nhỏ, riêng biệt dễ review hơn và ít tốn kém hơn khi bỏ đi.
  • Yêu cầu bằng chứng. Chỉ rõ lệnh chứng minh tác vụ đã hoàn tất, và đọc phần tóm tắt của Claude trước khi xem diff.
  • Push trước khi chạy claude --cloud. VM clone từ GitHub, nên các commit chưa push sẽ không đến được VM.
  • Commit dần khi làm tác vụ dài. VM không hoạt động có thể bị thu hồi.
  • Review trong màn hình diff. Các nhận xét ngay trong diff được gom vào tin nhắn tiếp theo của bạn, và Create PR có thể mở một PR đầy đủ, một PR nháp hoặc trang soạn PR của GitHub.
  • Điều chỉnh hướng làm khi Claude đang làm việc. Tin nhắn bạn gửi lúc Claude làm việc được đưa vào hàng đợi, và bạn có thể rút lại tin nhắn đang chờ.
  • Chia sẻ session. Trên Team và Enterprise, đặt khả năng hiển thị session thành Team để người review có thể đọc cách thay đổi được thực hiện. Commit từ cloud session có dòng metadata cuối commit (trailer) Claude-Session liên kết trở lại bản ghi hội thoại.
  • Theo dõi hạn mức. Các session song song cũng dùng hạn mức gói song song, nên năm session tiêu thụ hạn mức nhanh gấp khoảng năm lần một session. Routine có giới hạn theo giờ riêng, và project có thể khởi chạy tối đa 200 luồng mới mỗi ngày.

Câu hỏi thường gặp

Ai có thể dùng cloud session? Người dùng gói Pro, Max và Team, cùng người dùng Enterprise có suất sử dụng premium hoặc suất Chat + Claude Code, đăng nhập bằng tài khoản claude.ai. Cloud session không dùng được với khóa API Console hoặc nhà cung cấp bên thứ ba. Xem tài liệu cloud session.

Dữ liệu của mình đi đâu? Anthropic lưu bản ghi hội thoại của session, và thời gian lưu phụ thuộc vào gói cùng cài đặt cải thiện model của bạn. VM bị thu hồi sau một thời gian không hoạt động, và xóa session sẽ xóa dữ liệu của nó. Xem sử dụng dữ liệu và bảo mật.

Claude có dùng dữ liệu cloud session của mình để huấn luyện không? Cloud session tuân theo cùng chính sách với phần còn lại của Claude Code. Trên Team, Enterprise và API, Anthropic không huấn luyện model bằng code hoặc prompt của bạn trừ khi tổ chức chủ động đồng ý. Trên Free, Pro và Max, điều đó phụ thuộc vào cài đặt cải thiện model của bạn. Xem sử dụng dữ liệu.

Nó có xử lý được repo lớn của mình không? VM có khoảng 4 vCPU, 16 GB RAM và 30 GB dung lượng đĩa. Đặt các bước cài đặt nặng vào một script thiết lập để chúng chạy một lần và được đưa vào snapshot đã cache.

Còn GitLab hoặc Bitbucket thì sao? claude --cloud có thể tải lên một gói từ bất kỳ repo git nào, nhưng session không thể push trở lại các host đó. GitHub Enterprise Server được hỗ trợ trên Team và Enterprise. Xem các giới hạn nền tảng.

Điều gì xảy ra khi các nhánh song song xung đột? Các session không biết về nhau. Merge một nhánh, rồi gửi yêu cầu tiếp theo cho session kế tiếp, chẳng hạn claude -p "rebase on main and fix any conflicts" --cloud <session-id>.

Mình có mất các tool cục bộ không? Cấu hình cấp người dùng không được mang theo, nên hãy chuyển những gì cả đội cần vào repo: commit skill và lệnh dưới .claude/, thêm MCP server ở phạm vi project vào .mcp.json, và ghi các lệnh test trong CLAUDE.md. Cài đặt trong cloud session liệt kê những gì mỗi session đọc.

Bắt đầu trong năm phút

Thiết lập mất khoảng năm phút. Sau đó, bạn có thể giao một tác vụ, đóng laptop và quay lại với một nhánh sẵn sàng review.

  1. Mở claude.ai/code, hoặc chạy /login trong Claude Code bằng tài khoản claude.ai.
  2. Kết nối GitHub và cài Claude GitHub App ở nơi chứa repo của bạn.
  3. Chọn repo và môi trường Default.
  4. Giao cho Claude một tác vụ từ backlog của bạn, kèm một lệnh chứng minh nó đã hoàn tất.
  5. Đóng tab. Sau đó theo dõi từ điện thoại, rồi review diff và tạo pull request tại claude.ai/code.

Nội dung gốc: claude.dev Blog © Anthropic, PBC, giấy phép đăng lại có sự cho phép của Anthropic. Bản dịch và ghi chú: Lê Văn Dũng.