CLI
Use the elowen command to chat in a terminal, manage conversations, or run one non-interactive request. The standalone client connects your computer to an existing Elowen instance. The full server installation also includes service and administration commands.
Connect your computer
- Sign in to your instance in a browser and open Account → Computers.
- The page copies the command for the system your browser runs on and says where to paste it. Only when it cannot tell, for example on a phone, it shows the Windows logo and the Apple and Linux logos to choose from. Choose Copy install command and paste the copied command into a terminal on the computer you want to connect: on Windows into PowerShell, which needs Windows 10 22H2 or Windows 11. Inside WSL, use the Linux command: open the page in a Linux browser, or copy it from a phone with the Apple and Linux logos chosen. The command is not shown on the page. It is valid for 10 minutes and works once; choose Copy install command again for a new one if it expired.
- The command downloads the client for your system, checks its signature, installs it under
~/.local/share/elowen/client, on Windows under%LOCALAPPDATA%\Elowen\clientwithout administrator rights, and pairs the computer with your account. It asks no questions. A Node.js or npm installation is not required.
Afterwards the computer stays connected to Elowen in the background, also after a lost network connection or a restart, and updates itself. You can give it work from the web, from your phone or from the terminal. Account → Computers lists your computers in one card, one row each: whether it is connected, when it was last online and since when it is paired, its system and client version, its current CPU, memory and disk load when there is room, and a button to remove it. Open a row to see its turns, commands and cost over a period you choose beside the chart, which then applies to every computer, and its current load in larger rings.
If the command prints an export PATH=... line, add it to your shell profile so that elowen works in new terminals. On Windows the installer adds the client to your user Path itself, so elowen works in the same PowerShell window and in new ones.
On Windows the Bash tool runs PowerShell: PowerShell 7 (pwsh) when it is installed, otherwise the Windows PowerShell 5.1 that Windows includes. Elowen is told which one, so it writes PowerShell commands and Windows paths there. The arm64 build has not been tested on hardware yet.
Allowed file and shell actions run with the authority of your operating-system account on that computer and can reach everything that account can access, not only the folder you started from. Work for a computer that is offline fails with an error; it is never moved to the server.
Background connection
On Linux the installer registers the user service elowen-connect.service and enables it for every start of the computer. If your system does not allow that for your account, the installer tells you and the connection then runs only while you are logged in. On macOS it registers a login item that starts with your session. When the computer has no user service manager, for example over SSH without a desktop session on a Mac, the installer says so: run elowen connect in a terminal and keep it open. On Windows it adds an entry to your account's startup programs, so the connection starts hidden at every sign-in. If it stops while you are signed in, it starts again at your next sign-in, or run elowen connect. Its log is in %LOCALAPPDATA%\Elowen\client\logs\connect.log.
Headless and manual pairing
To pair without the install command, for example from a downloaded archive, run elowen login. In the standalone client it prints Open <link> to approve this device. Open the link in a signed-in browser, check the device name and code, and choose Approve. Then start the background connection with elowen connect. On the full server installation, with neither ELOWEN_URL nor ELOWEN_DAEMON_URL set, the same command prints Open <link> to approve this sign-in. and approval gives the terminal a personal API token instead of pairing a computer; revoke it in Account → API tokens. Setting either address variable, even to a loopback address, makes elowen login pair a computer again.
Remove the CLI
elowen uninstall
This revokes the computer's access, stops the background connection and removes the client, its elowen command and its saved login. On Windows it also removes the startup entry and the Path entry; the client folder disappears a moment after the command finishes. If the instance cannot be reached, the computer is still cleaned up; remove it in Account → Computers afterwards.
Select the instance
A client installed with the install command always uses the instance it was installed from. To reach another instance, set ELOWEN_URL to its public address or its explicit /api address. The CLI adds /api to a public origin and keeps an existing /api prefix once. If the deployment uses a separate public daemon address for the live connection, also set it explicitly:
export ELOWEN_URL=https://elowen.example/api
export ELOWEN_DAEMON_URL=https://daemon.example
With both variables set, chat and authenticated HTTP requests use the public web API, the live connection uses the explicit daemon, and the saved login belongs to the public origin. For direct daemon access without the web, set only ELOWEN_DAEMON_URL to the administrator-supplied daemon origin; HTTP then has no /api prefix. With neither variable, the full server CLI uses its local daemon. The CLI does not infer deployment mode or a daemon port from the address.
Credentials and paired devices are cached separately by origin, including scheme, host and port, in ~/.config/elowen/cli-instances.json. Switching to another origin uses its own login. An existing cli.json login is migrated only after validation against the selected instance; a failed validation leaves it intact. Migration of an older login session through a web /api address requires the actual direct ELOWEN_DAEMON_URL.
Start a chat
elowen
elowen chat
elowen chat -c
elowen chat --session <id>
elowen login
Run elowen in any folder to open the chat with the computer's saved login. Interactive chat needs a terminal. A client without credentials asks you to approve it in the browser.
Use interactive chat
Type / to open the available command menu. Use !command to run a shell command in the terminal's current directory. The command and output are recorded in the conversation for the agent, and your next message is sent as typed. Use @path to attach a file or image. /editor opens your configured editor for the current draft.
Use /project to choose where the conversation works: your paired computer or an available server or managed Project. New conversations created by a paired CLI always run on that computer and work in the folder you started elowen in, loading that folder's instructions. If the computer's background connection is not running, starting a new conversation fails with a message telling you to start it; the conversation is never opened on the server instead. Starting elowen again in the same folder continues that conversation. If the folder no longer exists on the computer, Elowen refuses the turn instead of working somewhere else. Resuming a conversation keeps its existing target, so a conversation previously using a server Project stays there until you change it. The picker shows local devices with their connection state and folder; the status line follows the selected target.
/cd [path] moves the directory the CLI works in: ! commands, @ paths and the folder a new conversation on your own computer runs in. It does not change the conversation's selected execution target or grant access to a Project. Starting the CLI from another folder instead starts or resumes the conversation bound to that folder, so check the selected target before sending work.
Messages sent while a turn is running wait in a queue. Press Esc twice within the interrupt window to stop the turn. Press Ctrl+B to move eligible foreground delegated work, workflows, or shell commands to the background. In a sub-agent view Esc returns to the parent conversation; press Ctrl+X, then s to stop the session you are viewing, or Ctrl+X, then k to stop a running sub-agent without leaving the conversation you are reading. CLI Keybinds lists every default shortcut and how to rebind it.
Use /plan, /build, or /workflow to choose the mode for later messages. Modes do not grant extra permissions. Press Ctrl+O to move between the parent conversation and child sessions.
Pick and manage conversations
/sessions
/resume
/rename
/export
Use /compact to summarize older history, /stats for session, model, usage, and context information, and /context for the CLI context breakdown.
Run a non-interactive request
elowen run "summarize the failing tests"
elowen -p "review this diff"
elowen run --json "inspect the project"
elowen run --mode plan "propose a migration"
elowen run --goal "finish the cleanup" --max-turns 12
Useful options include --model, --provider, --continue, --resume, --new, --mode plan|build|workflow, --goal, --max-turns, --list, --json, --verbose, and --timeout. Run elowen run --help for details. A headless run cannot answer interactive questions. When a turn asks one, the run prints the question with [needs input] and exits with code 5.
A prompt beginning with / runs a slash command:
elowen -p "/stats"
elowen -p "/goal pause"
Call the API
elowen api GET /projects
elowen api GET /brain/status
elowen api POST /some/route '{"key":"value"}'
The API command accepts a method, path, and optional JSON body, and uses the selected instance and credential.
Standalone client updates
When you open the chat, the standalone client checks its instance for a newer signed client release. If there is one, it asks whether to update now or later. Update now verifies and installs it, then starts the chat on the new version. Later starts the chat on the installed version and asks again the next time. A failed installation restores the previous client; a failed release check reports an error and stops the chat. Run, API requests, login, help and version display never check. The background connection updates itself without asking: it checks shortly after it starts and then every 30 minutes while no command is running, installs a newer release silently, and moves to the new version within about a minute of finishing its last command, so a running command is never interrupted. It also moves to an update you accepted in the chat.
Manage a server installation
These commands belong to the full server installation and are unavailable in the standalone download. Run service management on the machine that hosts Elowen; selecting a remote instance with ELOWEN_URL does not turn them into remote service controls.
elowen setup
elowen doctor
elowen up
elowen down
elowen status
elowen restart all
elowen update
sudo elowen privileged refresh
Service commands manage the local Elowen installation. A normal down requests a graceful stop and waits for the processes to exit. --force kills them at once, so running work is abandoned. elowen update updates the server installation.
elowen restart daemon asks the running daemon to checkpoint recoverable work and restart itself. Work resumes after the daemon starts again. If the daemon does not answer, the command falls back to systemctl. elowen restart web always uses systemctl.
Run sudo elowen privileged refresh as root on Linux when a message reports drifted or missing root-owned privileged files, or uninstalled worker units. It reinstalls those files and units from the running release and, only when something changed, stops the privileged worker, waits for its running operations to finish, replaces the files and starts it again. If a step fails the worker stays stopped and the command tells you to run it again.