SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-25

Claude trên Linux: cài Desktop App và CLI

Xem Claude chạy native trên Linux thế nào: Desktop app beta cài qua apt, Claude Code CLI, plugin editor và paid plan nào hỗ trợ từng lựa chọn.

Những thành phần nào của Claude hiện chạy native trên Linux

Claude trên Linux chạy trên 4 bề mặt riêng biệt, và tính đến tháng 8 năm 2026, cả 4 đều hoạt động trên máy Ubuntu hoặc Debian thông thường. Desktop app được cài đặt từ apt repository của Anthropic và đang ở giai đoạn beta. Claude Code CLI (command line interface) là một binary được biên dịch sẵn và chạy trên nhiều distribution hơn desktop app. Web app tại claude.ai chỉ cần browser, còn API là một HTTPS endpoint mà bạn gọi từ code của mình.

Linux desktop beta còn thiếu 2 tính năng có trên macOS và Windows: Computer Use, trong đó Claude điều khiển các app trên màn hình, và voice dictation. Anthropic ghi rõ cả 2 tính năng này hiện chưa có trên Linux. CLI có voice dictation riêng, nên điểm thiếu nằm ở desktop app chứ không phải ở Claude nói chung.

Tình trạng hỗ trợ có thể thay đổi, vì vậy hãy xem trang này là mô tả về các bề mặt hỗ trợ và kiểm tra trạng thái hiện tại trước khi lập kế hoạch dựa trên chúng. Phần cuối liệt kê các trang cần kiểm tra.

Cài ứng dụng Claude desktop trên Ubuntu hoặc Debian

Yêu cầu được công bố là Ubuntu 22.04 trở lên hoặc Debian 12 trở lên, chạy trên x86_64 (dpkg gọi là amd64) hoặc arm64. Các bản phân phối dựa trên Debian khác có thể hoạt động nhưng chưa được kiểm thử. Fedora và RHEL hiện chưa có package, nên trên các hệ thống đó bạn dùng CLI hoặc trình duyệt.

Hãy cài đặt từ apt repository thay vì từ file .deb đã tải xuống. Ứng dụng Linux không có updater riêng, nên phiên bản mới chỉ đến thông qua package manager. Đăng ký repository là bước giúp apt upgrade nhìn thấy các phiên bản đó.

sudo apt install curl gnupg
sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc \
  https://downloads.claude.ai/claude-desktop/key.asc
gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc

gpg --show-keys phải in ra fingerprint 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE. Hãy so sánh fingerprint này trước khi đăng ký repository, vì signing key chưa được kiểm tra là key bạn đang tin tưởng một cách mù quáng. Nếu gpg báo file không chứa dữ liệu OpenPGP hợp lệ, quá trình tải xuống đã thất bại, và sau đó apt update sẽ thất bại với NO_PUBKEY BAA929FF1A7ECACE.

Đăng ký repository là một dòng deb được ghi vào /etc/apt/sources.list.d/claude-desktop.list. Hãy sao chép dòng đó từ trang cài đặt Linux của Anthropic, code.claude.com/docs/en/desktop-linux, đúng như nội dung hiển thị tại đó. Địa chỉ repository là phần có khả năng thay đổi nhất trong quy trình này. Gõ dòng lệnh từ trí nhớ có thể khiến bạn gặp E: Unable to locate package claude-desktop sau đó. Hãy đọc dòng lệnh trước khi paste: arch=amd64,arm64 là lý do apt trên mọi architecture khác không tìm thấy package nào, còn signed-by= trỏ đến file keyring bạn vừa kiểm tra. Điều này giới hạn key đó cho riêng repository này thay vì dùng nó để tin cậy mọi dữ liệu khác mà apt đọc.

sudo apt update && sudo apt install claude-desktop

Hãy khởi động ứng dụng từ application launcher hoặc chạy claude-desktop trong terminal. Đăng nhập bằng tài khoản claude.ai hoặc thông qua SSO (single sign-on) của tổ chức nếu công ty bạn đã cấu hình. Ứng dụng desktop không chấp nhận Claude Console API key; xác thực bằng key là tính năng của CLI.

E: Unable to locate package claude-desktop có nghĩa là apt chưa đọc repository. cat /etc/apt/sources.list.d/claude-desktop.list phải hiển thị dòng deb bạn đã ghi, còn dpkg --print-architecture phải in ra amd64 hoặc arm64 vì không có package nào được phát hành cho architecture khác. Sau đó, các bản cập nhật sẽ đến cùng với những bản cập nhật còn lại của hệ thống, từ sudo apt update && sudo apt upgrade.

Những gì chỉ có trong browser

