EEVEE

What if your agent could run the office, and still never touch a record without you?

An agent builds the small app you need, or opens the Office file you already have. It proves its work in your browser. Every change it wants is rehearsed and shown to you first. Nothing lands without your key.

The EEVEE workbench with Meridian Ops published and running

Parentage

Lovable×ChatGPT×Chromehad a baby.

The baby got the trust issues. It rehearses every write before it happens, asks you before it touches a record, and keeps receipts on everything. Compulsively.

  • From Lovable

    Builds the app from a sentence. Keeps every version. Shows you a preview before it asks for anything.

  • From ChatGPT

    Brings the brain. Any WebMCP agent, ChatGPT’s browser first. EEVEE has no model of its own and no plans to adopt one.

  • From Chrome

    Lives in the tab. The tools are on the page, so the agent and you look at the same screen at the same time.

  • What it added

    Rehearsals. Approvals. Receipts. Nobody asked for any of them.

How this started

The agents got good. The trust didn’t.

Browser agents can already click through your apps. Give one a task and it will find the buttons. That is real progress, and it has a flaw you notice on the second day: it acts live. You learn what it changed after it changed it, from a screenshot if you are lucky.

The other path is to wire the agent into each app by hand: tools, guardrails, a review step. That works, and it costs an integration per app, per team, per quarter.

EEVEE is our answer: a workbench with one key. The agent builds the tool and works it through typed actions. Every write shows you its consequence before it happens. Only your passkey lets anything publish or land.

  1. 01

    What did it build?

    Every version is kept. You see a live preview and the source on request, never a mystery bundle.

  2. 02

    Does it work?

    Scenarios run the app in a real browser: fill, click, restart, assert. You read verdicts, not code.

  3. 03

    What will this change?

    Each write is rehearsed on a copy of current data. The card shows the exact fields, before and after.

The Decisions ledger in this demo already works this way. It shows the diff before you ask.

Independent hackathon prototype for The WebMCP Challenge. Meridian Ops, its customers, and its numbers are fictional and seeded.

The rest of the bench

Meridian Ops is one applet. The bench is for whatever your week needs.

  • Build any applet

    Describe the job. The agent compiles a React app from source, or a delta on the last version. Meridian Ops, a seven-module ERP, is the reference so you can see the whole loop in three minutes; it is one applet, not the product.

  • Use the Office editors

    Documents, Sheets, Slides, and PDF run in the browser, ribbons and all. The agent edits cells, formulas, charts, and pivots, or rotates and removes PDF pages, through typed tools.

  • Bring your own files

    Upload DOCX, XLSX, PPTX, or PDF. Every save is a version. The sensitive-text scan hands the agent masked findings only; redacting needs your key.

  • Start from scratch

    A blank document, spreadsheet, or presentation in one click. Or an empty applet the agent fills in from your first sentence.

Prompts to steal

Ask for more than an ERP.

