SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor

Claude Code dùng API key thay subscription?

Claude Code chạy bằng API key Anthropic mà không cần subscription Claude; hai khoản tính riêng. Xem session đang dùng credential nào và cách chuyển.

Phiên Claude Code của bạn đang dùng credential nào?

Một phiên đăng nhập Claude Code hoạt động theo một trong hai cách. Bạn đăng nhập bằng tài khoản subscription Claude trên claude.ai, hoặc xác thực với một organization trên Anthropic Console. Ở cách thứ hai, mức sử dụng token được tính vào tài khoản API (application programming interface) của organization đó thay vì plan của bạn. Chạy /status trong một session đang chạy để xem credential nào đang active: tab Status hiển thị dòng Login method cho tài khoản bạn đã đăng nhập, và một dòng API key bổ sung xuất hiện khi API key đang cung cấp credential.

Công cụ có được plan của bạn bao phủ hay không là một câu hỏi riêng. Câu trả lời nằm trong Claude Code có được bao gồm trong subscription Claude Pro hay không. Cơ chế dùng key với Claude API được trình bày trong cách xác thực Claude API hoạt động. Phần dưới đây tập trung vào nội dung mà hai phần đó không đề cập: session thực tế đã chọn credential nào và cách thay đổi credential đó.

Hành vi dưới đây dựa trên tài liệu xác thực Claude Code của Anthropic, được đọc vào ngày 10 October 2026. Claude Code được release thường xuyên và một số hành vi yêu cầu version tối thiểu, vì vậy hãy chạy claude --version trước khi kết luận máy của bạn bị lỗi.

Hai tài khoản có thể dùng chung một địa chỉ email

Tài khoản claude.ai và tài khoản Claude Console tại platform.claude.com là hai tài khoản khác nhau. Chúng có thể dùng cùng một địa chỉ email nhưng vẫn là hai lần đăng nhập riêng, có số dư riêng và thuộc các organisation riêng. Tạo một tài khoản không tạo tài khoản còn lại. Nạp tiền cho một Console organisation không cộng thêm gì vào plan của bạn.

Chiều ngược lại có một ngoại lệ, được kiểm tra vào ngày 10 October 2026. Các plan Max 5x và Max 20x hiện bao gồm credit API hằng tháng, lần lượt là $100 và $200 mỗi tháng. Các plan Team nhận một khoản credit dùng chung. Các credit này chỉ được chuyển vào một Console organisation sau khi bạn liên kết organisation đó trong billing settings trên claude.ai, và không dùng được cho Claude Code. Tài liệu platform của Anthropic ghi rõ Claude Code không được bao gồm. Help center của họ chỉ cho phép claude -p chạy bằng API key của organisation đã liên kết. Vì vậy, một interactive session được tính phí cho organisation chỉ có các credit này sẽ fail với Credit balance too low.

Số dư khác nhau vì mô hình billing khác nhau. Đăng nhập bằng subscription sử dụng hạn mức usage của plan. Hạn mức này reset theo rolling window 5 giờ và window hằng tuần, đồng thời được dùng chung với Claude trên web. Credential của Console được tính phí theo từng token cho organisation. Các số liệu chính thức nằm trên Console usage page. Chi phí thực tế của khác biệt này khi làm việc là chủ đề của tính phí theo token so với trả phí subscription.

Một loại tài khoản hoàn toàn không thể dùng cách đăng nhập bằng subscription. Anthropic liệt kê các loại tài khoản bạn có thể dùng để đăng nhập gồm subscription Pro hoặc Max, một seat Claude for Teams hoặc Enterprise, tài khoản Claude Console, cloud provider và Cloud gateway. Cloud gateway ở đây là một Claude apps gateway tự host do organisation của bạn vận hành. Bạn đăng nhập vào gateway bằng corporate SSO (single sign-on) thông qua /login. Tài khoản claude.ai miễn phí không nằm trong danh sách này. Vì vậy, người dùng free plan không có subscription credential để đăng nhập. Claude free tier bao gồm và không bao gồm gì cũng không mở rộng đến command line tool. Lựa chọn còn lại là một Console organisation có API credit, tức một dạng paid account khác.

Cách 1: đăng nhập bằng gói Claude của bạn

Chạy claude trong một thư mục project. Ở lần chạy đầu tiên, lệnh sẽ mở cửa sổ trình duyệt để bạn đăng nhập bằng tài khoản claude.ai có gói của bạn.

