Skip to content

Install & Update

Atomic Agent is a local-first AI agent that runs on your own machine. There’s no cloud account to create and no per-token bill — it talks to a language model running locally and keeps your data on disk. This page gets it installed and ready to run.

The whole app ships as a single binary with a few support folders next to it. Installation is one command, and so is updating: atomic-agent update, or confirm the update prompt in the TUI.

Supported platforms

v0.6.5 publishes prebuilt binaries for exactly four targets:

PlatformTargetStatus
macOS (Apple Silicon)darwin-arm64Supported
Linux x64linux-x64Supported
Linux arm64linux-arm64Supported
Windows x64win32-x64Supported

Windows on ARM runs the x64 build under emulation; the PowerShell installer installs it and prints a note.

Quick install

The fastest path is the install script. It downloads the right binary for your platform, verifies it, and puts it on your PATH.

On macOS (Apple Silicon) or Linux, run it in your shell:

Terminal window
curl -fsSL https://atomicagent.io/install | sh

On Windows, run it in PowerShell:

Terminal window
irm https://atomicagent.io/install.ps1 | iex

Once it finishes, confirm the binary is found:

Terminal window
atomic-agent --help

The installer also adds atag, a shorter alias for the same binary, so atag tui and atomic-agent tui do the same thing.

Then launch the terminal UI to get going:

Terminal window
atomic-agent tui

What you need

Atomic Agent bundles most of what it needs into the binary, but a few things live outside it and must be present on your system.

A local model server

Inference runs through llama-server (from llama.cpp). Atomic Agent can download and manage this for you (managed mode), or you can point it at a server you run yourself (external mode).

A browser (optional)

Browser tools drive Chrome, Edge, or Chromium. Browser binaries are not bundled — install one yourself if you want web automation.

Disk + RAM/VRAM

The download is a ~50 MB archive. It unpacks to a ~140 MB self-contained binary (it embeds the Node runtime) plus a few support folders next to it (vendor/, node_modules/, grammars/, starter-skills/). Models dominate the footprint: the default model (qwen-3.5-4b) needs a few GB. GPU acceleration is used when available.

Linux desktop tools

Some Linux tools (clipboard, notifications, window control) rely on small system packages. See Linux notes below.

Node.js 25.7+ (source installs only)

The prebuilt binary needs no Node at all. Building or running from source requires Node.js 25.7.0 or newer — see Installing from source.

What’s already inside the binary, so you don’t install it separately:

  • ripgrep — fast file search (shipped as vendor/rg next to the binary).
  • Document extractors — PDF, DOCX, XLSX, PPTX, RTF, ODT text extraction.
  • SQLite — sessions, memory, and tasks are stored locally.

How the pieces fit

Atomic Agent is the binary you install. It connects out to a model server for inference and, optionally, to a browser for web tasks. Everything else — your sessions, memory, and config — lives in a local state directory.

flowchart LR
    subgraph machine["Your machine"]
        CLI["atomic-agent<br/>(single binary)"]
        Llama["llama-server<br/>(llama.cpp)"]
        Browser["Chrome / Edge<br/>(optional)"]
        State["~/.atomic-agent<br/>config.json, .env,<br/>sessions, memory"]
    end

    CLI -->|inference| Llama
    CLI -->|web tools| Browser
    CLI -->|read/write| State

    Install["install.sh"] -->|downloads| CLI
    Llama -->|managed mode<br/>downloads| Models["GGUF models<br/>(HuggingFace)"]
  • Managed mode (recommended; the TUI’s first-run setup and models use switch you to it): Atomic Agent downloads llama-server and your chosen model, starts the daemon, and watches its health.
  • External mode: you run llama-server yourself; Atomic Agent just talks to it.

Set up the model server

You have two ways to provide inference.

Let Atomic Agent handle the model server for you. Inside the TUI’s first-run setup, or from the CLI:

Terminal window
# See the catalog of available chat models
atomic-agent models list
# Download and select a model (qwen-3.5-4b is the default)
atomic-agent models pull qwen-3.5-4b
atomic-agent models use qwen-3.5-4b
# Start the managed daemon
atomic-agent models start
# Check it's healthy
atomic-agent models status

Managed mode downloads the llama.cpp backend and the GGUF model, spawns the daemon, and polls its /health endpoint until it reports ok. To upgrade the backend or swap models later, use atomic-agent models update, models pull, and models stop.

GPU backends

Managed mode downloads the llama.cpp build that fits your platform. An NVIDIA GPU is not required.

PlatformBackend
macOS (Apple Silicon)Metal
Linux x64Vulkan (NVIDIA, AMD, Intel)
Linux arm64CUDA 13.3 build that falls back to CPU without an NVIDIA driver; needs glibc 2.38+
Windows x64CUDA 12.4 or 13.3 when nvidia-smi reports a capable driver, otherwise Vulkan; falls back to the CPU build automatically if the GPU build can’t serve

Run atomic-agent models devices to see what was detected and models use-device to pick one.

First run

With a model ready, start a session:

Terminal window
# Interactive terminal UI
atomic-agent tui
# Or a plain stdin/stdout chat loop
atomic-agent run --cwd .

Useful flags on run:

  • --cwd DIR — set the working directory the agent operates in.
  • --max-steps N — cap how many steps a single turn may take.
  • --no-approval — auto-approve dangerous tools (shell, file writes, HTTP). Convenient for trusted/dev use; risky otherwise.

Where Atomic Agent stores things

Everything lives in a single state directory, defaulting to ~/.atomic-agent. Override it with ATOMIC_AGENT_STATE_DIR.