People are getting good at prompting AI. A product should be just as good at prompting people. These are six jobs from real plants, pharmacies, docks, and credit desks, written as the prompt you would paste, ready to copy.

  • Applet · foundry control tower

    Castline

    Heats, alloy stock, die bank, and quality holds for a die-casting plant. Releasing a work order without alloy coverage is refused.

    Build an applet in EEVEE called Castline: a control tower for a die-casting plant with three melt furnaces, five die cells, an alloy stock ledger in kg, work orders with plan quantities, and a quality-hold queue with dispositions. Reads: plant_snapshot, stock_risks (alloys at or below reorder), and hold_queue. Writes: post_movement (alloy in or out, with a reference), release_work_order, and disposition_hold (scrap, rework, or release, with a reason). Suite: releasing a work order whose alloy need exceeds available stock is refused with the shortfall shown, and a release disposition moves pieces out of hold and into accepted. Evaluate it and bring the passing version to me for review.
  • Applet · pharmacy custody

    Cold Chain

    Vaccine lots across fridges with temperature excursions. An excursion quarantines the lot; release needs a QA note.

    Build an applet in EEVEE called Cold Chain: vaccine lots stored across four fridges, a temperature log per fridge, and a custody trail per lot. Reads: excursion_report (any reading above 8°C or below 2°C for 30 minutes or more) and lot_status. Writes: log_reading, quarantine_lot, and release_lot, which requires a QA note. Suite: a 35-minute excursion at 9°C quarantines every lot in that fridge, and release_lot without a note is refused. Bring the passing version to me.
  • Applet · warehouse scheduling

    Dock Board

    Inbound appointments, dock doors, and the detention clock. Double-booking a door is refused.

    Build an applet in EEVEE called Dock Board: a 3PL warehouse with eight dock doors, inbound carrier appointments in 30-minute slots, arrival check-in, and a detention clock that starts two hours after arrival. Reads: dock_board (today by door) and detention_exposure (trucks past the free window, with cost at $75 per hour). Writes: assign_door, check_in, and reschedule_appointment, which needs a reason. Suite: assigning a door already booked for that slot is refused, and a truck checked in 2h10m ago shows $12.50 of detention. Evaluate it and bring it to me for review.
  • Applet · commercial lending

    Covenant Watch

    Facilities, covenants, and drawdown requests. A drawdown against a breached covenant is refused; a waiver needs a reason.

    Build an applet in EEVEE called Covenant Watch: six borrowers, each with a credit facility, a limit, an undrawn balance, and two covenants (leverage below 3.5× and DSCR above 1.25×) with the latest reported values. Reads: exposure_by_borrower and covenant_breaches. Writes: approve_drawdown, refused while any covenant is breached, and waive_covenant, which needs a reason and an expiry date. Suite: a borrower at 3.8× leverage cannot draw, a dated waiver lets the same drawdown through, and the audit trail shows who waived what. Bring the passing version to me.
  • Library · redaction

    Vendor due diligence

    Find names, emails, account numbers, and IBANs in a real master services agreement. The agent sees masked findings only.

    Scan the master services agreement and the vendor onboarding form I uploaded to the EEVEE Library for personal names, email addresses, phone numbers, account numbers, and IBANs, and open the findings for my review. Do not redact anything yourself; I will approve the redaction with my passkey before the file goes to procurement.
  • Studio · spreadsheet

    OEE cost model

    Availability × performance × quality per cell, and cost per accepted piece, built from formulas so the inputs stay yours.

    Create a new spreadsheet in EEVEE and build an OEE and cost-per-piece model for three die-casting cells: an Inputs sheet with planned hours, downtime, cycle time, shots per hour, scrap rate, shot weight in kg, and alloy cost per kg; a Model sheet that computes availability, performance, quality, OEE, and cost per accepted piece for each cell; and a bar chart of OEE by cell. Use formulas, not pasted numbers, so I can change the inputs.

Each one ends with the same beat: the agent evaluates its work and brings it to you. Nothing publishes until your passkey says so.

But Sheets has Gemini now

Isn’t this already built in?

Some of it, and it helps. Gemini writes the formula in Sheets, Copilot drafts in Word, Claude and Codex render a spreadsheet on your desktop. If your whole job lives inside one file, use the built-in pane. EEVEE starts where the second app begins.

Even a perfect formula bar is still one pane on one file.

  • The work crosses apps. Their AI stops at the edge.

    Gemini helps inside the sheet. Copilot helps inside the document. The credit hold lives in your order system, the contract in Word, the numbers in Excel. EEVEE puts the app, the files, and the decision on one bench.

  • Their AI is theirs. EEVEE takes yours.

    There is no model inside. Any WebMCP agent, ChatGPT’s browser today, finds the tools on the page. Change agents next year; the bench, the files, and the record stay.

  • A prompt box and undo is not a control.

    Built-in AI acts, then you look. EEVEE rehearses the write, shows the diff, and waits for a passkey. Then it keeps the record: what was asked, what you decided, and why.

  • Some chores have no app yet.

    First-party AI works inside software that already exists. The weekly reconcile, the reorder rule, the hold policy: here the agent builds that app, proves it, and runs it under the same key.

Your files stay DOCX, XLSX, PPTX, and PDF. The bench runs on your own Postgres. Nothing here is a format you cannot leave with.

Graded authority

One key. Four grades of trust. The baby does not share keys.