claude

Có 2 điểm hoạt động khác trên server. Nếu trình duyệt không mở, nhấn c để sao chép login URL vào clipboard, rồi dán URL đó vào trình duyệt trên máy của bạn. Nếu trình duyệt hiển thị login code thay vì đưa bạn trở lại terminal, hãy dán code đó vào prompt đang yêu cầu code. Trường hợp thứ hai là bình thường khi dùng SSH (secure shell), WSL2 và container, vì trình duyệt không thể truy cập local callback server mà Claude Code đã khởi động trên máy từ xa.

Khi đăng nhập xong, hãy kiểm tra thay vì mặc định cho rằng đăng nhập đã thành công. Bắt đầu một session và chạy /status. Tab Status hiển thị phương thức đăng nhập, cùng organisation và email address mà nó đã lưu. /login chạy lại flow bằng một account khác, còn /logout xóa credential đã lưu. Đăng xuất cũng reset trạng thái thiết lập lần chạy đầu tiên, vì vậy lần chạy claude tiếp theo sẽ hướng dẫn bạn onboarding lại.

Cần biết credential đó được lưu ở đâu khi bạn rebuild một máy hoặc bàn giao máy cho người khác:

  • Linux: ~/.claude/.credentials.json, file mode 0600.
  • macOS: Keychain được mã hóa. Khi Keychain từ chối ghi, thường xảy ra khi Keychain bị khóa trong một SSH session, Claude Code sẽ chuyển sang file 0600 tương tự. Console login tạo API key không sử dụng cơ chế fallback này và sẽ fail cho đến khi Keychain có thể ghi được.
  • Windows: %USERPROFILE%\.claude\.credentials.json, chỉ cho phép user của bạn truy cập thông qua access control riêng của profile directory.
  • Bất kỳ platform nào có đặt CLAUDE_CONFIG_DIR: file sẽ được chuyển vào directory đó, và entry trong macOS Keychain cũng được gắn theo directory này. Vì vậy, session khởi động với CLAUDE_CONFIG_DIR khác sẽ đọc một credential khác.

Claude Code quản lý file đó thông qua /login và /logout. Chỉnh sửa file thủ công không phải là cách được hỗ trợ để chuyển account.

Đường dẫn 2: xác thực với một tổ chức trên Console

Quyền truy cập Console bắt đầu từ một administrator. Họ mời bạn trong Console theo đường dẫn Settings, rồi Members, rồi Invite. Họ cũng gán một role: role Claude Code chỉ có thể tạo API key Claude Code, còn role Developer có thể tạo mọi loại key. Sau đó, bạn chọn tài khoản Anthropic Console tại prompt /login.

Từ Claude Code v2.1.242, có 2 đường dẫn Console và mỗi đường dẫn lưu thông tin khác nhau. Khi đăng nhập bằng tài khoản Console, Claude Code giữ OAuth token (token ủy quyền mở) từ lần đăng nhập trên browser đó và lưu token dưới dạng profile Anthropic, hoàn toàn không tạo API key. Claude Code tự refresh phiên đăng nhập này. Khi refresh thất bại, request sẽ fail cho đến khi bạn đăng nhập lại. Cách đăng nhập không cần key này cũng đăng xuất mọi phiên đăng nhập claude.ai được lưu trên máy. Khi tạo API key, được prompt gọi là legacy, Claude Code tạo một key Console và lưu cùng các credential khác. Static key không tự refresh, nên vẫn hoạt động cho đến khi có người revoke. Điều này hữu ích trên build server nhưng gây rủi ro trên laptop.

Hãy unset ANTHROPIC_API_KEY trước khi bắt đầu đăng nhập Console không cần key. Khi biến này được set, Claude Code bỏ qua hoàn toàn login prompt và yêu cầu bạn approve key mà nó tìm thấy.

Bạn không phải lúc nào cũng được chọn. Claude Code tự tạo key mà không hỏi khi session chạy qua một cloud provider, khi bất kỳ settings file nào set forceLoginOrgUUID hoặc ghim forceLoginMethod thành "claudeai" hoặc "console", hoặc khi trên máy có managed settings source nhưng Claude Code không thể đọc source đó. Đây là các quyết định của administrator. Vì vậy, nếu tùy chọn không cần key không bao giờ xuất hiện, hãy hỏi người quản lý fleet. /status cũng in một dòng Setting sources liệt kê tên của mọi settings file đã được session load, đồng thời nêu managed source khi source đó áp dụng cho bạn.

