NewsRelease 021
Release 021 · VEX 0.4.1
Docker is gone. Vex moved in.
0.4.1 puts everything VEX Desktop needs inside the app. The database, the vector search and the embeddings engine now ship with VEX, so there is no Docker to install, start or keep running. Download it, open it and go.
Already on Docker? One click moves your data into the new local runtime, and VEX checks that the copy matches before it uses it. The app also opens on a new desk, built around Vex.
This release covers the work merged after 0.4.0. 381 commits · No Docker · No database migrations · New: Windows on Arm
01 · No Docker
Download. Open. Go.
The app is the install. VEX now carries its own PostgreSQL 18.6 database with pgvector 0.8.7, and a local llama.cpp embeddings server (build b9115) running Google's EmbeddingGemma 300M.

- Every desktop. macOS on Apple silicon and Intel, Windows x64 and, new in this release, Windows on Arm, and Linux as AppImage or deb.
- First run, step by step. VEX creates your local database, runs its migrations, checks for the embedding model, downloads it if needed, verifies it and starts the embeddings server. Each step has its own row with a live status.
- One download, verified. The model is about 333 MB and downloads once. It is checked against a pinned fingerprint as it streams, and nothing unverified is used. An interrupted download resumes where it stopped. It goes through your system proxy and certificate store.
- Off means off. VEX starts its services when you open it and stops them when you quit. Nothing keeps running in the background.
- It stays on your machine. The database and the embeddings server listen on 127.0.0.1 only. The database gets a password generated for your install. The embeddings server gets a new port and key on every launch, and the key is held only in memory. Studio talks to its tools over a local socket (a named pipe on Windows), not a network port.
- Less to break. No engine that refuses to start, no port conflicts with other containers, no WSL detour on Windows. If the embeddings server crashes, VEX restarts it on a fresh port and key, and if it keeps failing, VEX tells you instead of retrying forever.
02 · System Check
Your machine, checked first.
- Disk. System Check measures the drive VEX lives on. If there is not room for the model download plus the database, setup stops and tells you how much space it needs, instead of failing halfway.
- Early warnings. Under 2 GB free, or under 10% free on a small drive, you get a warning before space runs out.
- Memory. Machines with less than 4 GB of memory get a warning, so a slow first run is not a mystery.
03 · Settings, Local runtime
Your runtime, in plain view.

