Skip to content

Installation

luvus ships as a single static binary (~3 MB) with no runtime dependencies. Pick whichever channel you prefer:

Terminal window
curl -fsSL https://luvus.dev/install.sh | sh

Downloads the right prebuilt binary for your OS/arch from GitHub releases and puts it on your PATH (/usr/local/bin or ~/.local/bin). macOS builds ship for both Apple silicon and Intel, Linux for x86_64 and arm64, and FreeBSD for amd64.

Terminal window
luvus doctor

doctor probes the optional tools luvus integrates with and tells you what each unlocks:

Tool Unlocks
git the git tab · worktrees · orchestration workers
gh (authenticated) PRs, issues, and PR detail in the git tab
ssh remote sessions (luvus --remote host)

None are required for the core multiplexer: panes, tabs, agents, and resume all work without them.

Live agent status and session resume work with zero setup. For precise session ids and lifecycle events used by sound alerts and module automation, install the integration hook for your agent:

Terminal window
luvus integration install claude # or: copilot · codex · antigravity · opencode

Also available from Settings → Integrations inside luvus. luvus integration uninstall <agent> removes only luvus’s hook and never touches the agent itself.

Use one command to check first and install only when a newer release exists:

Terminal window
luvus update

Direct macOS and Linux installs are downloaded from the matching GitHub Release, checked against its published SHA-256 digest, and replaced only after the downloaded binary reports the expected version. Homebrew and Cargo installs update through their package manager. Nix and Linux system packages are never overwritten; the command reports the matching package-manager action instead. On Windows it checks for the release, then prints the PowerShell installer command because Windows cannot replace the executable while it is running.

The running server is left alone so active panes are not interrupted. After a successful update, reload it when you are ready:

Terminal window
luvus server restart # restart only the selected session
luvus server restart --all # restart every currently running session

Stopped sessions remain stopped. If you restart only the selected session, other running named sessions remain uninterrupted until you select them; the session switcher then detects the older server version, restarts that target, and completes the switch.

Development binaries under target/debug or target/release are never overwritten by luvus update. Rebuild those from source instead.

Everything lives in ~/.luvus/ (override with $LUVUS_HOME): your configuration, the auto-saved session snapshot, and the orchestration ledger. The directory is created owner-only (0700).

The default session keeps its files directly in this directory. Named server sessions store their runtime files under ~/.luvus/sessions/<name>/. Preferences, manifests, skills, and module installations remain shared.