Lần đầu bạn xác thực Claude Code với một tổ chức trên Console, Console sẽ tạo một workspace có tên "Claude Code" cho tổ chức đó. Workspace này dùng để theo dõi spend của Claude Code tại một nơi. Bạn không thể tạo API key bên trong workspace này.

Vì sao ANTHROPIC_API_KEY vẫn được ưu tiên sau khi bạn đăng nhập

Claude Code không hỏi bạn muốn dùng credential nào. Nó kiểm tra các nguồn theo một thứ tự cố định và dùng nguồn đầu tiên tìm thấy. Theo tài liệu vào tháng 10 năm 2026, thứ tự đó là:

  1. Credential của cloud provider khi CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX hoặc CLAUDE_CODE_USE_FOUNDRY được thiết lập.
  2. ANTHROPIC_AUTH_TOKEN, được gửi trong header Authorization: Bearer, dành cho gateway xác thực bằng bearer token.
  3. ANTHROPIC_API_KEY, được gửi trong header X-Api-Key.
  4. Output của một script apiKeyHelper được chỉ định trong settings file.
  5. CLAUDE_CODE_OAUTH_TOKEN, token dài hạn từ claude setup-token.
  6. Credential của Anthropic profile và federation, là các credential được ant CLI và Workload Identity Federation sử dụng.
  7. Credential subscription do /login ghi lại.

Có 2 ngoại lệ liên quan đến danh sách này. Một profile đứng ở vị trí 6 khi bạn chỉ định profile đó trong ANTHROPIC_PROFILE, khi các biến federation được thiết lập, hoặc khi profile đang active là profile Workload Identity Federation. Một profile active trong chế độ user_oauth, thuộc loại được ant auth login hoặc lần đăng nhập Console không cần key ghi lại, sẽ đứng sau credential /login đang hoạt động. Ngoài ra, một session gateway của Claude apps đã đăng nhập nằm ngoài toàn bộ danh sách: nó được ưu tiên hơn mọi nguồn trong danh sách, kể cả các biến của cloud provider. Khi settings được quản trị viên áp dụng yêu cầu đăng nhập gateway, Claude Code bỏ qua các nguồn khác và yêu cầu bạn đăng nhập qua /login.

Không ngoại lệ nào trong số này giúp subscription của bạn được ưu tiên hơn key đã export. Nếu không có gateway, mọi nguồn từ vị trí 1 đến vị trí 5 đều được ưu tiên hơn account bạn đã đăng nhập. Vì vậy, một ANTHROPIC_API_KEY được export ở bất kỳ đâu trong process environment sẽ được dùng, và session sẽ tính phí vào một Console organisation trong khi bạn nghĩ nó đang dùng plan của mình. Không có lỗi nào xảy ra. Thứ tự hoạt động đúng như tài liệu mô tả, nên không có cảnh báo nào xuất hiện.

Có 2 chi tiết khiến vấn đề này dễ bị bỏ sót. Trong session tương tác, Claude Code hỏi một lần bạn có muốn dùng key nó tìm thấy hay không rồi ghi nhớ câu trả lời. Vì vậy, lựa chọn bạn đưa ra từ một tháng trước vẫn có thể được áp dụng hôm nay. Trong chế độ không tương tác với -p, hoàn toàn không có prompt và key sẽ luôn được dùng nếu nó tồn tại. -p là chế độ mà cron job hoặc một bước CI (continuous integration) chạy, nên job không có người giám sát chính là nơi credential sai dễ bị phát hiện muộn nhất.

Bạn có thể kiểm tra nhanh trực tiếp trong session. Khi ANTHROPIC_API_KEY được thiết lập, /config hiển thị toggle "Dùng API key tùy chỉnh". Toggle chỉ tồn tại khi biến này được thiết lập, nên nếu không thấy toggle thì environment đã sạch.

Tìm key còn sót lại trên server