- Live status. The database, the embeddings model and the embeddings server, each on its own row.
- Versions and data size. Which PostgreSQL, pgvector and llama.cpp builds you run, and how much space the database and the model take.
- Restart. Restart the runtime in one click and watch it come back step by step. VEX reconnects the agent to the database on its own.
- Reset local data. A clean database, behind a typed confirmation. Your wallets, vault, config and the downloaded model are left alone.
- Logs. Open the logs folder straight from Settings.
- Nothing pulled out from under you. Restart and reset refuse while a migration or a data move needs the database, and an update waits for a restart to finish.
04 · Move my data
Your data moves in one click, and the copy is checked.
Already running VEX on Docker? Nothing is left behind.
- Move my data. On the first launch after the update, choose Move my data. Sessions, missions, memory, Lighter history and settings come across. VEX starts your old database in Docker itself, copies it and restores it into the new local runtime in a single transaction that lands whole or not at all.
- Checked, not assumed. Before VEX switches over, it compares the old and new databases: the schema version, the exact row count and a fingerprint of every row in every table, every stored vector byte for byte, and the sequences, indexes, constraints and extensions. One changed value and the copy is rejected.
- Space checked first. VEX makes sure there is room for the copy before it starts, and tells you how much it needs if there is not.
- Interruptions are safe. If the laptop dies or the app quits mid-move, the next launch resumes from the last finished step: copied, restored, verified.
- A failed move says why. You see the real error. The full output and the database log are saved in a
migration-failed-attemptfolder for support, the failed copy is discarded, and Try again starts clean. - Your keys never move. Wallet keystores are files, not database rows. The move never touches them.
- Your old data stays. The move only reads your Docker data, and VEX never deletes it on its own. Removing it is your call, from Settings, Local runtime, Old Docker data.
- Or start fresh. Choose Start fresh for a clean slate; your Docker data is still left alone.
05 · The new desk
Built around Vex.
- Vex lives here now. She rises from the vx token and sits in her own sidebar, showing what the agent is doing: working, waiting on you, idle or asleep. On the welcome page, tap the token to switch between Vex and the coin.
- Light on your machine. Her moments run at 30 frames a second, idle at 10, and she pauses completely when the window is hidden.
- Optional. Turn off Show avatar in Settings and the token, a state ring and a word take her place. You can also choose whether her sidebar opens in chats.
- Three columns. Navigation, search and your sessions by name on the left, folding to a rail on narrow windows. The conversation in the middle. Vex on the right, hidden with Cmd+Shift+Period or Ctrl+Shift+Period when you want the room.
- Needs you. Needs you, with its count, sits in the title bar at all times, next to the token chip, with a page listing everything waiting for your decision.
- A quieter transcript. Tool calls fold into quiet rows with live timers.
- New type and icons. Instrument Serif for titles, Instrument Sans for reading, JetBrains Mono for numbers. The pixel font is gone, and 97 line icons replace the pixel sprites. Trading green and red appear only on trading values.
- Every page, redone. Portfolio with the $VEX line, Agent Scan, token history, All assets, Board as its own page, the Lighter desk with review in the ticket, Studio in the left sidebar, Memory, How Vex works and the sessions library. Settings is one page with grouped navigation, the new Local runtime section and the avatar options.
- From first launch. Wake, unlock, first run and the setup wizard happen on one stage, with Vex alongside.
The themes stay: Celeris by day, Chronos Night Ledger by night, one blue, square edges.
06 · Approvals
Real funds, said plainly.
- A sentence first. Every approval card opens with one plain sentence: what is about to happen.
- Then the money. The amounts that matter come next. Where a value is not available, the card says "Not available" instead of guessing.
- Then every signed field. Nothing that gets signed is hidden.
- Buttons say what they do. "Approve order", "Approve bridge", not just "Approve". Reject keeps first focus.
- Protection unchanged. The REAL FUNDS frame, the second click within 4 seconds on high-risk approvals and the signing states work exactly as before.
07 · Tested without Docker
On machines that never had it.
Every platform ran a clean-machine gate: the packaged app installed on a fresh machine with Docker removed, then taken through System Check, database creation and every migration, the model download, the setup wizard, a quit that stops both services, and a relaunch. All five passed: macOS Apple silicon and Intel, Linux x64, Windows x64 and Windows on Arm. That gate now stands in front of every release: if any platform fails it, no release is drafted and nothing is signed.
The move from Docker was tested with real user data on macOS and on a real Windows install, alongside automated tests that move a database out of a real Docker container. The macOS builds are signed and notarized, and the Windows builds are signed. Main CI results (opens in a new tab).
08 · Before you update
Upgrade notes.
On Docker today? Keep Docker installed and running for your first 0.4.1 launch, so VEX can read your old database, and leave room on disk for a second copy. Once the move is done and you have removed the old data in Settings, Local runtime, Old Docker data, Docker can go.
New to VEX? You never need Docker.
Everything carries over. Sessions, missions, memory, wallets and settings. Sessions now show by name instead of number.
No database migrations ship in this release: your data keeps its current schema.
The first launch needs the internet once, to download the embedding model.
On WSL? Hardware rendering is opt-in: start VEX with VEX_WSL_GPU=1 to use your GPU.
09 · Fixes
Small things, fixed.
- Lighter account setup shows the fee authorization as its own step, so you see exactly what you approve.
- Lighter leverage. After you confirm a leverage change, the sheet closes and stays closed.
- Lighter approvals made on the desk no longer leave a stale "Needs you" in your chat.
- Chat. A single
~no longer strikes your text through; strikethrough needs~~.