CẨM NANG MIỄN PHÍ · EROCA THANH

Làm chủ 2 tài khoản Claude trên 1 máy

Chuyện thật của Thanh: tách phiên, đổi quota, resume đúng — hết cảnh lịch sử trộn lẫn.

2 chữ để nhớ đời 3 dòng lệnh tách kho 4 lỗi thật đã vấp 11 dòng checklist
Bắt đầu đọc

PHẦN 1

Nỗi đau đã đẩy Thanh vào cuộc điều tra

Bạn có 2 tài khoản Claude trả phí — một cái công việc, một cái cho việc cá nhân. Cả hai đều đang chạy trên cùng chiếc MacBook. Rồi một sáng bạn mở lên và thấy: mọi phiên chat của cả 2 tài khoản đổ về cùng một chỗ. Web hiện lẫn lộn. Bạn không còn biết phiên nào là của tài khoản nào. Muốn đổi hạn mức (quota) giữa 2 gói mình đang trả tiền cũng loay hoay không biết bắt đầu từ đâu.

Đó là buổi sáng của Thanh, ngày 15 tháng 7. Thanh trả tiền đầy đủ cho cả 2 tài khoản. Không có gì lách giới hạn ở đây — chỉ là muốn làm chủ 2 tài khoản của chính mình để chúng đừng đá nhau.

Sau nửa ngày mở nắp capô đi tìm hiểu, Thanh rút ra một mô hình đủ giản dị để nhớ suốt đời + một bộ 4 bước cụ thể. Bài này viết lại cho bạn — với đúng chuyện thật, đúng câu lệnh đã chạy, và cả 4 chỗ vấp ngã của Thanh trên đường đi.

PHẦN 2 · MÔ HÌNH ĐINH

Mô hình "Cửa" và "Kho" — cái đinh mấu chốt

Thanh thử vẽ ra thứ mà Claude đang làm khi bạn login. Vẽ đi vẽ lại, cuối cùng chỉ còn 2 chữ:

🚪

Cửa

Cửa = lần login của bạn. Cửa quyết định ai đang TRẢ QUOTA cho phiên chat này. Cửa đổi được — mở SIM khác vào là xong.

📦

Kho

Kho = nơi các phiên chat được ghi lên đĩa máy bạn (thư mục ~/.claude/projects/). Kho đứng yên theo cửa — mở phiên qua cửa nào thì phiên ấy nằm trong kho của cửa ấy.

Cửa và kho là 2 thứ khác nhau. Nhưng 90% người mới (bao gồm Thanh của buổi sáng hôm đó) mặc định coi chúng là một. Cứ tưởng đổi login là đổi cả lịch sử — hoá ra không. Cứ tưởng logout xong là mất phiên cũ — hoá ra không nốt, chúng vẫn nằm trên đĩa, chỉ là cửa cũ đóng lại nên bạn không mở được từ web nữa.

💡 Hiểu tách bạch được 2 chữ này, gần như mọi rối loạn còn lại tự tan.

Vậy thì để 2 tài khoản có 2 kho riêng, ta cần cấp cho tài khoản phụ một cái nhà riêng — không phải chỉ đổi cửa, mà là chỉ định thẳng cho nó một chỗ ở khác.

PHẦN 3 · BẮT TAY LÀM

Tách kho cho tài khoản phụ — 3 dòng lệnh

Cơ chế then chốt: Claude Code xác định "nhà" của mình bằng biến HOME của tiến trình. Bình thường HOME là thư mục người dùng của bạn (vd /Users/ban), nên mọi phiên ghi vào ~/.claude/projects/. Nếu ta khởi động Claude với HOME trỏ sang thư mục khác — nó sẽ ghi phiên vào ~/.claude/projects/ của thư mục đó thay vì thư mục người dùng gốc.

Đây là 3 bước Thanh đã làm (bạn chép nguyên văn):

a

Bước a — dựng "nhà" cho tài khoản phụ:

mkdir -p ~/.claude-acc2-home/.claude
b

Bước b — viết 1 wrapper 3 dòng gọi Claude với HOME mới:

mkdir -p ~/bin
cat > ~/bin/claude-acc2 <<'EOF'
#!/bin/zsh
exec env HOME="$HOME/.claude-acc2-home" claude "$@"
EOF
chmod +x ~/bin/claude-acc2

Lệnh mkdir -p ~/bin ở đầu là bắt buộc — nếu máy bạn chưa có thư mục ~/bin thì lệnh cat > ~/bin/claude-acc2 sẽ báo "No such file or directory" và wrapper không được tạo. mkdir -p an toàn ở chỗ: có sẵn cũng không lỗi.

Nếu ~/bin chưa nằm trong PATH, bạn có 2 lựa chọn: (a) thêm export PATH="$HOME/bin:$PATH" vào cuối ~/.zshrc rồi mở Terminal mới; hoặc (b) đổi đường dẫn wrapper sang một thư mục đã có trong PATH (kiểm bằng echo $PATH) — ví dụ ~/.local/bin/claude-acc2.

c

Bước c — mở link hooks (BƯỚC HAY QUÊN):

ln -sfn ~/.claude/hooks ~/.claude-acc2-home/.claude/hooks
⚠️ Đây là chỗ Thanh vấp trước tiên và chat chết âm thầm — sẽ kể ở mục 7. Bước này bắt buộc: hooks (móc — những đoạn kịch bản Claude Code chạy tự động khi có sự kiện như SessionStart, UserPromptSubmit) khai báo đường dẫn tuyệt đối tới $HOME/.claude/hooks/*. Khi bạn đổi HOME, đường dẫn ấy trỏ sang thư mục rỗng → hooks không chạy được → có hook chặn phiên và chat của bạn không hồi âm — mà không hiện lỗi. Symlink một cú là xong.

Từ giờ, gõ claude bình thường → phiên vào kho tài khoản chính. Gõ claude-acc2 → phiên vào kho tài khoản phụ. Hai kho tách bạch trên đĩa, mỗi kho có ~/.claude/projects/ riêng của mình.

PHẦN 4

Đăng nhập (/login) từng cửa 1 lần — và cái bẫy trình duyệt

Lần đầu gõ claude-acc2, Claude sẽ nhắc bạn đăng nhập bằng câu lệnh /login. Bấm Enter, nó mở trình duyệt.

⚠️ Cái bẫy ở đây: trình duyệt của bạn nhiều khả năng đã đăng nhập sẵn một tài khoản Google (hoặc SSO). Trang login Claude sẽ hiện một dòng nhỏ kiểu "Continue as <tên bạn>" — nếu bạn bấm nhầm cái đó thì… nó login đúng cái tài khoản CHÍNH mà bạn muốn tránh. Kết quả: kho tài khoản phụ ra đời với danh tính tài khoản chính. Rối lại từ đầu.

Cách đúng: lướt xuống, bấm "Use another account" (hoặc "Sign in with a different account" tuỳ trình duyệt). Chọn đúng tài khoản phụ. Xong.

Lặp tương tự cho tài khoản chính nếu bạn chưa login: gõ claude (không có suffix), /login, chọn tài khoản chính.

Từ giờ, bạn có 2 cửa vào rõ ràng: claude = cửa chính, claude-acc2 = cửa phụ. Kho theo đó tách sạch.

PHẦN 5

Mở lại phiên cũ (--resume) đúng cách — 2 gạch, gõ ở shell (không phải trong phiên)

Muốn tiếp một phiên chat cũ, dùng cờ --resume (hai gạch, có dạng viết tắt -r). Nhưng có 2 chỗ dễ nhầm:

1️⃣

Nhầm 1 — thiếu 1 gạch.

-resume (một gạch, nhiều chữ) là cú pháp sai. Trên CLI Claude Code hiện tại, nó có thể bị hiểu như -r esume (nhận -r viết tắt của --resume, rồi lấy chuỗi "esume" làm session ID) — kết quả bạn nhận về lỗi kiểu --resume requires a valid session ID. Đúng là --resume (hai gạch) hoặc -r (một gạch một chữ).

2️⃣

Nhầm 2 — gõ trong phiên thay vì ở shell.

Đây là chỗ Thanh vấp hôm đó. --resume là cờ dòng lệnh của binary claude — bạn phải gõ nó ở terminal khi chưa vào phiên. Nếu bạn đang trong phiên và gõ claude --resume, nó gửi chuỗi ấy như một câu lệnh cho AI trong phiên đó — không mở picker, không làm gì cả.

Đúng cách: thoát phiên hiện tại (Ctrl+D hoặc /exit) → về shell → gõ:

claude --resume        # picker của kho tài khoản chính
claude-acc2 --resume   # picker của kho tài khoản phụ

Picker chỉ hiện phiên trong kho tương ứng với cửa bạn vào — chính là lý do 2 kho được tách ở mục 3.

PHẦN 5.5 · BÀI HỌC NÓNG

Cảnh báo: chat 1 phiên chỉ ở 1 nơi — kẻo "hai bản mình" cùng trả lời

Đây là bài học Thanh vừa vấp cùng ngày viết bài này — nên bổ sung ngay còn nóng.

Bạn đang chat với AI trong một phiên. Bạn tiện tay mở phiên đó ở một nơi thứ hai — có thể là một cửa sổ Terminal khác, hoặc một giao diện web mã nguồn mở bên thứ ba dành cho Claude Code (có sẵn vài UI phổ biến ngoài kia). Rồi bạn gõ chat ở cả 2 chỗ song song.

Hiện tượng: bạn thấy có 2 "phiên bản mình" cùng trả lời, mỗi bên biết một nửa câu chuyện. Rất kỳ quái.

Cơ chế thật (Thanh đã đo trên máy sạch — bạn có thể tự thử với claude -p trên một thư mục làm việc tạm):

Cách nhận biết bạn đã dính:

Nguyên tắc Thanh rút ra sau lần vấp:

🔑 Chat với 1 phiên chỉ ở 1 nơi. Xem thì thoải mái.

Đọc lại lịch sử ở web, ở một cửa sổ Terminal khác, mở picker --resume để xem preview — thoải mái, không ghi. Chỉ đừng GÕ VÀO cùng phiên từ 2 chỗ. Nếu bạn thật sự muốn thử một hướng khác trong khi giữ nguyên hướng cũ, hãy gõ minh bạch với cờ --fork-session — Claude Code sẽ tạo hẳn một nhánh mới, không đè lên phiên gốc.

PHẦN 6 · TUYỆT CHIÊU

Tuyệt chiêu quota-switch giữa phiên — đổi ai TRẢ, không đổi kho

Đây là mẹo Thanh thích nhất, vì nó chỉ hiểu được khi đã rõ mô hình cửa/kho ở mục 2.

Tình huống: bạn đang chạy dở một phiên dài trong claude (cửa chính). Đùng cái, Claude báo hết hạn mức buổi (chuỗi bạn thấy trên màn hình sẽ đại loại "session limit reached"). Thường thì bạn sẽ nghỉ, đợi vài tiếng. Nhưng bạn còn tài khoản kia đang dư hạn mức — vậy sao không dùng nó ngay trong phiên này?

Được. Gõ ngay trong phiên:

/login

Nó sẽ mở trình duyệt và cho bạn đổi tài khoản đang xài quota. Chọn tài khoản kia. Trở lại phiên → chạy tiếp — không mất bối cảnh, không cần thoát ra.

Vì sao được: /login chỉ đổi cửa (ai TRẢ QUOTA cho các lượt sắp tới). Kho (phiên này đang nằm ở đâu trên đĩa) không đổi — nó vẫn ở kho của cửa bạn đã mở ban đầu. Phiên vẫn hiển thị đúng trong web của kho gốc. Chỉ có đồng hồ quota là chuyển sang tài khoản kia gánh.

📱 Đây là cùng một cơ chế với chuyện bạn thay SIM giữa lúc đang gọi điện — thay SIM đổi nhà mạng tính cước, cuộc gọi vẫn là cuộc gọi ấy.

PHẦN 7

Bốn lỗi Thanh đã vấp — bạn tránh trước cho khỏe

Lỗi 1 — Terminal "được mở từ tiện ích khác" mang token đè /login.

Đây là lỗi Thanh vấp đau nhất. Một số cửa sổ Terminal bạn thấy đang bật thực ra không phải bạn mở tay — mà được mở bởi một tiện ích hoặc dịch vụ khác trên máy (ví dụ caffeinate, một tác vụ nền, một ứng dụng khác), và tiến trình cha ấy đã set sẵn biến môi trường CLAUDE_CODE_OAUTH_TOKEN hoặc ANTHROPIC_API_KEY. Khi bạn /login trong cửa sổ ấy, Claude Code báo "Login successful" (đúng, luồng OAuth chạy được), nhưng phía dưới dòng nhập vẫn hiện "API Usage Billing" hoặc "Not logged in" — vì biến môi trường token đè lên OAuth vừa đăng nhập. Bạn tưởng đã đăng nhập, hoá ra không.

Kiểm cực nhanh trước khi /login:

env | grep -c CLAUDE_CODE_OAUTH_TOKEN
env | grep -c ANTHROPIC_API_KEY

Cả 2 phải trả về 0. Nếu ra số khác → mở một cửa sổ Terminal mới (từ Finder / Spotlight, không phải từ script/app khác) và làm lại. Đồng thời rà ~/.zshrc, ~/.zprofile, ~/.bash_profile xem có export 2 biến trên không — có thì gỡ ra.

Lỗi 2 — Gõ claude --resume trong phiên.

Đã kể ở mục 5. Cờ dòng lệnh chỉ hiểu ở shell, không trong phiên.

Lỗi 3 — Thiếu 2 gạch của --resume.

Đã kể ở mục 5. --resume (hai gạch) hoặc -r (một gạch một chữ). -resume (một gạch, nhiều chữ) là cú pháp sai — trên CLI hiện tại nó có thể bị parse thành -r esume (session ID "esume" không hợp lệ), báo lỗi.

Lỗi 4 — Tưởng "logout xong là mất lịch sử".

Không mất. Phiên chat của bạn nằm trên đĩa ở ~/.claude/projects/ (và ở ~/.claude-acc2-home/.claude/projects/ với cửa phụ). Logout chỉ đóng "cửa" (huỷ oauth session ở phía Claude cloud) — kho phiên vẫn còn nguyên. Login lại cùng tài khoản → vẫn --resume được. Đây là chỗ Thanh suýt xoá cả folder vì "dọn cho gọn" — dừng tay kịp.

MANG ĐI DÙNG

Checklist 11 dòng — dán trên bàn

1

Chọn tên "cửa phụ" (Thanh dùng claude-acc2 — bạn có thể đặt gì cũng được).

2

mkdir -p ~/.claude-acc2-home/.claude

3

mkdir -p ~/bin (nếu chưa có) → viết wrapper 3 dòng ~/bin/claude-acc2 với exec env HOME=... claude "$@"chmod +x.

4

Symlink hooksln -sfn ~/.claude/hooks ~/.claude-acc2-home/.claude/hooks.

5

Mở Terminal MỚI, kiểm env | grep -c CLAUDE_CODE_OAUTH_TOKEN = 0.

6

claude-acc2/login"Use another account" → chọn tài khoản phụ.

7

Verify: claude-acc2 --resume → picker chỉ hiện phiên kho phụ.

8

Cửa chính: gõ claude — kho riêng, picker riêng.

9

Hết quota giữa phiên: /login NGAY TRONG phiên → chọn tài khoản kia → chạy tiếp.

10

Chat với 1 phiên chỉ ở 1 nơi; xem thì thoải mái. Đừng gõ vào cùng phiên từ 2 chỗ — sẽ có 2 "bản mình" cùng trả lời, transcript loạn.

11

Muốn "dọn" phiên cũ: đừng xoá tay file .jsonl khi chưa sao lưu. Logout không xoá lịch sử. Nếu thật sự cần dọn, hãy copy nguyên ~/.claude/projects/ sang một chỗ khác làm bản dự phòng trước — rồi mới thao tác trên bản copy đó.

Đóng bài

Buổi sáng hôm ấy Thanh ngồi vẽ 2 chữ CửaKho vào cuốn sổ tay. Bây giờ nhìn lại thấy nó buồn cười — vì cả một buổi sáng loay hoay chỉ để hiểu ra điều mà nếu ai đó nói trước thì mất 3 phút.

Bạn không cần phải bỏ nửa ngày như Thanh. Bạn có checklist 11 dòng ở trên. Làm 1 lần, 2 tài khoản trả phí của bạn sẽ ngồi yên trong 2 kho riêng, chuyển quota mượt như đổi SIM, và bạn không bao giờ phải mở web lên và cau mày "cái phiên này của tài khoản nào ấy nhỉ" nữa.

Chúc bạn làm chủ.

— Eroca Thanh

Eroca Thanh — Founder AIBOSS

— NGƯỜI CHIA SẺ

Eroca Thanh

Nguyễn Văn Thanh, được biết đến với tên thương hiệu Eroca Thanh — Founder AIBOSS, công ty Maracafi Limited (Anh Quốc).

18 tháng qua Thanh dựng hệ điều hành AI cho chính doanh nghiệp mình, và chạy thử trên một tiệm nail nhiều phòng ban ở Anh để chắc chắn nó đứng vững thật.

Thanh đứng lớp workshop AIBOSS AUTO CONTENT và dẫn dắt cộng đồng học viên "Thử thách 90 ngày".

"Thanh chỉ bạn cách ra lệnh để nhân viên AI bấm chuột thay bạn — không phải bạn ngồi bấm."

HỎI ĐÁP

Bốn câu hay được hỏi

Làm vậy có phải là né giới hạn của Claude không?

Không. Bài này không hướng dẫn lách trần hay dùng chung một gói cho nhiều người. Cả 2 tài khoản trong câu chuyện đều là gói trả phí của chính Thanh — việc duy nhất bài làm là cho chúng 2 chỗ ở riêng trên máy để đừng đá nhau, và cho bạn biết lúc nào ai đang gánh hạn mức. Trường hợp của bạn khác, hãy đọc điều khoản sử dụng của Claude để tự yên tâm.

Tôi không biết lập trình, có làm được không?

Được. Toàn bộ phần cài đặt là 3 khối lệnh chép nguyên văn ở mục 3 — bấm nút "Sao chép" rồi dán vào cửa sổ Terminal. Bạn không cần viết dòng mã nào. Phần còn lại của bài là bấm chọn trong trình duyệt và gõ /login.

Làm theo bài này tôi có mất lịch sử chat cũ không?

Không. Các bước trong bài chỉ thêm một chỗ ở mới cho tài khoản phụ, không đụng gì tới kho cũ. Cả chuyện đăng xuất cũng không xoá lịch sử — mục 7, lỗi 4 nói rõ chỗ này. Dù vậy, dòng số 11 trong checklist vẫn khuyên bạn sao lưu trước nếu định dọn dẹp gì.

Máy Windows có dùng được cách này không?

Thanh viết bài này trên macOS, dùng shell zsh — mọi câu lệnh trong bài đã chạy thật trên máy đó. Ý tưởng nền (đổi biến HOME để Claude ghi phiên sang chỗ khác) không phụ thuộc hệ điều hành, nhưng cách viết wrapper trên Windows sẽ khác và Thanh chưa thử nên không dám hướng dẫn liều. Nếu bạn dùng Windows, hãy coi bài này là bản đồ tư duy, còn câu lệnh thì cần bản riêng.

ĐANG MỞ

Hai buổi tối 28-29/7/2026, 19:30 giờ Việt Nam, Thanh dẫn lớp trực tuyến miễn phí «Hệ thống hoá doanh nghiệp 1 người với Claude AI» — cùng mạch với bài bạn vừa đọc, nhưng ở tầm cả một guồng việc chứ không riêng chuyện 2 tài khoản.

Xem lớp 28-29/7 →

GIỮ LIÊN LẠC

Để lại email, Thanh gửi bản kế tiếp

Thanh hay vấp một chuyện, mở nắp capô ra xem, rồi viết lại thành bài như bài này. Để email vào đây thì lần sau có bản mới, Thanh gửi thẳng cho bạn — không phải canh trên trang cá nhân.

Thanh không gửi thư rác và không đưa email của bạn cho ai. Muốn dừng nhận thì bấm huỷ ở cuối bất kỳ thư nào.