claude.ai hoạt động trên mọi browser hiện đại và mọi distribution. Vì vậy, đây là lựa chọn phù hợp trên Fedora, RHEL, Arch, openSUSE và mọi hệ thống khác không có package. Browser cũng cung cấp Claude Code trên web. Phiên làm việc chạy trên cloud của Anthropic thay vì trên máy của bạn, và luôn sử dụng thông tin xác thực subscription của bạn.

Điều quan trọng cần hiểu là giới hạn của browser. Một phiên làm việc trên cloud không thể đọc các file trên server của bạn hoặc chạy command trên đó. Mọi thao tác cần truy cập máy của bạn đều yêu cầu software chạy trên chính máy đó. Bạn phải dùng CLI hoặc desktop app.

CLI cung cấp cho bạn những gì mà web app không có

Chạy claude trong một thư mục thì nó sẽ làm việc trên thư mục đó. Đó là điểm khác biệt, và mọi thứ khác đều bắt nguồn từ đó.

  • Nó đọc và chỉnh sửa các file trong thư mục làm việc, đồng thời hiển thị từng thay đổi trước khi áp dụng.
  • Nó chạy các lệnh shell mà bạn phê duyệt, nên có thể build một project, chạy test suite, đọc log hoặc kiểm tra một service ngay trên máy chủ.
  • Nó chạy mà không cần phiên tương tác: claude -p "read the nginx error log and summarise it" in ra một câu trả lời rồi thoát. Đây là cách dùng trong cron job hoặc pipeline. Bạn có thể tự quyết định định dạng câu trả lời, vì output style chỉnh system prompt đứng sau mỗi câu trả lời và có thể giữ cho lần chạy bằng script thật ngắn gọn, trong khi phiên tương tác tự giải thích chi tiết.
  • Nó kết nối các server MCP (model context protocol) bằng claude mcp add, nhờ đó model có thêm các tool ngoài filesystem.
  • Nó chạy được ở nơi hoàn toàn không có desktop đồ họa, tức là mọi VPS (virtual private server) mà bạn thuê.

Điểm cuối cùng là lý do tài liệu hướng dẫn server cần đề cập đến CLI. Server thuê chỉ có SSH (secure shell) và không có gì khác, nên terminal là giao diện duy nhất có thể dùng để làm việc trực tiếp trên đó. Cách chạy này có các quy tắc riêng, được trình bày đầy đủ trong chạy Claude Code trên VPS bên trong tmux, còn dùng Claude cho công việc sysadmin hằng ngày trình bày những việc phù hợp để giao cho nó.

Tích hợp với editor nằm ở giữa hai cách này. Extension cho VS Code yêu cầu VS Code 1.94.0 trở lên và cung cấp một panel đồ họa bên trong editor, có diff và bước review plan. Extension này đóng gói một bản CLI riêng cho panel đó và không thêm claude vào PATH của bạn, nên khi gõ claude trong integrated terminal, bạn vẫn cần bản cài standalone. Các editor xây dựng trên VS Code cài cùng extension từ registry Open VSX, và cũng có plugin cho JetBrains.

Bạn có cần Node.js để chạy Claude Code trên Linux không?

Không cần nếu dùng cách cài đặt được khuyến nghị. Native installer tải xuống một binary đã biên dịch. Binary đó không chạy trên Node.js.

curl -fsSL https://claude.ai/install.sh | bash
claude --version

claude --version phải in ra một số phiên bản, chẳng hạn như 2.1.211 (Claude Code). Nếu kết quả có vẻ không đúng, hãy chạy claude doctor. Lệnh này in thông tin chẩn đoán chỉ đọc về bản cài đặt và các file settings của bạn mà không khởi động session.

Node.js chỉ cần thiết khi cài qua npm. Từ package version 2.1.198, npm package yêu cầu Node.js 22 trở lên. Trên Node.js cũ hơn, npm in cảnh báo EBADENGINE thay vì fail, vì package này kéo cùng native binary dưới dạng dependency theo từng platform rồi link binary đó vào đúng vị trí.

npm install -g @anthropic-ai/claude-code

Không chạy lệnh đó với sudo. Tài liệu cảnh báo không nên dùng sudo npm install -g vì cách này tạo các file thuộc sở hữu của root trong global npm prefix. Khi đó, lần cài đặt hoặc update tiếp theo bằng tài khoản không có quyền đặc quyền sẽ fail do lỗi permission. Khi npm global directory không cho phép ghi, background auto-update sẽ dừng hoạt động và claude doctor liệt kê các cách khắc phục.

