A coding agent worth
keeping open.
Luxe is an agentic coding harness in Rust: fast, lean, and careful with your machine. It plans, builds and reviews — and it is pleasant to sit in front of, which turns out to matter when you are there all day.
cargo install luxe-cli Linux, macOS and Windows. A UTF-8 terminal and nothing else.
What it is
A terminal program that drives a model through real work: reading the tree, editing files, running your tests, and showing you what changed. It talks to about twenty providers, or to a model on your own GPU.
It is not a router, a hosted service, or an IDE. It is the part between you and the model, and the whole design is about keeping that part small, quick, and legible.
Plan → build → review
An agent that shows its work.
Most harnesses hand you a diff and wish you luck. Luxe chapters a change into sections with an argument attached — what moved, why, and what it relied on — and lets you walk it the way a reviewer reads a pull request rather than the way a machine emits one.
Leave a comment on a line and the agent takes it as work. Planner, developer and reviewer are separate roles with separate models if you want them, and the review gate is a command that has to pass before a turn counts as done.
It respects your machine
Local first, and quiet about it.
No telemetry, no accounts, no phone-home. Exactly three outbound calls exist — your model
provider, the web_* tools, and a model-metadata refresh — and every one of them
is optional and offline-safe.
Permissive by default, because a harness that blocks real work gets its permissions turned
off. But a small set of guardrails is always on: reading .env is denied,
catastrophic shell commands are denied, and work outside the project asks first. A
project's own config can tighten that; it cannot loosen it.
- 2,511 tests, all green
- 22s to build and run the suite for Windows, from Linux
- 0 unsafe blocks —
unsafe_code = "forbid" - 3 outbound calls, every one optional
Where it runs
Three platforms, one of them properly.
Windows is the one that breaks silently, so it gets a loop rather than a wish: the whole
suite cross-compiles and runs under wine in about twenty seconds, with only MinGit on
PATH — a stricter environment than CI's. Its first baseline found thirty-two
failures where CI reported fifteen.
Every one of those, read properly, was a defect a Windows user meets in their first
session. Malformed file:// URIs. A timeout that orphaned the process tree. A
shell lookup that would have found WSL's launcher and run your commands on a different
filesystem.
Make it yours
Twelve themes, three glyph tiers, one config file.
Luxe ships its own palette — warm graphite and champagne brass — and eleven more, including the ones you already use. Every accent holds a contrast floor that is asserted in the test suite rather than eyeballed.
Icons are polish, never meaning: every one sits beside the words it labels, so a reader with a bare monospace font loses shine, not information. Extend it with hooks, skills, external commands and MCP servers — data and processes, never in-process plugin code.
For the model
The other reader.
A tool earns its slot by beating the shell command it replaces on bounded output, fewer
round-trips, or correct-by-default behaviour. A wrapper that only renames a shell command
is worse than nothing: the model tries it once, gets a worse answer than bash
would have given, and stops trusting the set.
What reaches the model is auditable rather than assumed — capture a session with
LUXE_WIRE_LOG and read it back with luxe wire. The invariant it
guards is that the system prompt stays byte-identical between turns, so the cache prefix
holds and you are not paying to re-send it.
Start.
cargo install luxe-cli
Then run luxe in a project. The first launch walks you through signing in.