Một key đã export có thể còn tồn tại ở nhiều nơi khác ngoài shell profile:

  • ~/.bashrc, ~/.bash_profile, ~/.profile hoặc ~/.zshrc, được mọi login shell mới đọc.
  • Một systemd unit, thông qua Environment= hoặc EnvironmentFile=, đối với mọi tiến trình bạn chạy dưới dạng service.
  • tmux server, nơi giữ một bản sao của environment tại thời điểm server được khởi động. Một pane bạn mở hôm nay có thể kế thừa một biến mà bạn đã xóa khỏi profile từ tuần trước, vì server đã chạy từ trước khi bạn chỉnh sửa.
  • Container image hoặc CI job definition, nơi biến được đặt bên ngoài mọi file mà bạn có thể đọc từ trong shell.
  • Block env trong file settings của Claude Code. Đây là một settings key thông thường và tuân theo thứ tự precedence mặc định của settings.

Hãy kiểm tra các vị trí này trước khi làm thêm bất kỳ việc gì:

[ -n "$ANTHROPIC_API_KEY" ] && echo "ANTHROPIC_API_KEY is set" || echo "not set"
env | grep -E '^(ANTHROPIC_|CLAUDE_CODE_)' | cut -d= -f1
grep -n 'ANTHROPIC_API_KEY' ~/.bashrc ~/.bash_profile ~/.profile ~/.zshrc 2>/dev/null
tmux show-environment 2>/dev/null | grep ANTHROPIC
grep -n 'ANTHROPIC_API_KEY\|apiKeyHelper' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null

Lệnh thứ hai cố ý pipe qua cut để chỉ in tên biến, không in giá trị secret lên màn hình mà bạn có thể đang chia sẻ hoặc ghi hình. Lệnh đầu tiên trả lời câu hỏi chính: nếu lệnh cho biết biến đã được set, thì claude tiếp theo được start từ shell này sẽ dùng key đó. Nếu cả 5 lệnh đều không in gì, nghĩa là không tồn tại credential trong environment. Khi đó, session được start tại đây sẽ dùng credential /login.

Thêm systemctl cat your-unit.service | grep -i environment cho mọi service chạy Claude Code, vì unit file tự đặt environment riêng và không đọc shell profile của bạn.

Chuyển session từ credential này sang credential khác

Để quay lại subscription của bạn:

unset ANTHROPIC_API_KEY
[ -n "$ANTHROPIC_API_KEY" ] && echo "still set" || echo "clear"
claude

Chờ clear, sau đó chạy /status trong session mới và xác nhận dòng API key đã biến mất. Việc bỏ biến khỏi shell không ảnh hưởng đến một tiến trình Claude Code đang chạy, vì tiến trình giữ nguyên environment tại thời điểm được khởi động. Hãy restart session.

Sau đó xóa lệnh export khỏi file đã thiết lập biến đó. Nếu không, shell login tiếp theo sẽ đặt lại biến. Trong tmux, tmux set-environment -u ANTHROPIC_API_KEY xóa biến này cho các pane được mở sau thời điểm đó trong session, còn các pane đã mở vẫn giữ bản sao riêng.

Để chuyển theo hướng ngược lại, hãy đặt ANTHROPIC_API_KEY trong environment, hoặc chạy /login rồi chọn tài khoản Console. Để xóa hoàn toàn login đã lưu, chạy /logout. Sau khi đăng nhập Console không cần key, /logout sẽ xóa và revoke credential được tạo bởi lần đăng nhập đó.

Nếu /status vẫn không khớp với kết quả bạn mong đợi, hãy chạy claude doctor. Lệnh này liệt kê các entry trong settings mà Claude Code đã từ chối. Nhờ đó, bạn có thể phát hiện settings file bị lỗi parse nên hoàn toàn không được áp dụng.

Xác thực khi không có browser

claude setup-token mở cùng luồng cấp quyền trên browser như /login và in một OAuth token có thời hạn một năm ra terminal.

claude setup-token

Lệnh này không lưu token ở đâu, vì vậy hãy sao chép token ngay khi nó xuất hiện. Đặt token làm CLAUDE_CODE_OAUTH_TOKEN trên máy cần dùng token đó. Token xác thực với subscription của bạn, nên subscription phải thuộc gói Pro, Max, Team hoặc Enterprise, và token chỉ có thể gửi model request. Bare mode không đọc token này, vì vậy script truyền --bare cần ANTHROPIC_API_KEY hoặc một apiKeyHelper thay thế.

Thứ tự ưu tiên cũng gây lỗi ở đây. Nếu CLAUDE_CODE_OAUTH_TOKEN nằm trong shell profile, chạy /login sẽ chuyển session hiện tại sang login mới, và mọi session mới sẽ đọc lại biến này cho đến khi bạn xóa nó.

