Local console
Version 0.1.0
Runs on your machine

ProductExcellence

Definition

A local console that runs goal-driven browser journeys with a bounded AI worker and records evidence you can challenge.

Boundaries

Start here

Worked example
kootano.com
6 September 2026

Sixty seconds

Write a goal in a sentence. Watch a real browser go after it. Then argue with what it found.

Every capture below is the console itself, testing a live public site. Kootano is a Persian platform of fifteen minute book summaries, so the run also exercises right to left layout and Persian text. Nothing here is a mockup.

Exhibit 1. The mission form in the Kootano workspace, showing the goal sentence, the allowed domains, Claude Opus 5 at medium effort, a desktop Chromium browser and a budget of eight steps.
Exhibit 1. The mission that produced everything below. Goal: find a book summary about habits using the site's search, open it, and confirm the summary page loads with its title and reading time. Eight steps, eight AI calls, ten minutes maximum, kootano.com only.

04The action log. Each line is what the worker chose and why, recorded before the click happened.

What the worker actually did

Three clicks and a verdict, each with its reason on the record.

  1. step-000 Click the search link in the header "The mission requires using the site's search; open the search page from the header nav to query for a habits book summary."
  2. step-001 Type عادت into the search box "Enter a habits-related query into the site's search box to find a habit book summary."
  3. step-002 Open the summary عادت شجاعت from the results "Open the habits-related summary from the search results to verify its title and reading time on the summary page."
  4. step-003 Finish: goal reached The page at /books/the-courage-habit visibly shows the reading time ۲۱ دقیقه مطالعه beside its title, so the goal text was met. Success basis recorded as "AI visual assessment; configured success text is enforced".

Seven calls to Claude Opus 5 at medium effort, 96,591 input and 5,105 output tokens, an estimated 1.09 US dollars at published list prices. The run used a subscription, so nothing was billed per call. The estimate exists to compare runs with each other.

05Browser evidence for the fourth observation, captured beside the action that produced it.

Evidence

A screenshot is not evidence on its own. The measurements beside it are.

Exhibit 5. The browser evidence pane, showing the Persian right to left summary page beside four measured cells labelled LCP lab, CLS lab, interaction lab and time to first byte.
Exhibit 5. The summary page as the run saw it, with its measured signals and the raw DOM snapshot, observation JSON and browser trace one click away.
Exhibit 6. The same run page rendered at 390 pixels wide, with the score tiles stacked into a single column.

Recorded on the summary page, step-003.

Measured under lab conditions
Largest contentful paint3724 ms
Cumulative layout shift0.707
Interaction16 ms
Time to first byte438 ms
Requests250
Long tasks0

The console labels the interaction figure itself: "Maximum observed interaction duration in this lab visit; not a field percentile." A measurement the browser did not expose is written as unavailable and never as zero, because a zero would quietly read as a perfect score.

The worker is a language model with no hands. These are the reasons it stays that way.

Bounded by design

The AI chooses the next click. It cannot do anything else.

  1. Safe mode, empty tool set. The Claude client starts with an empty tool set, an empty MCP configuration, no session persistence and a short task-only system prompt. Codex starts ephemeral, ignoring user config, in a read-only sandbox with its shell tool disabled.
  2. Schema-validated actions. The worker answers with one structured action or one evaluation. Anything else is refused, and two refused or malformed answers in a row end the run.
  3. Restricted keyboard. Only navigation keys, plus Enter inside a live search box. Any other key is refused rather than risking an unintended form submission.
  4. Read-only network. POST, PUT, PATCH and DELETE are blocked by default so no account or payment can change. This run had eight requests blocked, and the count is reported so a resulting failure is never blamed on the product.
  5. Domain allow list. The run is confined to the domains the mission names. Everything else is refused at the browser.
  6. No credentials typed. Public browsing only unless a reviewed test persona is imported deliberately.

Evidence stays on this machine. The worker receives selected observations, not your filesystem. Runs are replayable, so a claim made in September can be re-measured in October under the same conditions.

07The same mission, replayed, compared against the first run.

Run it again

One run is an anecdote. The second run is where the argument starts.

Replaying the mission took 134.62 seconds and produced two findings the first run had never seen, thirteen that persisted, and none that disappeared. The interesting one is a measurement, not an opinion.

Exhibit 7. The compare releases view, reporting two new findings, none absent on the second run, thirteen persisting and the metric deltas between the two runs.
Exhibit 7. Compare releases, baseline against replay. Two new, zero not seen again, thirteen persisting, five not assessed.

New in the replay. Severity P2, performance, evidence step-001.

Very slow server response measured when loading the search page.

Observed: the search page load at step-001 recorded a time to first byte of 9,868.6 ms and a DOM loaded time of 12,373.9 ms, compared with 625.9 ms on the homepage at step-000.

Expected: time to first byte for a core navigation page stays in the same order of magnitude as the homepage rather than several seconds.

A second model reviewed this finding against the raw observation and marked it probable, not confirmed, for two stated reasons: the homepage comparison figure was not in the evidence it was given, and a single sample cannot rule out a cold start. A finding a critic has not confirmed costs half as many points. The console shows you the disagreement instead of resolving it silently.

08A deterministic audit of the home page. No AI calls, 17.78 seconds.

Not scored is not zero

The gap in the report is the honest part.

The same site, audited without an AI worker. Four pillars have deterministic checks and get a number. Conversion has none, so the console writes the reason instead of inventing a figure.

PillarAuditJourney
Functionality8585
CRONot scored95
SEO / AEO9572
UX / Accessibility10095
Performance / Video850
Overall91 of 100 · 4 of 569 of 100 · 5 of 5

Reason recorded against the blank: "CRO needs an AI review; this run completed none." Performance scored a real zero in the journey run, from six confirmed P2 findings on slow paint and layout shift. The two look nothing alike in the console, and that is the point.

Exhibit 8. The audit run page, where the conversion tile reads not scored with its reason while the four other pillars carry numbers.
Exhibit 8. The audit run. Every tile lists the findings that cost it points, so a score can be traced back to the evidence that produced it and disputed there.

How a score is computed. Printed beside every score in the console.

Each selected pillar starts at 100 and loses points for its open, non-rejected findings (P0 and P1 cost 40, P2 costs 15, P3 costs 5; a finding an AI critic has not confirmed costs half). A journey that did not reach its goal costs Functionality 30. A pillar that was not evaluated is not scored, which is different from scoring zero. This rates the findings recorded in this run. It is not a field measurement or an industry benchmark.

Runs at 127.0.0.1:8741. Local access only.

Open it and point it at something you own.