Skip to main content

Installation

Get AigenLabs Agent up and running in under two minutes!

Quick Install

To install the command-line and desktop applications, use the platform-specific installer or the command-line installer below, then launch Desktop with aigenlabs desktop.

Without AigenLabs Desktop:

For a command-line only install without AigenLabs Desktop, run:

Linux / macOS / WSL2 / Android (Termux)

curl -fsSL https://docs.aigenlabs.vn/install.sh | bash

Windows (native)

Run in powershell:

iex (irm https://docs.aigenlabs.vn/install.ps1)

If you want to install & run AigenLabs Desktop after a command-line only install, simply run

aigenlabs desktop

What the Installer Does

The installer handles everything automatically — all dependencies (Python, Node.js, ripgrep, ffmpeg), the repo clone, virtual environment, global aigenlabs command setup, and LLM provider configuration. By the end, you're ready to chat.

Install Layout

Where the installer puts things depends on whether you're installing as a normal user or as root:

InstallerCode lives ataigenlabs binaryData directory
pip installPython site-packages~/.local/bin/aigenlabs (console_scripts)~/.aigenlabs/
Per-user (git installer)~/.aigenlabs/aigenlabs-agent/~/.local/bin/aigenlabs (symlink)~/.aigenlabs/
Root-mode (sudo curl … | sudo bash)/usr/local/lib/aigenlabs-agent//usr/local/bin/aigenlabs/root/.aigenlabs/ (or $AIGENLABS_HOME)

The root-mode FHS layout (/usr/local/lib/…, /usr/local/bin/aigenlabs) matches where other system-wide developer tools land on Linux. It's useful for shared-machine deployments where one system install should serve every user. Per-user config (auth, skills, sessions) still lives under each user's ~/.aigenlabs/ or explicit AIGENLABS_HOME.

After Installation

Reload your shell and start chatting:

source ~/.bashrc   # or: source ~/.zshrc
aigenlabs # Start chatting!

To reconfigure individual settings later, use the dedicated commands:

aigenlabs model          # Choose your LLM provider and model
aigenlabs tools # Configure which tools are enabled
aigenlabs gateway setup # Set up messaging platforms
aigenlabs config set # Set individual config values
aigenlabs setup # Or run the full setup wizard to configure everything at once
Fastest path: Nous Portal

One subscription covers 300+ models plus the Tool Gateway (web search, image generation, TTS, cloud browser). Skip the per-tool key juggling:

aigenlabs setup --portal

That logs you in, sets Nous as your provider, and turns on the Tool Gateway in one command.


Prerequisites

Installer: On non-Windows platforms, the only prerequisite is Git. The installer automatically handles everything else:

  • uv (fast Python package manager)
  • Python 3.11 (via uv, no sudo needed)
  • Node.js v22 (for browser automation and WhatsApp bridge)
  • ripgrep (fast file search)
  • ffmpeg (audio format conversion for TTS)
info

You do not need to install Python, Node.js, ripgrep, or ffmpeg manually. The installer detects what's missing and installs it for you. Just make sure git is available (git --version).

Nix users

If you use Nix (on NixOS, macOS, or Linux), there's a dedicated setup path with a Nix flake, declarative NixOS module, and optional container mode. See the Nix & NixOS Setup guide.


Manual / Developer Installation

If you want to clone the repo and install from source — for contributing, running from a specific branch, or having full control over the virtual environment — see the Development Setup section in the Contributing guide.


Non-Sudo / System Service User Installs

Running AigenLabs as a dedicated unprivileged user (e.g. a aigenlabs systemd service account, or any user without sudo access) is supported. The only thing on the install path that genuinely needs root is Playwright's --with-deps step, which apt-installs shared libraries (libnss3, libxkbcommon, etc.) used by Chromium. The installer detects whether sudo is available and gracefully degrades when it isn't — it will install the Chromium binary into the service user's own Playwright cache and print the exact command an administrator needs to run separately.

Recommended split (Debian/Ubuntu):

  1. One time, as an admin user with sudo, install the system libraries Chromium needs:

    sudo npx playwright install-deps chromium

    (You can run this from anywhere — npx will fetch Playwright on the fly.)

  2. As the unprivileged service user, run the regular installer. It will detect the missing sudo, skip --with-deps, and install Chromium into the user's local Playwright cache:

    curl -fsSL https://docs.aigenlabs.vn/install.sh | bash

    If you want to skip the Playwright step entirely — for example because you're running headless and don't need browser automation — pass --skip-browser:

    curl -fsSL https://docs.aigenlabs.vn/install.sh | bash -s -- --skip-browser
  3. Make aigenlabs available to the service user's shells. The installer writes the launcher to ~/.local/bin/aigenlabs. System service accounts often have a minimal PATH that doesn't include ~/.local/bin. Either add it to the user's environment, or symlink the launcher into a system location:

    # Option A — add to the service user's profile
    echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

    # Option B — symlink system-wide (run as an admin)
    sudo ln -s /home/aigenlabs/.aigenlabs/aigenlabs-agent/venv/bin/aigenlabs /usr/local/bin/aigenlabs
  4. Verify: aigenlabs doctor should now run cleanly. If you get ModuleNotFoundError: No module named 'dotenv', you're invoking the repo source aigenlabs file (~/.aigenlabs/aigenlabs-agent/aigenlabs) with system Python instead of the venv launcher (~/.aigenlabs/aigenlabs-agent/venv/bin/aigenlabs) — fix step 3.

The same pattern works on Arch (the installer uses pacman with the same sudo-detection logic), Fedora/RHEL, and openSUSE — those distros don't support --with-deps at all, so an administrator always installs the system libraries separately. The relevant dnf/zypper commands are printed by the installer.


Troubleshooting

ProblemSolution
aigenlabs: command not foundReload your shell (source ~/.bashrc) or check PATH
API key not setRun aigenlabs model to configure your provider, or aigenlabs config set OPENROUTER_API_KEY your_key
Missing config after updateRun aigenlabs config check then aigenlabs config migrate

For more diagnostics, run aigenlabs doctor — it will tell you exactly what's missing and how to fix it.

Install method auto-detection

AigenLabs auto-detects whether it was installed via pip, the git installer, Homebrew, or NixOS, and aigenlabs update prints the matching update command for that path. There's no env var to set — the detection is based on the install layout (Python site-packages, ~/.aigenlabs/aigenlabs-agent/, Homebrew prefix, or Nix store path). aigenlabs doctor also surfaces the detected method under its environment summary.