step 1 · once
The console runs in your browser.
The work runs in a sandbox on your machine.
A thin React client that streams your own engine's work over an encrypted channel — while your open-weight models run isolated in a sandbox on your machine. Nothing to install for the interface: sign in, start your engine, and it connects on its own. The browser never holds a model, a memory, or a secret.
Start your engine
openeng serveThin client · renders only · zero secrets
prompt in
tokens out
end-to-end sealed
100% on-device · never leaves the machine
OpenEng's broker only relays sealed frames it can't read. Models, secrets, and code never leave 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 on their own.
step 2 · local
Start your engine
openeng servestep 3 · zero-click
It connects itself
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 over a sealed channel.
- Map the current schema
- Write the migration
- Update the data-access layer
- Update tests + docs
Zero-click connect
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 so you can see exactly what your engine is running — nothing more to learn.
Chat — the product
- Streaming replies + live plans
- In-browser permission prompts
- Complexity-routed, no mode picker
Settings — a transparency mirror
- Read-only — mirror, not source
- See the exact resolved config
- Edit configuration in the Console
Security
A browser surface that can't leak — by construction.
The console talks to your engine over an end-to-end-encrypted channel, with short-lived credentials and a strict origin-locked policy. The browser never receives a model or a secret, so it can't disclose one.
Crosses the wire
- Your prompt
- Rendered output (tokens)
No field for it to travel through
- Persona
- Memory
- Embeddings
- Secrets
- API keys
- Your code
Encrypted end-to-end
The browser-to-engine channel is encrypted end-to-end — even the broker that relays it only ever sees ciphertext, even on your own machine.
Short-lived credentials
Access credentials are scoped to the calling surface and short-lived — silently re-minted, so a captured one expires fast and can't be replayed elsewhere.
Origin-locked by policy
The console is locked to a single origin — app.openeng.ai. The thin client holds no model and no secret, so it cannot leak what it was never built to hold.
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 surface you sign in to runs the exact same setup.
Author in the Console
Publish a version
Secrets stay local
${ENV} references only — your real secrets resolve from your machine's environment, never the cloud.One account, everywhere
The browser is one surface. Your engine has many.
The Web Console, the CLI, and Desktop are all thin clients for the same local engine and the same OpenEng account — pick whichever fits the moment; the threads and config follow you.
Web Console
The engine / CLI
openeng binary is your engine and your terminal client — start it with openeng serve.Desktop
Open the console. Start your engine. They meet in the middle.
Sign in, run openeng serve, and your browser console connects over a sealed channel. Everything stays on your machine.
Install the engine
curl -fsSL https://openeng.ai/engine/install.sh | bash