Nếu tổ chức của bạn chạy inference qua Amazon Bedrock, Google Cloud hoặc Microsoft Foundry, các credential đó đứng đầu thứ tự ưu tiên và hoàn toàn không thực hiện browser login. Cấu hình phần này là một công việc riêng, được trình bày trong chạy Claude Code với Bedrock hoặc Vertex.

Session chạy lâu trên VPS (virtual private server) là nơi các vấn đề này thường tập trung, vì shell đã khởi chạy session có thể được cấu hình từ nhiều tháng trước và chưa từng restart kể từ đó. Chạy Claude Code trên VPS bên trong tmux trình bày phần session của cấu hình này.

Kiểm tra mỗi credential thực sự đã tiêu tốn bao nhiêu

Trong một phiên đăng nhập bằng subscription, /usage hiển thị các thanh mức sử dụng của plan và phân tích những gì đã tiêu tốn chúng. Con số dollar trong khối Session được tính cục bộ từ số token theo giá niêm yết, hoặc theo mức giá đã thỏa thuận với tổ chức của bạn nếu administrator đã đặt bảng modelPricing trong managed settings. Khi đó, dòng Total cost sẽ cho biết điều này. Dù theo cách nào, hãy xem đây là con số ước tính dành cho người dùng API, không phải hóa đơn. Người đăng ký nên đọc các thanh mức sử dụng, không nên dựa vào con số dollar.

Với credential của Console, các số liệu quan trọng nằm trong Console: trang usage để xem chi phí và dashboard Claude Code để xem số liệu theo từng thành viên. Không có thông tin nào được in trong terminal của bạn là nguồn chính thức cho việc tính phí đó.

Nếu các thanh của plan không bao giờ thay đổi trong khi bạn làm việc, có thể credential trong environment đang được ưu tiên, và /status sẽ xác định rõ điều này. Ngoại lệ là khi các thanh đã đầy sẵn: một phiên subscription vẫn có thể tiếp tục sau khi vượt giới hạn usage đã bao gồm bằng usage credits. Anthropic sẽ tính phần vượt này theo mức giá API tiêu chuẩn, còn các thanh vẫn giữ nguyên trong thời gian đó. Ngoài trường hợp này, các thanh đứng yên là dấu hiệu rõ nhất cho thấy credential không đúng đang được sử dụng, và theo dõi một phiên Claude Code đã tiêu tốn bao nhiêu giải thích sâu hơn về cách đo. Nếu các thanh có thay đổi rồi dừng lại, bạn đã chạm mức trần của plan, còn cách giới hạn usage của Claude và các khoảng thời gian reset hoạt động giải thích vấn đề này.

Các trường hợp lỗi và những gì cần kiểm tra

Mọi thứ đều hoạt động, nhưng mức sử dụng trong plan không bao giờ thay đổi. Thông thường, một credential trong environment đang có hiệu lực: /status hiển thị một dòng API key, còn lệnh kiểm tra shell ở trên hiển thị biến đó. Nếu cả hai đều không có nhưng các thanh mức sử dụng đã chạm giới hạn, session đã chuyển sang dùng usage credits, được tính theo mức giá API tiêu chuẩn. Khoản chi này hiển thị trong Settings, sau đó là Usage trên claude.ai.

Request thất bại dù subscription vẫn hợp lệ. Một key thuộc Console organisation đã bị vô hiệu hóa hoặc hết hạn đang được ưu tiên hơn thông tin đăng nhập của bạn. Chạy unset ANTHROPIC_API_KEY, bắt đầu session mới, rồi kiểm tra lại /status. Nếu lỗi cho biết API key không hợp lệ, cách sửa lỗi API key không hợp lệ của Claude Code giải thích chi tiết trường hợp này, bao gồm lý do chạy lại /login không xóa được lỗi.

Có cảnh báo lúc khởi động rằng thông tin đăng nhập của bạn sắp hết hạn. Các phiên bản gần đây cảnh báo khi credential /login còn không quá ba ngày trước khi hết hạn. Sau khi thực sự hết hạn, /status hiển thị dòng đăng nhập ở trạng thái hết hạn, cùng organisation và email đã được lưu. Chạy /login để gia hạn. Cảnh báo này không bao giờ chặn request. Vì vậy, bạn rất dễ bỏ qua cho đến khi một session không có người giám sát ngừng hoạt động.