This is the same rule for every applet on the bench, shown with Meridian Ops: 13 reads, 19 writes, one passkey.

  1. 01

    Reads run at once.

    company_snapshot, low_stock_report, receivables_aging: the 13 read actions answer the agent without asking you.

  2. 02

    Writes are rehearsed.

    The same code runs on a copy of current data with writes intercepted. The decision card shows the fields that would change.

  3. 03

    Your passkey decides one request.

    The challenge is bound to that request id. Approve, or reject with a reason the agent reads back.

  4. 04

    A lease lets a few through.

    3 writes in 5 minutes, or 10 in 15. Each spend is recorded, you can revoke any time, and the next write waits again.

Where the key stops

Still your call.

A green diff can still be the wrong decision. EEVEE will rehearse your mistake beautifully.

A key cannot make the agent right.

If the agent misreads the job, the rehearsal shows a correct diff of the wrong idea. So EEVEE sticks to what a key can do.

A key cannot

  • Make the agent’s code correct
  • Know your business rules
  • Stop you approving a bad diff
  • Replace a backup or an audit

What EEVEE changes

  • Nothing publishes or writes without you
  • Every write shows its consequence first
  • Every decision, and every reason, is on record
  • Leases are small, timed, and revocable

Built for The WebMCP Challenge

The obvious fixes only go so far.

Confirm dialogs, read-only modes, and code review each help a little. None of them fixes the real problem: you cannot see what a write will do until it is done.

Confirm dialogYes or no, with no preview
Read-only agentSafe, and cannot finish the job
Review the codeDoes not scale past the first app
Chat and pasteYou become the integration

What holds it together

Rehearsal, then one key

The write runs first on a copy. You see the diff. Your passkey, or a lease it granted, is the only way through.

Visit The WebMCP Challenge ↗

Choose a job. Watch the key work.

This is the same ERP the demo installs. Three writes, three different decisions, one record that shows every one of them. Yes, it asks every time. That is the feature.

Situation

Cyan ink packs (INK-CY) are at 12. The reorder point is 20.

The agent callsapplet_receive_stock{ product_id: "p102", qty: 8 }
Rehearsed on a copy

1 products field change, 1 audit added

productsINK-CYstock
1220
auditadded
Received 8 × INK-CY
You decideApprove

Your fingerprint verifies this one request; the challenge is bound to its id.

What lands
  • INK-CY stock reads 20
  • The low-stock report is empty
  • The audit trail shows the receipt and who approved it

Now watch it work.

Paste one prompt to any WebMCP agent, or click through by hand. The bench shows every step as it happens.

  1. 01

    The agent installs Meridian Ops and its four scenarios pass in your browser.

  2. 02

    Your fingerprint publishes version 1. Thirty-two applet tools appear for the agent.

  3. 03

    A credit hold arrives as a diff. You approve it, and the record shows who did.

  4. 04

    A three-write lease lets a shipment through. You revoke it; the next write waits again.

Install the Meridian Ops reference applet in EEVEE, evaluate it against its behavioral suite, and bring the passing version to me for review.

Works in ChatGPT’s browser (GPT-5.6 Sol or Terra) and in Chrome 149+ with chrome://flags/#enable-webmcp-testing. No agent? Install as draft, Evaluate, Review & publish, Run, then send a request by hand. Two more prompts wait in the workbench Guide.

You hold the key.

Every rule below is enforced by the server, not by the agent’s good manners.

  1. 01

    Ask before any write

    Reads run free. Writes wait for your decision, or for a lease you granted.

  2. 02

    Show the exact diff first

    Rehearsed on a copy of current data. You see fields, before and after.

  3. 03

    Bind each challenge to one request

    A passkey prompt for one version or write cannot be replayed for another.

  4. 04

    Record every decision and its reason

    Approvals, rejections, lease spends: who, what, when, and why.

  5. 05

    Let you take a lease back any time

    Revoke it, and the very next write waits for you again.

  6. 06

    Keep Office files in Office formats

    DOCX, XLSX, PPTX, PDF, versioned on your own Postgres. You can always leave.

That is the whole pitch

Open the bench and try it.

Three minutes. No account. A passkey when you publish, and the baby asks before anything else.