Anthropic cũng phát hành các package repository có chữ ký cho Debian, Fedora, RHEL và Alpine. Vì vậy, sudo apt install claude-code hoạt động gần giống package dành cho desktop, với signing key riêng tại https://downloads.claude.ai/keys/claude-code.asc.

Cài theo user hay trên toàn hệ thống?

Installer native cài theo từng user. Nó đặt một launcher tại ~/.local/bin/claude dưới dạng symlink trỏ đến ~/.local/share/claude/versions/, không cần root và tự cập nhật trong background. Mỗi user trên máy có một bản riêng với version riêng.

Cài bằng package manager là cài trên toàn hệ thống. Một binary phục vụ tất cả user, cần root và không tự update thông qua Claude Code. Bạn nâng cấp bằng sudo apt update && sudo apt upgrade claude-code, cùng lệnh bạn đã dùng cho mọi thứ khác trên máy.

Chọn cài theo từng user trên máy mà bạn đăng nhập bằng tài khoản của mình; đây là trường hợp phổ biến khi làm việc với VPS. Chọn cài bằng package trên shared server hoặc machine image khi bạn muốn mọi người dùng chung một version và muốn cập nhật theo lịch của mình. Với native install, 2 thiết lập trong ~/.claude/settings.json quyết định cách update:

{
  "autoUpdatesChannel": "stable",
  "env": {
    "DISABLE_AUTOUPDATER": "1"
  }
}

Channel stable dùng một release cũ khoảng 1 tuần và bỏ qua các release có regression nghiêm trọng. DISABLE_AUTOUPDATER chỉ tắt việc kiểm tra trong background, nên claude update vẫn hoạt động và bạn vẫn kiểm soát thời điểm version mới được cài. Điều này quan trọng trên server có job chạy lâu ở chế độ không giám sát, khi bạn không muốn binary tự thay đổi trong lúc job đang chạy.

Đăng nhập qua SSH và giữ session hoạt động

Có hai vấn đề đặc thù của Linux xuất hiện khi bạn chạy CLI lần đầu trên một server thuê. Quy trình đăng nhập yêu cầu browser, nhưng server không có browser. Khi kết nối SSH bị ngắt, công việc đang chạy cũng dừng theo.

tmux giải quyết vấn đề thứ hai. Một session tmux thuộc về tmux server trên máy từ xa, không thuộc về kết nối của bạn. Vì vậy, khi đường truyền bị ngắt, process vẫn tiếp tục chạy.

tmux new -s claude
claude

Detach bằng Ctrl-b rồi d, sau đó quay lại bằng tmux attach -t claude.

Đăng nhập là vấn đề đầu tiên. Chạy claude để in ra một URL xác thực. Mở URL đó trong browser trên máy tính của bạn. Sau khi đăng nhập, browser hiển thị login code thay vì redirect quay lại. Nguyên nhân là browser trên laptop của bạn không thể truy cập callback server mà Claude Code đã khởi động trên địa chỉ loopback của máy từ xa. Dán code đó vào terminal tại prompt Paste code here if prompted. Sau đó terminal sẽ báo Login successful.

Nếu cần khởi động session khi không có ai theo dõi, claude setup-token sẽ mở quy trình xác thực bằng browser tương tự và in một OAuth token có thời hạn một năm ra terminal. Token không được lưu ở đâu, nên hãy sao chép nó và đặt vào nơi bạn cần.

export CLAUDE_CODE_OAUTH_TOKEN=your-token

Token này yêu cầu paid plan và chỉ có thể thực hiện model request. Hãy xử lý token như một password có thời hạn một năm. Cách lưu token và cách ngăn agent đọc ngược token ra là nội dung của giữ secret ngoài tầm với của AI agent.

Các server nhỏ còn gặp thêm một giới hạn. Quá trình cài đặt cần khoảng 512 MB memory trống, còn yêu cầu phần cứng được ghi trong tài liệu để chạy là 4 GB RAM trở lên. Vì vậy, trên một instance 1 GB, kernel out-of-memory killer sẽ kết thúc quá trình cài đặt:

Setting up Claude Code...
Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.

Thêm swap, rồi chạy lại installer. Swap là disk space mà kernel dùng làm memory dự phòng khi RAM không đủ. Swap chậm hơn RAM nhiều, nhưng đủ để hoàn tất quá trình cài đặt.

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

swapon chỉ bật file này trong lần boot hiện tại. Thêm một dòng cho /swapfile vào /etc/fstab nếu muốn swap hoạt động lại sau reboot. Những việc khác cần khóa trước khi cho agent chạy command trên một live server là nội dung của chạy Claude Code an toàn trên VPS.