apiKeyHelper chạy chậm hoặc thất bại. Theo mặc định, Claude Code chạy lại helper mỗi năm phút. Bạn có thể điều chỉnh bằng CLAUDE_CODE_API_KEY_HELPER_TTL_MS. Khi một lần chạy mất hơn mười giây, Claude Code hiển thị thông báo trong prompt bar. Nếu helper không trả về key, dù do lỗi hay timeout, request sẽ thất bại trong vòng ba lần thử.

Đúng credential nhưng sai organisation. Một địa chỉ email có thể thuộc về hai organisation. /status cho biết organisation mà credential đã xác thực vào. Hãy đọc dòng này thay vì đoán bạn đã đăng nhập vào organisation nào.

FAQ

Làm thế nào để biết hiện Claude Code đang dùng account nào?

Chạy /status trong session. Tab Status hiển thị dòng Login method cho account bạn đã đăng nhập, và thêm dòng API key khi API key cung cấp credential. Dòng Profile sẽ thay thế dòng đăng nhập khi bạn chọn Anthropic profile hoặc federation credential. Bên ngoài session, kiểm tra ANTHROPIC_API_KEY có được set trong shell hay không để biết có environment credential nào đang tồn tại và sẽ được ưu tiên hơn login hay không.

Vì sao subscription Claude Pro hoặc Max của tôi bị bỏ qua?

Vì environment credential được ưu tiên hơn. Claude Code lấy credential đầu tiên tìm thấy theo một thứ tự cố định. Credential của subscription /login đứng sau các biến của cloud provider, ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY, apiKeyHelper, CLAUDE_CODE_OAUTH_TOKEN, cùng mọi Anthropic profile hoặc federation credential bạn chọn bằng ANTHROPIC_PROFILE hoặc các biến federation. Chỉ profile đang active trong chế độ user_oauth mới có thứ tự thấp hơn. Session signed in qua Claude apps gateway có thứ tự cao hơn toàn bộ danh sách. Chạy unset ANTHROPIC_API_KEY, bắt đầu session mới và xác nhận bằng /status. Sau đó xóa export khỏi shell profile, systemd unit, môi trường tmux hoặc container definition đã set biến này. Nếu không, biến sẽ xuất hiện lại ở shell login tiếp theo.

Tôi có thể dùng Claude Code với account Claude miễn phí không?

Không. Các loại account Anthropic liệt kê để login gồm subscription Pro hoặc Max, seat Claude for Teams hoặc Enterprise, account Claude Console, cloud provider và Cloud gateway. Cloud gateway là Claude apps gateway tự host đã đăng nhập bằng corporate SSO qua /login. Account claude.ai miễn phí không thuộc các loại này, nên Claude Code không có subscription credential để lưu cho account đó. Giải pháp trả phí thay cho subscription là một Claude Console organisation có API credit và tính phí theo token. Đây là account riêng, ngay cả khi dùng cùng địa chỉ email.

Account claude.ai và account Console của tôi có dùng chung một balance không?

Không. Đây là các account riêng với billing riêng, ngay cả khi cả hai dùng cùng địa chỉ email. Mức sử dụng subscription được trừ vào allowance của plan, dùng chung với Claude trên web và reset theo cửa sổ rolling five hour và cửa sổ weekly. Mức sử dụng Console được tính phí theo token cho organisation và hiển thị trên trang Console usage. Nạp credit cho account này không ảnh hưởng đến account kia. Liên kết tùy chọn duy nhất đi từ plan đến Console: plan Max hoặc Team có thể gửi monthly API credits đến Console organisation mà bạn liên kết từ claude.ai. Các credit đó không dùng được cho Claude Code.

Làm thế nào để authenticate Claude Code trên server headless?

Có 2 cách. Chạy claude qua SSH và hoàn tất browser login trên máy của bạn: nhấn c để copy URL, đăng nhập tại đó, rồi paste code trở lại terminal nếu browser hiển thị code thay vì redirect. Hoặc chạy claude setup-token trên máy có browser, copy token có thời hạn một năm mà lệnh in ra, rồi set token đó làm CLAUDE_CODE_OAUTH_TOKEN trên server. Token này cần plan Pro, Max, Team hoặc Enterprise và chỉ có thể tạo model request. Vì vậy, script dùng --bare cần API key hoặc apiKeyHelper thay thế.