Skip to content

OpenEng AI

The Console

7 min read

console.openeng.app is where you configure OpenEng AI centrally: define it once, publish a version, and every engine started with one of your keys can run that configuration. No more copying setups between machines. Sign in with the same OpenEng account as everywhere else — authentication runs through auth.openeng.app (Quickstart).

Status on September 25, 2026: 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 OpenEng AI as it works once those services are live (status).

The console shell — Overview and Configs at the top of the left nav, then Building blocks · Connect · Govern · Deploy, with Account at the bottom; the header carries the ⌘K palette. Each guide below opens with this map pointing at its page.

The idea: author → publish → resolve

  1. Author — build your blocks (models, agents, templates and the rest) on their pages and press Save in each editor's header. Then select them into a config in the guided config builder. Nothing changes for your engines yet.
  2. Publish — publish a frozen semver version of the config, after a validation gate and a human-readable diff (Configs).
  3. Resolve — the engine on your machine runs the version you pick for each session in the Web Console at app.openeng.app, and requests that name no config get your default config (How the engine picks up what you publish).

Because versions are frozen, you publish confidently — a client can follow the latest or pin a known-good <id>@<version>. Until you publish your first config, no engine serves anything.

Every page, and where its guide lives

The left nav has two pages on top, then four groups, then the Account area. Pages marked Pro explain what Pro unlocks in place of their content while your plan doesn't include them; Schedulers, Storage points, API keys and Sandboxes also carry a lock badge in the nav.

PageWhat it doesGuide
OverviewYour working dashboard: a first-run checklist, your configs and their publish state, building-block counts, plan meters, recent activity, and the Deploy stripQuickstart
ConfigsCreate configs, build each one in the guided config builder (including its execution flow), publish versions, browse the version timelineConfigs
Building blocks
LibraryPreset bundles of agents, models, skills, templates and cells; importing one adds its items to your lists and selects them on a config you chooseLibrary
ModelsThe one place models are created: My models (embedded, Hugging Face, Ollama, ONNX, network and provider models) and the Embedded catalogModels & role defaults
AgentsBrowse the agent catalog, adopt or customize, or author your own: system prompts, model bindings, delegator trees, caps, tool grantsAgents
SkillsBrowse the skill catalog and adopt skills; configs select the ones you adopted (adopt-only for now)Skills
TemplatesThe block composer — compose, version, and publish prompt blueprintsTemplates
LoopsBrowse the loop catalog and adopt global loops; configs select the ones you adopted (adopt-only for now). Iteration strategies are set per config, in its Settings stepLoops
SchedulersScheduled prompts meant for headless machines (Pro; the engine doesn't fire schedules yet)Schedulers
Connect
MCP serversCentral MCP definitions (HTTP or stdio) with ${ENV} credentialsMCP servers
CellsThe cell catalog + registering read/write deployments in your cloudCells
ConnectorsThe connector marketplace (GitHub, GitLab, Jira, Canva, ElevenLabs and more): remote integrations, each with a declared sandbox tier, that you attach to a config (their calls don't work yet). Not the same as the engineering apps' connectorsIntegrations
Storage pointsDelivery destinations for run results (GitHub/S3/GCS/Drive/WebDAV) (Pro; nothing delivers to them yet)Storage points
Govern
Token limitsPer-model / per-role / per-day budgets; a config's own per-component caps live in its builderLimits & guardrails
DirectoriesDirectory paths + trust defaultsLimits & guardrails
DefaultsAccount settings: role-model defaults and resource caps (not a config)Limits & guardrails
GatewayGuardrail policies on top of the always-on platform floorLimits & guardrails
PluginsGateway guards: adopt from the plugin catalog or author your own (gate, transform, observe or enrich) on the Model, Cell or Connector gateway. Built-in modules are free; external endpoints need Pro or EnterprisePlugins
RolesBehavioral rule sets from the roles catalog, with your own overlay rules on top (Pro). Not the model roles on the Models pageBehavioral roles
Human-in-the-LoopPause a run for a person at any boundary; rules, contacts and the approval queue (Pro)Human-in-the-Loop
Deploy
API keysIssue (return-once), bind, and revoke keys (scopes are recorded but not enforced yet); a key is also the OpenEng key an engine starts with (Pro)API keys & sandboxes
SandboxesYour fleet of sandbox-mode nodes — activation, allocation, run history (Pro; no node can register yet)API keys & sandboxes
Account
Plan & billing · PreferencesYour plan and a link to billing.openeng.app, the Light/Dark theme, and Sign outPlans & billing

The execution flow has no page of its own: you design it inside each config, in the builder's Execution flow step.

The command palette — press ⌘+K (Ctrl+K on Linux and Windows) anywhere, or click Search or jump to… in the header. It jumps to any page and carries the creation actions (New model, New agent, Register cell deployment, New config and more) plus Publish a config and Import a library.

House rules the whole Console obeys

  • Secrets are placeholders — always. Anywhere a credential appears (models, cells, MCP servers, storage points, connectors, plugins), the Console stores only an environment-variable placeholder like ${PROD_CELL_KEY} — never the value. Pasting a raw secret is rejected outright, client-side and server-side (Security & privacy). Each engine machine supplies the values: from its environment, or from the Web Console's Placeholder values screen; the environment wins.
  • No execution, ever. The Console never runs, tests, or pings anything. Connectivity is verified on the machine that will actually do the work — the engine.
  • Honesty badges. Fields the engine does not consume yet are labeled "Not yet consumed by the engine" right in the editor — the Console never silently promises behavior the runtime doesn't have.
  • Saving is explicit — with one exception. The block editors (models, agents, templates, schedulers, cell registrations) never write to the server on their own. Each has a Save button in its header: disabled with the reason while the document is invalid or unchanged, a spinner while the save is in flight, and a success/failure toast when it lands. An "Unsaved changes" chip shows the moment you diverge from the saved state, and navigating away warns you. Your in-progress edits still mirror to the browser's local storage on every keystroke (crash/navigation safety) — reopening the editor offers "Restore unsaved draft?" with restore/discard. A failed save keeps the local draft; nothing is ever lost. The exception is the config builder, which saves its draft automatically after each change. Publishing always remains a separate, reviewed step on top.
  • Help lives behind ⓘ. No page has a standing right-hand rail or a raw JSON view: explanations open from an ⓘ next to the header, and live signals (validation, required ${ENV} names) sit inline next to what they describe.
  • Every list row carries actions. List pages have trailing per-row Edit (pencil) and Delete (trash) icons — delete always sits behind a confirmation dialog. Configs shared with you are read-only and don't offer delete.
  • The server is the enforcement boundary. Plan meters and disabled buttons in the UI mirror the server's entitlement rules; even a crafted request is rejected server-side (403 entitlement_exceeded) with the true used/limit figures.

If the platform API can't be reached, a banner says so, retries automatically and offers Retry now; editors keep your draft locally meanwhile.

A sane first setup

  1. Create two or three agents you actually reuse (a coder, a reviewer, a note-taker).
  2. Register your first cell (start with a read-only one).
  3. Set a token limit as a guardrail.
  4. Open Configs, create a config, select your agents and models in the builder, and publish 1.0.0. Then start your engine with an OpenEng key and pick the config in the Web Console (Quickstart).