Thông tin xác thực Claude nằm ở đâu trên Linux

Trên Linux, /login ghi thông tin xác thực vào ~/.claude/.credentials.json với file mode 0600. macOS lưu thông tin xác thực tương tự trong Keychain đã mã hóa, nên thói quen hình thành trên Mac không áp dụng được ở đây: trên Linux, token là một file thuần văn bản trong thư mục home của bạn, và mọi process chạy dưới user của bạn đều có thể đọc file này. Đặt CLAUDE_CONFIG_DIR sẽ chuyển file vào thư mục đó.

Điều này dẫn đến 2 rủi ro. Bản backup của /home chứa thông tin đăng nhập còn hiệu lực, nên sao chép backup đó sang máy dùng chung sẽ trao quyền truy cập account của bạn cho bất kỳ ai có thể đọc nó. Một machine image được tạo từ máy đã đăng nhập cũng đưa thông tin đăng nhập đó vào mọi instance được clone từ image. Hãy chạy /logout trước khi tạo snapshot.

Thứ tự ưu tiên thông tin xác thực thường gây nhầm lẫn cho người đồng thời có subscription và API key. Khi ANTHROPIC_API_KEY được set trong shell, Claude Code sẽ dùng biến này sau khi bạn phê duyệt, nên subscription không được sử dụng trong khi key bị tính phí theo token. /status cho biết thông tin xác thực nào đang active, còn unset ANTHROPIC_API_KEY đưa bạn trở lại đăng nhập bằng subscription.

Thông tin đăng nhập sẽ hết hạn. Trong vòng 3 ngày trước khi hết hạn, dòng khởi động sẽ hiển thị Your login expires in 3 days, và cảnh báo này không bao giờ chặn request. Sau khi hết hạn, mọi request đều fail với Login expired · Please run /login. Hãy lưu ý điều này trước khi để một session không có người giám sát chạy suốt cuối tuần, vì session đó sẽ dừng xử lý và không thể tự khôi phục.

Một gói Claude có bao gồm tất cả không?

Một gói trả phí bao gồm mọi giao diện với cùng một thông tin đăng nhập. Tài khoản Pro, Max, Team hoặc Enterprise cho phép bạn đăng nhập vào claude.ai trên trình duyệt, ứng dụng desktop, CLI và extension VS Code. Mỗi nơi đều dùng cùng một subscription. Hạn mức sử dụng cũng được dùng chung, nên một phiên CLI chạy lâu trên server sẽ tiêu vào hạn mức còn lại của ứng dụng desktop. Khi bất kỳ giao diện nào bắt đầu từ chối xử lý, bạn cần xác định bạn đã chạm giới hạn nào và cần làm gì tiếp theo. Gói claude.ai miễn phí không bao gồm quyền truy cập Claude Code, nên CLI và các tính năng Claude Code trong ứng dụng desktop cần một gói trả phí hoặc tài khoản Claude Console.

API là một sản phẩm khác với cách tính phí khác. Tài khoản Console tính phí theo token dựa trên nội dung bạn thực sự gửi. Cách này phù hợp với một service bạn đang xây dựng hơn là việc bạn nhập lệnh trực tiếp trong terminal. Thiết lập ANTHROPIC_API_KEY sẽ chuyển CLI sang cách tính phí đó. Đây là lựa chọn do bạn quyết định, không phải phương án dự phòng.

Giá và giới hạn của các gói thay đổi quá thường xuyên nên không thể ghi lại cố định ở đây. Hai trang sau theo dõi các con số hiện tại: chi phí thực tế của Claude Codebạn cần gói Claude nào. Nếu đang cân nhắc tính phí theo token với gói theo tháng, so sánh API với subscription sẽ giúp xác định điểm hòa vốn.

Các lỗi cài đặt bạn thực sự sẽ gặp

bash: claude: command not found ngay sau khi cài đặt thành công. Binary nằm tại ~/.local/bin/claude, nhưng thư mục đó không có trong search path của shell. Xác nhận bằng echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin". Lệnh này không in gì nếu entry bị thiếu. Sửa cho bash bằng echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc, rồi chạy source ~/.bashrc. Việc tự cài VS Code extension không bao giờ tạo file đó, vì extension giữ bản CLI trong thư mục của extension.

Error loading shared library libstdc++.so.6. Installer đã chọn bản build musl cho hệ thống glibc. Điều này xảy ra khi có các package cross-compilation cho musl và bước detection nhận diện sai. Chạy ldd --version 2>&1 | head -1: output có tên GNU libc hoặc GLIBC nghĩa là hệ thống đang dùng glibc nhưng đã nhận binary sai, vì vậy hãy gỡ bản cài đặt rồi chạy lại installer. Trên Alpine và các hệ thống musl khác, cách sửa là ngược lại: apk add libgcc libstdc++ ripgrep.

