Install
이 쪽은 아직 한국어로 옮기지 않았습니다. 아래는 영어 원문입니다.
elanous runs on Bun (not Node) on macOS, Linux and WSL2; Windows native PowerShell is experimental.
One line
(
tmp="$(mktemp)" &&
trap 'rm -f "$tmp"' EXIT &&
curl -fsSL https://github.com/ElanvitalAI/elanous/releases/latest/download/install.sh -o "$tmp" &&
test -s "$tmp" &&
bash -n "$tmp" &&
bash "$tmp" --yes
)
The npm path is two commands:
npm i -g elanous
eln
npm's postinstall bootstraps the pinned Bun release into ~/.local/share/elanous/bin and verifies its official SHA-256. If lifecycle scripts are skipped, offline, or running in CI, npm install still succeeds and the first eln retries the same setup. In a headless shell where postinstall was skipped, allow that retry with ELANOUS_INSTALL_YES=1 eln.
Coming from monad (0.1.x)? Don't use monad update to move — see Moving from monad.
The installer:
- downloads the latest release and checks it against
SHA256SUMS— a mismatch stops the install, - installs
bunwith its official installer if it is missing, at the version pinned in.bun-version(turn this off with--no-bootstrap-bun;ELANOUS_BUN_VERSION=latestlifts the pin), - installs into
~/.local/share/elanous(override with--prefix PATHorELANOUS_INSTALL_PREFIX), - adds
~/.local/share/elanous/binto your shellPATH(skip with--no-modify-path), - if a command it needs is missing, names all of them in one install line (without
sudowhen you are root), - ends by telling you the next step based on what it found (for example, whether you are logged in yet).
Open a new shell, then check:
elanous --version # prints the version and the commit it was built from
elanous doctor # what this machine still needs — a report, not a gate
Pin a version with ELANOUS_VERSION (Elanous releases start at 0.2.0):
(
tmp="$(mktemp)" &&
trap 'rm -f "$tmp"' EXIT &&
curl -fsSL https://github.com/ElanvitalAI/elanous/releases/latest/download/install.sh -o "$tmp" &&
test -s "$tmp" &&
bash -n "$tmp" &&
ELANOUS_VERSION=0.2.0 bash "$tmp" --yes
)
Windows (native PowerShell) — experimental
irm https://github.com/ElanvitalAI/elanous/releases/latest/download/install.ps1 | iex
elanous --version
It installs into %LOCALAPPDATA%\elanous (override with -Prefix PATH or ELANOUS_INSTALL_PREFIX) with the same layout as below — current is a directory junction, so no administrator rights are needed — and adds bin to your PowerShell profile (skip with -NoModifyPath). WSL2 remains the recommended way to run the harness on Windows.
From a bare Linux machine
A bare image may not even have curl, and the one-line installer needs it to download itself.
If you run the installer as root on Debian or Ubuntu, it installs any missing unzip and git itself (one apt-get update and install; turn this off with --no-install-deps).
As a regular user it only tells you what is missing, so install the basics first:
sudo apt-get update && sudo apt-get install -y curl ca-certificates unzip git
curl -fsSL https://github.com/ElanvitalAI/elanous/releases/latest/download/install.sh | bash
source ~/.bashrc
elanous --version && elanous doctor
Then add what the terminal and harness features need (measured on a fresh Debian 12):
sudo apt-get install -y build-essential ripgrep # C++ build tools for the terminal (node-pty) · ripgrep
elanous doctor --fix --yes # builds node-pty
The Codex CLI needs Node.js 20 or newer — Debian 12's own nodejs package is 18, so install Node from nodejs.org (or your distribution's Node 20+ source) before npm install -g @openai/codex.
That is enough to boot. To run the daemon and the harness, let doctor fix what it can — the node-pty rebuild, a pinned static gh and the Python environment (python3-venv, with --sudo). It does not install Node or the Codex CLI: install Node.js 20+ as above, then npm install -g @openai/codex.
elanous doctor --fix --yes --sudo
- ⚠️ Do not install
ghfrom Debian/Ubuntu apt — those packages (Debian 12: 2.23, Ubuntu 24.04: 2.45) are older than the 2.80 the harness needs.elanous doctor --fix --yesfetches a pinned one. - If terminal features stay dark, run
elanous doctor --fix --yesagain — it rebuildsnode-ptyfor the installed version. Re-running the installer on the same version does not. - Prefer to install by hand?
sudo apt-get install -y build-essential ripgrep, Node 20+ andnpm install -g @openai/codexare the equivalent.
Run the daemon in the background
elanous nexus install --systemd-user # Linux: active, enabled, and survives reboots without a login
elanous nexus install --launchd # macOS
The daemon's port answers about 30 seconds after it starts.
From a checkout
git clone https://github.com/ElanvitalAI/elanous && cd elanous
bash scripts/install.sh # same installer, installing this checkout (folder named by commit)
Layout
~/.local/share/elanous/
versions/<version>/ one folder per installed version (older ones are kept)
current -> versions/… the active version
bin/elanous the command on your PATH
install.json what is installed, from where, which commit
Your settings, logins and logs live in ~/.elanous; your memory lives in ~/.local/share/elanous/memory (inside the install folder). The installer never touches either, and the uninstaller removes only what the installer created (versions/, current, bin/, install.json) and names everything it keeps.
Update, roll back, uninstall
elanous self-update # latest release; the previous version stays for rollback
elanous self-update --version 0.2.3 # a specific release
ln -sfn versions/<previous> ~/.local/share/elanous/current # roll back
curl -fsSL https://github.com/ElanvitalAI/elanous/releases/latest/download/uninstall.sh | bash
If you run the background service, restart it after an update — see troubleshooting.
Error reports
When Elanous hits an error, it sends a short report to the Elanous team so we can fix it. This is on by default, and the first run prints one line that says so and how to turn it off.
- Sent: the error code, the message and stack trace (secrets and your home directory removed, file paths cut to the file name), the Elanous version and commit, where it happened (terminal UI, web app, CLI or daemon), your OS and CPU type, whether the background service was running, and a random install ID that is not derived from your machine or account.
- Not sent: your name, email or Telegram user — unless you turn that on yourself (
elanous config set errorReports.identity truepluserrorReports.email). - How often: the same error at most once an hour. If sending fails, one copy is kept and sent again the next time Elanous starts, at most once a day.
- Kept: 30 days, then deleted automatically.
- Turn off:
elanous config set errorReports.enabled false
Known limits
- On Windows, npm and first-run bootstrap timeouts try
taskkill /Tand then a PowerShell process-tree walk. If both are unavailable or blocked, the launcher stops waiting and kills its direct child, but cannot guarantee that descendant tools exit. Native Job Object cleanup is tracked for 0.3.6 (NPM-WIN-JOBOBJECT). - On Linux,
node-ptyhas no prebuilt binary; elanous falls back to Bun's own PTY and nothing breaks.elanous doctor --fix --yesrebuilds it when a C++ toolchain is present. - If
bun installsilently skips an optional dependency on Linux, check whetherTMPDIRand Bun's cache are on different filesystems —elanous doctorreports it asbun-tmpdir, andelanous doctor --fix --yesadds the fix to your shell startup file. See troubleshooting. - If the service log says the web app is not built, set
ELANOUS_PWA_STATIC_DIRto a built web app folder (apps/pwa/outin a checkout, afterelanous nexus build).
Next: quickstart.