olace

[ daemon & cli ]

CLI reference

The olace command manages your whole network from the terminal: models, pairing, settings, the Bridge, and chat itself. It is the same binary as the daemon, so every machine that runs Olace already has it. The install script offers to put olace on your PATH. The desktop app adds it on its own (Linux packages also install olace system-wide), so a new terminal finds it either way. If yours does not, the binary is at ~/.olace/bin/olace and every command below works through that path.

Usage: olace <command> [options]

Common flows:

olace setup                 # runtime, starter model, Python sandbox, sign-in
olace pull qwen3.5:4b       # download a model to this computer
olace signin                # add Olace cloud models and paired devices
olace pair                  # pair with another of your devices
olace bridge on             # serve your models at 127.0.0.1:5578/v1
olace status                # see everything at a glance

Conventions that apply across commands:

  • --json on read commands prints machine-readable output.
  • --yes skips confirmations on destructive commands.
  • Familiar aliases work: ls, get, rm, remove, delete, stop, login, logout.

Remote management with --device

--device <host> targets a paired host by its label or id prefix, and it works across the operational surface. A machine you can use is also a machine you can manage:

olace list --device home-pc                    # its model library
olace pull qwen3.6:27b --device home-pc        # install a model there
olace rm qwen3.6:27b --device home-pc          # remove one
olace unload --device home-pc                  # free its GPU memory
olace status --device home-pc                  # its daemon, tunnel, models
olace settings keep-alive 60 --device home-pc  # tune its runtime
olace bridge on --device home-pc               # serve its models to local apps
olace service restart --device home-pc         # restart its daemon
olace chat --device home-pc                    # chat on its models