Có hai bản claude trên cùng một máy. which -a claude liệt kê mọi kết quả khớp trong PATH. Bản cài native là symlink từ ~/.local/bin/claude đến ~/.local/share/claude/versions/, bản cài npm local kiểu cũ nằm dưới ~/.claude/local/, còn npm -g ls @anthropic-ai/claude-code cho biết có bản cài npm global. Xóa những bản bạn không muốn giữ, vì một bản cũ nằm trước trong PATH sẽ khiến bạn tưởng rằng lỗi đã sửa vẫn chưa được sửa.

Nơi kiểm tra trạng thái hiện tại

Mọi số phiên bản và ngày tháng trong hướng dẫn này là thông tin tại thời điểm tháng 8 năm 2026. Những điểm mang tính lâu dài là mô hình gồm bốn giao diện, một lần đăng nhập dùng chung cho các giao diện trả phí, và quyết định CLI sẽ thuộc về user của bạn hay toàn bộ máy.

FAQ

Có ứng dụng desktop Claude cho Linux không?

Có. Tính đến tháng 8 năm 2026, ứng dụng đang ở giai đoạn beta và hỗ trợ Ubuntu 22.04 trở lên cùng Debian 12 trở lên trên amd64 hoặc arm64. Cài đặt bằng sudo apt install claude-desktop sau khi thêm apt repository và signing key của Anthropic, để các phiên bản mới được cập nhật cùng các lần nâng cấp hệ thống thông thường. Bản Linux có các tab giống ứng dụng macOS, bao gồm cả tab Claude Code. Computer Use và voice dictation chưa có trên bản Linux. Fedora và RHEL cũng chưa có package, nên trên các distribution này hãy dùng CLI hoặc claude.ai trong trình duyệt.

Tôi có cần Node.js để chạy Claude Code trên Linux không?

Không, nếu dùng cách cài đặt được khuyến nghị. curl -fsSL https://claude.ai/install.sh | bash tải xuống một binary đã biên dịch và không dùng Node.js khi chạy. Node.js chỉ cần thiết nếu bạn cài npm package. Từ version 2.1.198, package này yêu cầu Node.js 22 trở lên. Với Node.js cũ hơn, npm in cảnh báo EBADENGINE nhưng quá trình cài đặt vẫn hoàn tất, vì cùng một native binary được tải xuống dưới dạng dependency theo từng platform. Không bao giờ cài bằng sudo npm install -g. Cách này tạo các file thuộc sở hữu của root trong npm prefix và làm hỏng các lần cập nhật sau.

Làm cách nào để đăng nhập Claude Code qua SSH?

Chạy claude. Lệnh sẽ in ra một URL xác thực. Mở URL đó trong trình duyệt trên máy tính của bạn, không phải trên server. Sau khi đăng nhập, trình duyệt hiển thị một login code thay vì redirect, vì trình duyệt không thể truy cập callback listener mà Claude Code đã khởi động trên địa chỉ loopback của máy remote. Dán code đó tại prompt Paste code here if prompted. Với các session bắt đầu khi không có người dùng trực tiếp, hãy chạy claude setup-token rồi đặt token được in ra vào CLAUDE_CODE_OAUTH_TOKEN tại nơi cần dùng.

Claude Code lưu thông tin đăng nhập của tôi ở đâu trên Linux?

Thông tin được lưu trong ~/.claude/.credentials.json với file mode 0600, hoặc dưới CLAUDE_CONFIG_DIR khi bạn đặt biến đó. Linux không dùng keychain như macOS, nên mọi process chạy dưới user của bạn đều có thể đọc file này. Vì vậy, một bản backup /home hoặc machine image có thể chứa login đang hoạt động. Hãy chạy /logout trước khi snapshot hoặc sao chép hệ thống. Nếu ANTHROPIC_API_KEY cũng được đặt trong environment, biến này được ưu tiên hơn login subscription đã lưu sau khi bạn phê duyệt nó. /status cho biết login nào đang hoạt động.

Gói Claude Pro có bao gồm CLI cũng như web app không?

Có. Gói Pro, Max, Team hoặc Enterprise đăng nhập bạn vào claude.ai, desktop app, CLI và VS Code extension bằng cùng một account. Gói claude.ai miễn phí không bao gồm Claude Code, nên terminal CLI cần một gói trả phí hoặc một account Claude Console. API được tính phí riêng theo token từ Console account. Đây là một product khác với subscription.