step 1 · once
The console runs in your browser.
The work runs on your machine.
A thin React client that streams your own engine's work over an encrypted channel — while your open-weight models run on your machine. Nothing to install for the interface: sign in, start your engine with your OpenEng key, pick it and a config, and start working. The browser holds no model, and a secret you type goes one way, write-only, to the vault and is never read back by a browser.
Status: OpenEng AI isn’t live yet. The Console and Web Console interfaces load, but the OpenEng AI API routes and the Broker aren’t deployed. Nothing can be saved or published, and no AI engine can register or connect. Pro, Enterprise, and pay-as-you-go launch in Q4 2026 and can’t be purchased yet. This page describes how it is built to work.
Start your engine
Thin client · renders only · no secrets past the tab
prompt in
via the broker
replies out
sealed end-to-end
On-device · stays on the machine
The OpenEng Broker opens requests only to route them to your engine, and opens the thread history and memory it delivers; it keeps what it routes 7 days by default. The engine’s streamed replies are sealed end-to-end, so the broker can’t read them. Models, provider keys, and your files stay on your machine.
How it works
Three steps. No native install for the interface.
The browser console is just a renderer. Your engine does the work locally, and the two find each other through the OpenEng Broker — no host or port to paste.
step 2 · local
Start your engine
step 3 · pick
Pick your engine and a config
The product
Chat with your agent. Watch it plan and ship.
One streaming workspace: your prompt in, a live multi-step plan and rendered output back — driven entirely by your local engine, with its streamed replies sealed end-to-end.
- Map the current schema
- Write the migration
- Update the data-access layer
- Update tests + docs
No host or port to paste
No modes — just type
Engine-owned threads
What's in the console
A focused surface: Chat to work, Settings to verify.
The Web Console is deliberately small. Chat is where you do everything; Settings is a read-only mirror of what your engine resolved from its config — nothing more to learn.
Chat — the product
- Streaming replies + live plans
- In-browser permission prompts
- Complexity-routed, no mode picker
Settings — a transparency mirror
.mcp.json, so a config’s MCP servers show here before the engine uses them. Author and change configuration in the Console. The one thing you can set here is a config's placeholder values — the secrets behind its ${ENV} names — which go write-only to an encrypted vault and are never read back into the browser.- Read-only — mirror, not source
- See the resolved config
- Placeholder values are write-only
Security
A thin browser surface, locked down by construction.
The console talks to your engine over an encrypted channel with short-lived session credentials and an explicit origin allow-list, and the engine's streamed replies are sealed end-to-end to the browser. The browser holds no model and never reads a vault value back.
Crosses the wire, encrypted
- Your promptsopened by the broker to route them
- Streamed repliessealed end-to-end
- Thread history, memory, configopened by the broker to deliver them
Never crosses
- Model weights
- Embeddings
- Stored provider keys
- Your OpenEng key
- Requests travel sealed to the broker, which opens them only to route them to your engine.
- Streamed replies are sealed end-to-end — the broker can’t read them.
- Engine data the console loads is sealed to the broker, which opens it to deliver it and keeps it 7 days by default.
- Every hop is encrypted; the work itself runs on your machine.
Sealed replies
The engine's streamed replies are sealed end-to-end to your browser — the broker that relays them cannot read them. Your requests, and the engine data your threads and Settings load, travel encrypted to the broker, which opens them only to route them.
Short-lived credentials
The Web Console's sign-in is pinned to the tab: its credentials are short-lived (about an hour), re-minted silently while the tab is open, and gone when you close it. Signing in again on the same surface asks you to confirm a takeover, which cuts off the old session. A captured credential works until it expires and can open its own Broker session, so it could load your thread history and memory. It can't decrypt what has already been sealed to your tab's in-memory key.
An explicit origin allow-list
The API and the Broker answer browser calls only for origins on an exact-match allow-list — never a wildcard in production — and every call still has to authenticate. The thin client holds no model.
The control plane
One config drives everything the console runs.
The console only renders what your engine resolves — and your engine resolves the versioned config you publish in the Console. Author it once; every session you start resolves the same version.
Author in the Console
Publish a version
Secrets by reference
${ENV} names only. Values come from the environment of the machine running your engine — or, if you choose, the write-only vault; an environment variable always wins.One account, everywhere
The browser is one surface. The work stays on your engine.
The Web Console drives your engine, the Console configures it, and the engine does the work — all under the same OpenEng account, so your configs, and each engine’s threads, follow you to any browser you sign in from.
Web Console
Console
The engine
openeng binary on your own machine (Linux x86_64; Windows via WSL). Start it with openeng serve --key=<your-key> — it runs the models (built-ins in its enclosed daemon, catalog models through your local Ollama) and holds your provider keys and your threads.Open the console. Start your engine. They meet in the middle.
Sign in, start the engine with your OpenEng key, and your browser console connects through the OpenEng Broker, with streamed replies sealed end-to-end. Your models and provider keys stay on your machine, and your files are read there.
Install the engine · Linux x86_64