Chạy hai tài khoản Claude Code trên cùng một máy
Chạy hai tài khoản Claude Code trên cùng một máy
Tôi giữ hai tài khoản Claude Code trên một chiếc laptop — một tài khoản cá nhân và một tài khoản công việc — và tôi chạy cả hai cùng lúc, trong hai cửa sổ terminal, song song nhau. Mặc định thì điều đó không làm được. Bài này nói về lý do tại sao, và mẹo nhỏ giúp nó chạy được.
Vấn đề: một máy, một tài khoản
Mặc định, Claude Code lưu mọi thứ trong một thư mục duy nhất: ~/.claude. Thông tin
đăng nhập của bạn nằm ở đó trong .credentials.json, cạnh settings.json, cấu hình
MCP server, lịch sử dự án, và các todo. Một thư mục, một danh tính.
Điều đó ổn cho tới khi bạn có tài khoản thứ hai. Đa số mọi người gặp chuyện này giống như tôi: một gói đăng ký cá nhân cho các dự án phụ, và một tài khoản công việc riêng gắn với công ty — khác gói, khác giới hạn sử dụng, khác quy định về MCP server và công cụ nào được phép dùng.
Khi mọi thứ đều nằm trong ~/.claude, hai tài khoản giành nhau cùng một chỗ:
- Bạn chỉ đăng nhập được một tài khoản tại một thời điểm. Đổi tài khoản nghĩa là đăng xuất cái này rồi đăng nhập cái kia. Làm vài lần một ngày là thấy phiền ngay.
- Bạn không chạy song song được. Tôi thường muốn một tác vụ công việc dài chạy ở một terminal trong khi vọc một repo cá nhân ở terminal khác. Cùng một thư mục cấu hình nghĩa là cùng một tài khoản ở cả hai cửa sổ — không cách nào tách chúng ra.
- Settings và quyền hạn lẫn vào nhau. Tài khoản công việc của tôi có quy tắc
quyền hạn chặt hơn và một bộ MCP server khác với tài khoản cá nhân. Một
settings.jsondùng chung không thể vừa là cái này vừa là cái kia. - Lịch sử và mức sử dụng bị trộn lẫn. Các phiên dự án, lịch sử lệnh, và phần sử dụng tính vào giới hạn của gói — tất cả dồn vào một chỗ. Khi công việc và cá nhân chung một tài khoản, bạn không phân biệt được chúng — cũng không tách hóa đơn được.
Nguyên nhân gốc rất đơn giản: Claude Code mặc định một thư mục cấu hình cho mỗi người dùng. Vậy nên cách sửa là cho nó nhiều hơn một.
Cách sửa: một thư mục cấu hình thứ hai
Claude Code đọc một biến môi trường, CLAUDE_CONFIG_DIR, để biết thư mục cấu hình
của nó nằm ở đâu. Để trống thì nó dùng ~/.claude. Trỏ nó tới nơi khác thì Claude
Code coi thư mục đó như một ngôi nhà hoàn toàn riêng — đăng nhập riêng, settings
riêng, lịch sử riêng, MCP server riêng.
Đó là toàn bộ ý tưởng. Thêm một thư mục, thêm một biến môi trường, và bạn có hai tài khoản độc lập chẳng biết gì về nhau.
Đây là thiết lập thật của tôi. Tôi tạo một thư mục thứ hai, ~/.claude-adt (chữ
adt là công ty tôi), và thêm hai alias vào file cấu hình shell:
alias cl='claude'
alias cla='CLAUDE_CONFIG_DIR=~/.claude-adt claude'
cl—claudethường, dùng~/.claudemặc định. Đây là tài khoản cá nhân của tôi.cla— vẫn làclaude, nhưngCLAUDE_CONFIG_DIRtrỏ tới~/.claude-adt. Đây là tài khoản công việc của tôi.
Giờ cl và cla là hai người khác nhau dưới góc nhìn của Claude Code.
Đăng nhập một lần, rồi chạy cả hai cùng lúc
Lần đầu chạy cla, Claude Code thấy một thư mục cấu hình trống và dẫn bạn qua bước
đăng nhập — y như một bản cài mới. Bạn đăng nhập bằng tài khoản thứ hai. Từ đó, thông
tin đăng nhập của nó nằm trong ~/.claude-adt/.credentials.json, tách hoàn toàn với
đăng nhập cá nhân trong ~/.claude/.credentials.json.
Sự tách biệt đó chính là phần thưởng. Vì đăng nhập của mỗi tài khoản là một file
riêng, cả hai đều đăng nhập cùng lúc. Không còn màn đăng xuất — đăng nhập nữa.
Tôi mở một terminal gõ cl cho việc cá nhân, mở terminal khác gõ cla cho việc
công ty, và chúng chạy song song mà không giẫm lên nhau.
Nếu ngó vào hai thư mục, sự phân chia hiện ra rõ ràng:
~/.claude/.credentials.json # đăng nhập cá nhân
~/.claude/settings.json # settings + MCP cá nhân
~/.claude-adt/.credentials.json # đăng nhập công việc
~/.claude-adt/settings.json # settings + MCP công việc
Hai đăng nhập, hai file settings, không hề can thiệp lẫn nhau.
Chia sẻ cái bạn muốn, tách riêng cái buộc phải tách
Tách biệt hoàn toàn là mặc định, nhưng bạn không phải nhân đôi mọi thứ. Có những
thứ riêng của từng tài khoản — đăng nhập, hiển nhiên rồi — nhưng có những thứ bạn
muốn giữ y hệt nhau ở cả hai, như bộ quy tắc văn phong hay file hướng dẫn CLAUDE.md
toàn cục.
Mẹo ở đây là symlink (liên kết tượng trưng). Trong thư mục thứ hai của tôi,
CLAUDE.md không phải file thật — nó trỏ ngược về file trong thư mục chính:
ln -s ~/.claude/CLAUDE.md ~/.claude-adt/CLAUDE.md
Giờ tôi viết hướng dẫn toàn cục một lần, và cả hai tài khoản cùng đọc một file. Sửa ở một nơi thì cả hai đều nhận thay đổi. Trong khi đó, credentials và settings vẫn là các file thật riêng biệt, đúng như phải vậy.
Nên quy tắc chung là:
- Giữ riêng — mọi thứ thuộc về từng tài khoản:
.credentials.json,settings.json, lịch sử dự án, mức sử dụng. - Chia sẻ bằng symlink — mọi thứ bạn muốn giống nhau ở khắp nơi:
CLAUDE.md, và tùy chọn thêm các slash command hay agent dùng chung.
Bạn tự vạch ranh giới ở đâu tùy ý.
Biết mình đang ở tài khoản nào
Rủi ro thật sự duy nhất khi có hai tài khoản là lạc mất mình đang điều khiển cái nào. Chạy một tác vụ công việc trên gói cá nhân — hoặc ngược lại — là lỗi rất dễ mắc khi cả hai terminal trông giống hệt nhau.
Vài thói quen giúp ích:
- Đặt tên rõ ràng.
clvàclađều ngắn, nhưng chữ cái thêm vào là một lời nhắc thường trực. Chọn tên alias mà bạn không lẫn. - Đưa tài khoản lên status line. Status line của Claude Code có thể hiển thị thư mục cấu hình đang hoạt động, nên liếc một cái là biết đang ở cá nhân hay công việc.
- Dùng theme hoặc tab terminal khác nhau cho mỗi cái, để sự phân chia còn thấy được bằng mắt.
Vài điểm cần lưu ý
- Mỗi thư mục là một thiết lập mới toanh. Tài khoản thứ hai bắt đầu từ con số không — bạn đăng nhập lại, thêm lại các MCP server, và làm lại các settings bạn quan tâm. Đó là cái giá của việc tách biệt thật sự, và bạn chỉ trả một lần.
- Ổ đĩa và cập nhật. Mỗi thư mục cấu hình giữ lịch sử và cache riêng, nên chúng
phình ra độc lập. Còn bản thân chương trình
claudethì dùng chung — bạn chỉ nhân đôi cấu hình, không nhân đôi chương trình. - Đây là để dùng nhiều tài khoản riêng, không phải mẹo lách giới hạn. Hai thư mục nghĩa là hai lần đăng nhập thật vào hai tài khoản thật. Nó không nhân lên phần mà một gói đơn cho bạn.
Toàn bộ, gói gọn trong một chỗ
# thiết lập một lần
mkdir -p ~/.claude-adt
# trong file cấu hình shell (ví dụ ~/.bashrc hoặc một file alias)
alias cl='claude' # cá nhân → ~/.claude
alias cla='CLAUDE_CONFIG_DIR=~/.claude-adt claude' # công việc → ~/.claude-adt
# tùy chọn: chia sẻ hướng dẫn toàn cục cho cả hai
ln -s ~/.claude/CLAUDE.md ~/.claude-adt/CLAUDE.md
# rồi, mỗi tài khoản một lần:
cla # lần chạy đầu sẽ đăng nhập cho bạn vào tài khoản thứ hai
Hai tài khoản, một laptop, cả hai cùng sống một lúc. Thiết lập mặc định giả định mỗi máy một danh tính — nhưng chỉ một biến môi trường là đủ để phá vỡ giả định đó một cách gọn gàng.
Link tham khảo
https://ledangtuanbk.vercel.app/article/running-two-claude-code-accounts-on-one-machine
All rights reserved