PathWhat it holds
config.jsonUser-facing settings (local models, agent limits and approvals, memory, MCP servers, channels, analytics)
.envSecrets — API keys, tokens (mode 0600)
sessions.sqliteConversation transcripts and session state
memory.sqliteProfile facts, notes, lessons, procedures
tasks.sqliteDurable task queue
skills/Globally installed skills
models/Downloaded GGUF models and the managed llama.cpp backend
traces/Per-session NDJSON traces

Linux notes

Atomic Agent runs on Linux x64 and arm64. A few desktop capabilities depend on small system packages that are not bundled. Atomic Agent probes for clipboard, notification, and window tools at startup and reports what it found in its capabilities. Install the ones you want:

Optional Linux desktop packages
  • xclip, xsel, or wl-clipboard (Wayland): clipboard read/write (os.clipboard).
  • libnotify / notify-send: desktop notifications (os.notify).
  • wmctrl: window control (os.window.*).
  • gio: trash/move-to-trash support.

ripgrep is already bundled, so you do not need to install it separately. (To point at a different ripgrep, set ATOMIC_AGENT_RG_PATH.)

Two more things to know on Linux:

  • GPU acceleration uses Vulkan on Linux x64 (NVIDIA, AMD, and Intel). On Linux arm64 there is one backend build (CUDA 13.3 with CPU fallback, ~554 MB) and it needs glibc 2.38+ (Ubuntu 24.04, Debian 13, DGX OS 7); on older or musl systems use external mode. Managed mode enumerates devices via llama-server --list-devices and prefers a discrete GPU when present.
  • Browser sandboxing can fail inside containers or unusual kernels. If Chrome won’t launch, set ATOMIC_AGENT_BROWSER_NO_SANDBOX=1 (containers/CI only — it disables the browser sandbox).

Browser setup (optional)

Browser binaries aren’t shipped with Atomic Agent — install Chrome, Edge, or Chromium yourself. Then tune behavior with environment variables:

Terminal window
# Which browser channel to drive
export ATOMIC_AGENT_BROWSER_CHANNEL=chrome # chrome | msedge | chromium
# Explicit binary path (overrides auto-detect)
export ATOMIC_AGENT_BROWSER_EXECUTABLE_PATH=/path/to/chromium
# Run headless
export ATOMIC_AGENT_BROWSER_HEADLESS=1
# Attach to an already-running browser via CDP instead of launching one
export ATOMIC_AGENT_BROWSER_CDP_URL=http://127.0.0.1:9222

These are environment variables only; config.json has no browser section.

Installing from source

Building from a checkout is the fallback when there’s no prebuilt binary for your machine — notably Intel Macs.

Terminal window
git clone https://github.com/AtomicBot-ai/atomic-agent
cd atomic-agent
npm install
npm run build

Then run it with node dist/cli/index.js (or npm link to get atomic-agent and atag on your PATH).

The prebuilt binary has no such requirement: it embeds its own Node runtime, so you never install Node to use a released build.

Updating

How you update depends on how you installed.

If you installed via the script, Atomic Agent can update itself. When the TUI starts, it checks GitHub for a newer release (when eligible) and surfaces a prompt. Confirm it, and Atomic Agent re-runs the install script in place.

The check is a single anonymous GET to the GitHub Releases API (/repos/<repo>/releases/latest) and compares the latest tag with your running version. It is fire-and-forget: if you are offline, rate-limited, or the API errors, the failure is swallowed and your launch proceeds as normal. The result is cached in-process for ten minutes, so rapid relaunches do not re-query. If GITHUB_TOKEN or GH_TOKEN is set in your environment, it is sent as a bearer token to lift the anonymous rate limit.

Two honest caveats:

  • No silent auto-restart. Atomic Agent will not restart the running process for you. Once the update is written, the TUI shows a restart prompt so you know the new version is waiting — it takes effect when you relaunch.
  • Installed binary only. Self-update is refused when the running process is node or tsx, so it can never overwrite your Node runtime. See the Development checkout tab.

From a shell, atomic-agent update does the same thing. --check only reports current vs latest, and --version v0.6.5 installs a specific tag. The running process is not restarted; the next launch picks up the new binary.

Terminal window
atomic-agent update # install the latest release
atomic-agent update --check # report only, install nothing

The update settings are environment-only — there is no update block to add to config.json:

SettingVariableDefault
Startup version checkATOMIC_AGENT_UPDATE_CHECK_ON_STARTUPtrue
Repository queried and installed fromATOMIC_AGENT_REPOAtomicBot-ai/atomic-agent
Terminal window
# Disable the on-startup update check (skips the network call and the prompt)
export ATOMIC_AGENT_UPDATE_CHECK_ON_STARTUP=0
# Target a fork or a specific repo
export ATOMIC_AGENT_REPO=AtomicBot-ai/atomic-agent

ATOMIC_AGENT_REPO sets both halves of the flow: the release the check looks at, and the install.sh (or install.ps1) the in-app update downloads and runs.

Uninstalling

Terminal window
atomic-agent uninstall --dry-run # show what would be removed
atomic-agent uninstall

It lists everything it will delete with sizes: the state directory (config, memory, sessions, tasks, traces, and downloaded models), the binary and its atag alias, the support folders next to it, and the PATH line the installer added to your shell rc file. Then it asks you to type uninstall to confirm. There is no backup.

  • --keep-data keeps the state directory and removes only the program.
  • --keep-binary keeps the program and removes only the data.
  • --keep-path leaves the installer’s PATH line alone.
  • Non-interactive runs need --yes.

The TUI has the same action as /uninstall.

Next steps