Everything rides the same end-to-end encrypted pairing as inference. Some things stay host-local on purpose: bridge key (the API key never travels over the relay; set a paired host's port with bridge on --device --port <n>), olace files, the host-only settings (metrics, runtime-url, llamacpp), and logs, which reads only this computer's daemon.

Exit codes, for scripting: 0 success, 1 failure, 2 usage error, 3 not signed in, 4 network error, 5 daemon not running, 6 update required.

Account

olace signin

Sign in or create an account with an email code. Passwordless: --email <addr>, then a 6-digit one-time code. Offers to install the background service when it is not set up yet. Alias: login.

olace signout

Sign out and clear this machine's daemon state. This signs out the whole computer, including the desktop app, and clears pairing and file sharing. Local models and the Bridge keep working with their settings, and a foreground olace run keeps running. Asks first; --yes skips. Alias: logout.

olace whoami

Show the signed-in account, plan, and credits. --json for scripts.

olace upgrade

Show your plan and how to upgrade it, with direct links.

olace devices

List devices signed in to your account. olace devices revoke <name> signs one out remotely and drops its pairings.

Models

olace setup

Set this computer up for local AI in one pass: a runtime, a starter model sized to the GPU, the Python sandbox for code execution, and an optional sign-in. Steps already done are skipped, and nothing installs without showing what runs and asking first. The install script runs it for you on a fresh install. --provider ollama|lms|llamacpp adds a specific runtime; --sandbox runs only the Python sandbox step, on any GPU; add --yes to download it without a terminal to confirm.

olace list

List models on this machine plus Olace Cloud models when signed in, with size and capabilities. Works offline for local models.

olace list all adds every paired machine to the same table, grouped by where each model runs. That list comes from the local daemon's own cache, so it needs no sign-in and works offline too. olace list --device <host> lists one paired machine on its own.

olace pull

Download a model: olace pull qwen3.6:27b. With one runtime installed, it gets the pull. Otherwise the provider is inferred from the tag (: means Ollama, / means LM Studio, a user/repo-GGUF:QUANT tag means llama.cpp); override with --provider ollama|lms|llamacpp, or prefix the tag with the runtime, as in llamacpp/unsloth/Qwen3.5-4B-GGUF. llama.cpp pulls take a Hugging Face user/repo[:QUANT] tag; with no quant it fetches Q4_K_M. --device <host> installs on a paired host.

olace rm

Remove a model. Asks first; --yes skips. --device and --provider work here too, and the tag can carry the runtime prefix (llamacpp/qwen3.5-4b).

olace unload

Free GPU memory now: olace unload frees everything, olace unload <model> just one. Models reload on next use.

Chat

olace chat

Chat with your local or remote models from the terminal.

olace chat                          # interactive, with your default model
olace chat qwen3.5:4b "explain recursion"    # one-shot
cat notes.md | olace chat qwen3.5:4b         # piped input

Flags: --model <id>, --device <host>, --direct (keep the turn on your devices, no cloud), --no-web, --think, -f/--file <path> to attach, --continue, --resume <needle>, --session <name>, --json for NDJSON output. Inside the REPL: /help, /model, /attach, /think, /web, /direct, /save, /sessions, /clear, /exit. olace chat list shows saved sessions.

Model ids take the same forms as in the Bridge: ollama/qwen3.5:4b, lmstudio/google/gemma-4-e4b, home-pc/ollama/qwen3.6:27b. olace chat also takes an Olace cloud model id such as moonshotai/kimi-k2.6; the Bridge does not.

Network

olace pair

Pair with your devices. Bare olace pair lists your other signed-in machines and pairs in one pick; olace pair --host <name> makes the same pick without the menu, for scripts. olace pair --code shows a code and QR so another device can use this computer's models. olace pair claim <CODE> does the reverse, and accepts the pairing link from the app's QR as well as the bare code.

olace pair list shows every pairing on your account, not just this computer's. Each row reads <device> uses <host>, so a pairing between two of your other devices is simply a row that does not mention this computer. The list closes with how many of your plan's pairings are in use, so a full limit is legible here rather than only when a new pairing is refused. olace pair remove <name or id> releases one, including a pairing this computer is not part of, which is how you free a slot held by a device you no longer have. Unattended (--yes or no terminal), those must be addressed by pair id.

olace pair list --json returns {pairs, other_pairs, pairing_usage}. Each row names its two ends in host and consumer (device_id, label, this_computer).

olace bridge

Manage the Olace Bridge, the local endpoint at 127.0.0.1:5578 that serves OpenAI Chat Completions, OpenAI Responses and Anthropic Messages.

olace bridge                # status
olace bridge on             # enable; add --port <n> or --require-key
olace bridge off
olace bridge key --require-key    # mint a key (shown once)
olace bridge key --regenerate     # rotate it
olace bridge port 5578
olace bridge cors add https://app.example.com   # let a web app on a real domain connect
olace bridge cors list                          # also: remove <origin>, reset

status, on, and off accept --device <host>. key, port, and cors are host-local on purpose: the key never travels over the relay.

olace files

Share folders on this computer with your paired devices, so they can attach files from your computer to a chat.

olace files                       # status: on or off, and the folders
olace files on                    # share Downloads, Documents and Pictures
olace files off
olace files allow ~/Projects      # add a folder
olace files remove ~/Documents
olace files reset                 # back to Downloads, Documents and Pictures
olace files ls Downloads          # a folder as a paired device sees it
olace files search report --in Documents
olace files cat Downloads/notes.txt
olace files cache clear           # delete photos prepared for paired devices

Host-local on purpose: the list of shared folders is never editable from a paired device. On a Mac, on also triggers the system's folder permission prompt for the service.

Machine

olace settings

Show and change model settings here or on a paired host: keep-alive <minutes|always>, auto-optimize <on|off>, context <auto|N>. Host-local only: metrics <on|off>, runtime-url <ollama|lmstudio> <url|default>, llamacpp <managed|attach <url>>. See Configuration.

olace status

Service, daemon, tunnel, account, bridge, loaded models, and pairings at a glance. --device, --json.

olace logs

Recent logs from this computer's daemon. -f to follow, -n <count> (default 100), --level <level>, --sub <subsystem>. Logs are read on the host itself; there is no --device form.

olace service

install, uninstall, restart, or status for the background service. restart also takes --device <host>. On a Linux system without systemd (most containers) there is no service to install; run olace run instead, under your own supervisor if you want it restarted. See Daemon overview.

olace update

Update to the latest version: checks the release manifest, verifies the checksum, swaps the binary, restarts the service. --check only reports.

olace run

Run the daemon in the foreground, replacing the service instance. For debugging, and the way to run Olace where there is no service manager, such as a container without systemd.

olace version

Print the version.