Jun 10, 2026 3 min read

Installing OpenClaw on Linux (the Real Walkthrough)

A real npm install of OpenClaw 2026.5.28 on Debian: dodging EACCES, the full CLI surface, and the point where it needs your accounts.

Tested with: Debian 13 (trixie), OpenClaw 2026.5.28 (build e932160), Node.js 22.22.2, installed globally via npm, tested 2026-06-02.

OpenClaw is the open-source personal-assistant runtime whose pitch is "all your chats, one OpenClaw": one agent that lives across your messaging apps and runs on your own machine. I installed it on a clean Debian box to see what the real install looks like and what you actually get. Short version: the install is one npm command, the CLI is enormous, and the point where it needs your accounts is clearly marked. Here is the honest walkthrough.

Prerequisites

OpenClaw is Node end to end, so you need a current Node. The apt-default Node on Debian and Ubuntu is too old; use NodeSource or nvm. I already had Node from NodeSource:

$ node --version
v22.22.2
$ npm --version
10.9.7

That worked fine. OpenClaw wants Node 22.16 or newer (24 is the recommended line), so anything on a current 22.x or 24.x is good. What you do not need: Python (it is TypeScript), a GPU (unless you point it at local models), or Docker, though it can run in a container if you want.

Install OpenClaw

The global npm install is one line:

sudo npm install -g openclaw

I used sudo because a plain global install on this setup hits the classic EACCES: permission denied trap, where npm cannot write to the global directory. If you would rather not use sudo, point npm's global prefix at your home directory first:

mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
npm install -g openclaw

Either way, confirm the version:

$ openclaw --version
OpenClaw 2026.5.28 (e932160)

The banner that greets you sums up the product: "OpenClaw 2026.5.28 - All your chats, one OpenClaw."

What you actually installed

Run openclaw --help and the size of the surface is the story. This is a platform, not a single tool. Real commands, grouped:

  • Setup: onboard, configure (interactive setup for credentials, channels, gateway, and agent defaults), setup, and crestodian, an "interactive setup and repair assistant".
  • Use: chat (a local terminal UI, alias for tui --local), agent, agents (manage isolated agent workspaces), message, send.
  • Messaging: channels (add, login, inspect messaging channels), gateway, devices, pairing, qr.
  • Agent features: skills, tools, memory, cron (scheduled jobs), hooks, tasks, commitments, mcp (OpenClaw can be an MCP client too), sandbox, exec-policy.
  • Operations: doctor, status, health, daemon, backup, update, logs, transcripts.

A few useful global flags from the help: --profile <name> isolates state under a named profile, --dev runs a dev profile on a separate port, and --container <name> runs the CLI inside a Podman or Docker container. The --profile flag is the one to remember if you want to run more than one OpenClaw setup on the same box without them colliding.

As with Hermes, note the mcp command: OpenClaw can consume MCP servers, so a server you build plugs straight in.

Configure it: where your accounts come in

This is the honest boundary. The install above gives you a working CLI. To make OpenClaw do anything, you run the interactive setup, and that asks for things only you have: a model provider API key and, optionally, a messaging channel to connect.

openclaw onboard      # or: openclaw configure

The setup walks through credentials (your LLM provider key), the gateway, channels, and agent defaults. Because it wants real keys and real chat-app logins, a generic walkthrough stops here and your setup takes over. If you ever need to repair a config rather than start fresh, openclaw crestodian is the guided repair assistant, and openclaw doctor is the quick diagnostic.

The daemon and channels, in one paragraph

OpenClaw's value is being always-on: it runs a background daemon so messaging channels and scheduled jobs keep working when no terminal is attached. After configuring, openclaw channels manages the connections to WhatsApp, Telegram, Slack, Discord, and the rest, and openclaw cron handles scheduled jobs (note: it is cron, not "schedule"). openclaw status and openclaw health tell you what is running. To keep the daemon alive after you log out, the standard Linux step is sudo loginctl enable-linger $USER.

When something seems off

If openclaw is not found after install, npm's global bin is not on PATH; run npm prefix -g and add its bin/ to PATH. For anything else, openclaw doctor is the first command to reach for, with openclaw crestodian as the interactive fixer when doctor flags something it can repair.

Takeaways

  • Install is one command: npm install -g openclaw (use sudo or set a user-level npm prefix to dodge EACCES). I landed 2026.5.28 on Node 22.22.2.
  • Use a current Node (22.16+; 24 recommended). The apt-default Node is too old.
  • The CLI is huge: channels, gateway, cron, skills, memory, sandbox, and an mcp command. It is an always-on agent platform, not a chat box.
  • It is openclaw cron for scheduled jobs and openclaw channels for messaging, run through the background daemon.
  • Configuring it (openclaw onboard) needs your model API key and chat-app logins, so that step is yours. doctor and crestodian are the diagnostics to learn first.
J
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to LLMbits.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.