Claude for Linux: Desktop App and CLI Setup
See wetin Claude supports natively for Linux: beta apt desktop app, Claude Code CLI, editor plugins, and the paid plan wey covers each one.
Wetin be the parts of Claude wey dey run natively for Linux today
Claude for Linux dey run for four separate surfaces, and as of August 2026, all four dey work for ordinary Ubuntu or Debian machine. The desktop app dey install from Anthropic apt repository, and e still dey beta. Claude Code CLI (command line interface) na compiled binary, and e dey run for more distributions than the desktop app. The web app for claude.ai only need browser, while the API na HTTPS endpoint wey you dey call from your own code.
Two features wey macOS and Windows get no dey available for Linux desktop beta: Computer Use, where Claude dey control apps for your screen, and voice dictation. Anthropic document both features as not yet available for Linux. The CLI get its own voice dictation, so the gap dey inside desktop app, no be Claude itself.
Availability dey change, so make you read this page as description of the surfaces, then check the current state before you plan around am. The last section list the pages wey you suppose check.
Install Claude desktop app for Ubuntu or Debian
The documented requirements na Ubuntu 22.04 or later, or Debian 12 or later, for x86_64 (wey dpkg dey call amd64) or arm64. Other Debian-based distributions fit work, but dem never test am. Fedora and RHEL never get package yet, so for those ones, use CLI or browser.
Install am from apt repository instead of downloaded .deb file. The Linux app no get updater of its own, so na your package manager fit bring new versions reach you. Registering the repository na wetin make apt upgrade see dem.
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.ascgpg --show-keys suppose print fingerprint 31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE. Compare am before you register the repository, because signing key wey you never check na key wey you dey trust blindly. If gpg report say the file no contain valid OpenPGP data, the download fail, and apt update go fail later with NO_PUBKEY BAA929FF1A7ECACE.
Registering the repository na one deb line wey you write to /etc/apt/sources.list.d/claude-desktop.list. Copy that line from Anthropic's Linux install page, code.claude.com/docs/en/desktop-linux, exactly as dem print am there. The repository address na the part of this procedure wey fit change pass, and line wey person type from memory na wetin go leave you dey look at E: Unable to locate package claude-desktop afterwards. Read the line before you paste am: arch=amd64,arm64 na why apt for any other architecture no find anything, and signed-by= point to the keyring file wey you just check. This one restrict that key to only this repository instead of making apt trust am for everything else e dey read.
sudo apt update && sudo apt install claude-desktopStart am from your application launcher, or run claude-desktop for terminal. Sign in with your claude.ai account, or through your organisation's SSO (single sign-on) if your company set am up. The desktop app no accept Claude Console API key: key-based authentication na CLI feature.
E: Unable to locate package claude-desktop mean say apt never read the repository. cat /etc/apt/sources.list.d/claude-desktop.list suppose show the deb line wey you write, and dpkg --print-architecture suppose print amd64 or arm64, because dem never publish packages for other architectures. Updates go then arrive with the rest of your system, from sudo apt update && sudo apt upgrade.
Browser dey provide some things wey no dey elsewhere
claude.ai dey work for any current browser on any distribution. So e be the answer for Fedora, RHEL, Arch, openSUSE, and any other system wey no get package. Browser still get Claude Code on the web. For there, session dey run for Anthropic cloud instead of your machine, and e always use your subscription credentials.
You need understand wetin browser no fit do. Cloud session no fit read files for your own server or run command for there. Anything wey need touch your machine require software for that machine. That means CLI or desktop app.
Wetin CLI dey give you wey web app no dey give
Start claude inside one directory and e go work for that directory. Na this be the difference, and everything else follow from there.
- E dey read and edit the files for your working directory, and e show you each edit before e apply am.
- E dey run shell commands wey you approve, so e fit build project, run test suite, read log, or inspect service for the box itself.
- E dey run without interactive session:
claude -p "read the nginx error log and summarise it"go print one answer and exit, na this one you go use from cron job or pipeline. - E dey connect MCP (model context protocol) servers with
claude mcp add, wey give the model tools beyond filesystem. - E dey run for anywhere wey graphical desktop no dey at all, and na every VPS (virtual private server) wey you go ever rent be like that.
Na that last point make server guide dey care about CLI. Rented server get SSH (secure shell) and nothing else, so terminal na the only surface wey fit dey there with you. To run am that way get im own rules. How to run Claude Code for VPS inside tmux cover everything for there, while how to use Claude for everyday sysadmin work cover the jobs wey make sense to hand over to am.
Editor integrations dey between the two. VS Code extension need VS Code 1.94.0 or later and e give you graphical panel inside the editor, with diffs and plan review. E bundle private copy of CLI for that panel and e no put claude for your PATH, so if you type claude for integrated terminal, you still need the standalone install. Editors wey build on VS Code dey install the same extension from Open VSX registry, and JetBrains plugin dey too.
You need Node.js to run Claude Code for Linux?
No be with the recommended install. The native installer dey download compiled binary, and binary dey run without Node.js.
curl -fsSL https://claude.ai/install.sh | bash
claude --versionclaude --version suppose print version number like 2.1.211 (Claude Code). If something no look correct, run claude doctor. E go print read-only diagnostics about the install and your settings files without starting session.
Node.js only matter for npm route. From package version 2.1.198, npm package dey require Node.js 22 or later. For older Node.js, npm go print EBADENGINE warning instead of failing. This na because package dey bring the same native binary as per-platform dependency and link am into place.
npm install -g @anthropic-ai/claude-codeNo run am with sudo. Documentation warn against sudo npm install -g because e dey leave root-owned files inside your global npm prefix. Because of that, the next unprivileged install or update go fail because of permissions. When npm global directory no writable, background auto-update go stop to work, and claude doctor go list the fixes.
Anthropic still dey publish signed package repositories for Debian, Fedora, RHEL and Alpine. So sudo apt install claude-code dey work almost like the desktop package, with its own signing key for https://downloads.claude.ai/keys/claude-code.asc.
You suppose install per user or system wide?
The native installer na per-user install. E dey put launcher for ~/.local/bin/claude as symlink wey point to ~/.local/share/claude/versions/, e no need root, and e dey update itself for background. Each user for the machine get separate copy for separate version.
Package manager install na system wide. One binary dey serve every user, e need root, and e no dey auto-update through Claude Code. You upgrade am with sudo apt update && sudo apt upgrade claude-code, na the same command wey you already dey run for everything else for the machine.
Choose per-user install for machine wey you dey log into as yourself; this na the setup wey fit most VPS work. Choose package install for shared server or machine image, where you want one version for everybody and you want updates to happen according to your schedule. For native install, two settings for ~/.claude/settings.json dey decide how updates go behave:
{
"autoUpdatesChannel": "stable",
"env": {
"DISABLE_AUTOUPDATER": "1"
}
}The stable channel dey follow release wey roughly one week old and e dey skip releases wey get major regressions. DISABLE_AUTOUPDATER only stop the background check, so claude update still dey work and you still control when new version go arrive. This matter for server where long job dey run unattended and you prefer make the binary no change underneath am.
Log in through SSH, and make the session stay alive
Two Linux-specific problems dey show the first time you run the CLI for rented server. The login process need browser, but server no get browser. If SSH connection drop, e go carry the work wey dey run along.
tmux dey solve the second problem. tmux session belong to tmux server for the remote machine, no be to your connection. So, if network link drop, process go still dey run.
tmux new -s claude
claudeUse Ctrl-b then d to detach, and come back later with tmux attach -t claude.
The login na the first problem. Run claude and e go print authorisation URL. Open the URL for browser on your own computer. After you sign in, browser go show login code instead of redirecting back. This happen because browser for your laptop no fit reach the callback server wey Claude Code start for the remote machine loopback address. Paste the code inside terminal for Paste code here if prompted prompt, and terminal go report Login successful.
For session wey need start when nobody dey watch, claude setup-token go open the same browser authorisation and print one year OAuth token for terminal. E no save the token anywhere, so copy am and set am where you need am.
export CLAUDE_CODE_OAUTH_TOKEN=your-tokenThat token need paid plan, and e fit only make model requests. Treat am like password wey go last one year. Where to keep am, and how to stop agent from reading am back, na the subject of keeping secrets away from AI agents.
Small servers get one more problem. Installation need roughly 512 MB free memory, and documented hardware requirement to run am na 4 GB RAM or more. So, for 1 GB instance, kernel out-of-memory killer go terminate the install:
Setting up Claude Code...
Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.Add swap, then run installer again. Swap na disk space wey kernel dey use as extra memory when RAM no enough. E much slower than RAM, but e enough to finish installation.
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfileswapon go enable the file for this boot only. Add one line for /swapfile inside /etc/fstab if you want make e come back after reboot. Wetin else to lock down before you allow agent run commands for live server na the subject of running Claude Code safely on a VPS.
Wey your Claude credentials dey stay for Linux
For Linux, /login dey write the credential go ~/.claude/.credentials.json with file mode 0600. macOS dey put the same credential for encrypted Keychain, so habit wey you form for Mac no carry over: for Linux, the token na plain file inside your home directory, and every process wey dey run as your user fit read am. If you set CLAUDE_CONFIG_DIR, e go move the file under that directory.
Two things follow from this. Backup of /home get active login inside, so if you copy that backup go shared machine, anybody else wey fit read am don get access to your account. And machine image wey you build from box wey you don log in to go carry that login enter every instance wey you clone from am. Run /logout before you take any snapshot.
Credential precedence fit catch people wey get subscription and API key at the same time. When you set ANTHROPIC_API_KEY for your shell, Claude Code go use am after you approve am, so your subscription go remain unused while the key dey charge per token. /status go show which credential dey active, and unset ANTHROPIC_API_KEY go return you to the subscription login.
Logins dey expire. Within three days before expiry, the startup line go show Your login expires in 3 days, and that warning no dey block request. After expiry, every request go fail with Login expired · Please run /login. Know this before you leave unattended session running through weekend, because that kind session go stop making progress and e no fit recover by itself.
Does one Claude subscription cover everything?
One paid plan go cover every surface with the same login. Pro, Max, Team or Enterprise account go sign you in to claude.ai for browser, the desktop app, the CLI and the VS Code extension. Na the same subscription each time. Na also one usage allowance across all of dem, so one long CLI run for your server go reduce wetin remain for the desktop app. When any surface start refuse work, which limit window you don reach and wetin to do about am na the thing wey you need check. The free claude.ai plan no include Claude Code access, so the CLI and the Claude Code parts of the desktop app need paid plan or Claude Console account.
The API na different product with different billing. Console account dey charge per token for wetin you actually send. This one fit better for service wey you dey build, instead of you typing for terminal. Setting ANTHROPIC_API_KEY go move the CLI enter that billing path. Na choice wey you make, e no be fallback.
Prices and plan limits dey change too often to repeat dem here. Two pages dey track the current numbers: how much Claude Code really cost and which Claude plan you need. If you dey compare per-token billing with monthly plan, API compared with subscription go help you work out where the break-even point dey.
Installation error wey you go actually see
bash: claude: command not found immediately after successful installation. The binary dey for ~/.local/bin/claude, but that directory no dey inside your shell search path. Confirm am with echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"; e no go print anything when the entry no dey. Fix am for bash with echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc, then run source ~/.bashrc. Installing the VS Code extension by itself no dey create that file, because the extension dey keep its CLI copy inside the extension directory.
Error loading shared library libstdc++.so.6. The installer choose the musl build for a glibc system. This one happen when musl cross-compilation packages dey installed and the detection read dem wrongly. Run ldd --version 2>&1 | head -1: output wey get name GNU libc or GLIBC mean say na glibc you dey use and you receive the wrong binary, so remove the installation and run the installer again. For Alpine and other musl systems, the fix na the opposite, apk add libgcc libstdc++ ripgrep.
Two copies of claude for one machine. which -a claude go list every match inside your PATH. Native installation na symlink from ~/.local/bin/claude go ~/.local/share/claude/versions/, legacy local npm installation dey under ~/.claude/local/, and npm -g ls @anthropic-ai/claude-code go show global npm installation. Remove the ones wey you no want, because stale copy wey dey earlier for your PATH na wetin make fixed bug still look like say e no fix.
Wey to check the current state
- Linux desktop status, requirements and install commands: code.claude.com/docs/en/desktop-linux
- Supported distributions and every install method for the CLI: code.claude.com/docs/en/setup
- Which platforms get an app to download at all: claude.com/download
- Which plan get wetin, and how much e cost: claude.com/pricing
Every version number and date for this guide na snapshot of August 2026. Na the general setup dey remain the same: four surfaces, one login across the paid ones, and one decision about whether the CLI belong to your user or the whole machine.
FAQ
Claude desktop app dey available for Linux?
Yes. As of August 2026, e dey beta, and e support Ubuntu 22.04 or later plus Debian 12 or later for amd64 or arm64. Install am with sudo apt install claude-desktop after you add Anthropic's apt repository and signing key, so new versions go arrive with your normal system upgrades. The Linux build get the same tabs wey macOS app get, including the Claude Code tab. Computer Use and voice dictation never dey for Linux build yet, and Fedora plus RHEL no get package. For those distributions, use the CLI or claude.ai for browser.
I need Node.js to run Claude Code for Linux?
No be for the recommended install. curl -fsSL https://claude.ai/install.sh | bash dey download compiled binary wey no use Node.js at runtime. Node.js matter only if you install npm package, wey require Node.js 22 or later as of version 2.1.198. For older Node.js, npm go print EBADENGINE warning, but install still go finish because the same native binary dey come in as per-platform dependency. No ever install am with sudo npm install -g, because e go leave root-owned files for your npm prefix and spoil later updates.
How I fit log in to Claude Code over SSH?
Run claude and e go print authorisation URL. Open that URL for browser on your own computer, no be for the server. After you sign in, browser go show login code instead of redirecting, because e no fit reach the callback listener wey Claude Code start for the remote machine loopback address. Paste that code for Paste code here if prompted prompt. For sessions wey go start when nobody dey present, run claude setup-token and set the token wey e print as CLAUDE_CODE_OAUTH_TOKEN anywhere wey dem need am.
Where Claude Code dey store my login for Linux?
For ~/.claude/.credentials.json with file mode 0600, or under CLAUDE_CONFIG_DIR when you set that variable. Linux no involve keychain, unlike macOS, so any process wey dey run as your user fit read the file. So /home backup or machine image go carry working login: run /logout before you snapshot or copy system. If ANTHROPIC_API_KEY dey set for your environment too, e take precedence over the stored subscription login once you approve am, and /status go show which one dey active.
My Claude Pro subscription cover CLI together with web app?
Yes. Pro, Max, Team or Enterprise plan go sign you in to claude.ai, desktop app, CLI and VS Code extension with one account. Free claude.ai plan no include Claude Code, so terminal CLI need paid plan or Claude Console account. API billing dey separate per token from Console account, and that one na different product from subscription.