Foxora Eye · Chrome extension

Give your agents eyes. And hands.

Foxora Eye is a Chrome extension that lets your Foxora agents see and operate the web through your own browser — your tabs, your sessions, your logged-in state. They see exactly what you see, and they click exactly where you'd click.

Free · Chrome · Edge · Brave · Arc

4.8·Chrome Web Store·47,320 active users

Observation-first · Site-scoped · Pause anywhere · Open source · Local-first

GInbox (3,412) — Gmail
LFOX-1142 · Foxora Linear
foxora.dev
chore: bump eye to 1.4
mail.google.com/mail/u/0/#inbox
Foxora Eye is watching this tab
X
Inbox3,412 unread
Search mail
Google Security
New sign-in on macOS— We noticed a new sign-in to your Google Account on a Mac device…
10:32
Amazon
Your order has shipped— Shipment of Logitech MX Master 3S · arriving Tue 21 Apr.
09:14
Nike
promotions30% off — ends tonight— New running gear, handpicked for you. Offer expires at 11:59p…
08:02
Spotify
promotionsYour Daily Mix is ready— Handpicked tracks based on what you've been listening to…
07:48
Linear
You were assigned FOX-1142— Chrome extension: ship Foxora Eye marketing page by EOW.
07:31
Figma
Weekly digest · 7 files— Ava commented on Foxora Eye — Popup states v3.
yesterday
FOXORA EYE
watching
taskarchive all promotions, keep primary
read inbox · 3,412 threads
filtered by label:promotions
identified 12 candidates
archiving · 8 of 12
⌘⇧E to summon · pause anywhere · sandboxed per-tab
The gap

Agents can't use the web you actually use.

Ninety percent of your real work lives behind a login — Gmail, Linear, your bank, your CRM, the admin dashboard nobody wrote an SDK for. Today's agents keep trying to get in, and keep hitting walls.

approach · 01api-only
wall
agent.logtry every service
GETapi.gmail.com/threads403
GETapi.linear.app/issues200
GETapi.mycompany.io/admin/export404
GETbank.example.com/v1/transfers401
GETportal.hr.internal/reportsERR
GETsalesforce.lightning/.../opportunity

APIs only cover the public internet.

Most agents talk to the 10% of the web that exposes a clean SDK. The other 90% — every portal, dashboard, internal tool, and SaaS without a public API — is locked behind screens no SDK will ever ship.

hits the public-web wall
approach · 02headless browser
wall
chromium · --headless · new profile
G
Sign in
to continue to Gmail
Email or phone
no saved sessions · agent blocked
⚠ 0 cookiesfresh profile

Headless browsers have nobody logged in.

A fresh Chromium on a server starts with no cookies, no saved passwords, no 2FA device. It can load a homepage. It can't read your inbox, open your CRM, or file your expense report.

hits the identity wall
approach · 03record-and-replay
wall
archive-promos.macrorecorded Tue · last green run 2d ago
1clickdiv.aim[aria-label=Promotions]
2clickinput[type=checkbox][aria-checked=false]
3clickdiv[data-tooltip=Select all]
4clickdiv.z0W[role=button]
5waittoast:Archived
6assertinbox.count<3400
step 4 · selector not found · retrying (1 of 3)…

Recorded macros break the day after.

CSS selectors aren't a contract. Gmail ships a UI tweak on Thursday and every recorded flow goes red. Worse: the agent can't reason — it can only replay what it saw once.

hits the brittle-replay wall
What every approach misses
your cookiesyour sessionsyour 2FA deviceyour real DOMyour reasoning

The agent needs the browser you're already signed into — not a second, lesser one.

The fourth path

Share the tab.

Foxora Eye is a Chrome extension, not a virtual machine. When you give your agent a task, it doesn't spin up a separate browser — it rides along inside the one you already have open. Same tab. Same cookies. Same logged-in state. Two operators on one surface, with a very short list of what they share and a very strict list of what they don't.

you
keyboard · mouse · eyes
typingclicksscroll
one live tab
Inbox — Gmail
mail.google.com/mail/u/0/#inbox
Nike — 30% off — ends tonightref
Spotify — Your Daily Mix is readyref
Linear — FOX-1142 assigned
+one surface
your agent
ref-tree · dispatched events
observeactpause
Shared in this tabboth of you read and write through the same page
  • cookies & signed-in stateGoogle, Linear, your bank — already authenticated
  • rendered DOM & pixelsthe agent sees exactly what you see, nothing more
  • 2FA device · passkeysWebAuthn works because the tab is yours
  • installed extensions1Password, Bitwarden, ad-blockers — all still active
  • localStorage · IndexedDBper-site data the page already had access to
Stays on your machinehard walls, even when the agent is running
  • keystrokes on other tabsEye is scoped to the tab you pointed it at — nowhere else
  • your clipboardunread unless you explicitly paste into the tab
  • your filesystemno disk read/write — the extension has no filesystem API
  • other browser windowsevery tab gets its own isolated Eye instance or none
  • requests outside this origincross-origin fetches require a separate site-level grant

Every action is logged, reversible, and scoped to the tab you pointed Foxora Eye at. Pause with ⌘⇧E. Stop with one click.

Under the hood

Two verbs. Nothing fancier.

Foxora Eye does exactly two things. It reads the page as a structured ref-tree. It writes back as dispatched DOM events. No screenshots piped to a model. No record-and-replay. No custom protocols. Just the web, read and written the way the browser already understands it.

01See

Reads the page, not the pixels.

Foxora Eye walks the accessibility tree, filters it to what's actually interactive, and names each node with a stable `ref` that survives UI tweaks. The agent reasons over semantics, not CSS classes.

raw DOM
1<div class="aim bnt z0W" jsaction="..." role="button"
2 aria-label="Archive" data-tooltip="Archive (e)"
3 data-action-data="[...1.7kb of opaque state...]">
4 <div class="bqY aYa asa T-I-KE">
5 <img src="/icons/?v=112" class="hB" />
6 </div>
7</div>
foxora-eye translation
ref-tree
refrolenamestate
e12button"Archive"enabled
e13button"Delete"enabled
e14button"Mark as unread"enabled
e15list"Inbox · 3,412 threads"scrollable
e16link"Nike — 30% off — ends…"selected
01Stable refs

ref IDs are anchored to semantic role + accessible name — they survive class renames and A/B tweaks.

02Interactive-only

The tree only exposes nodes the user could actually act on. No hidden, decorative, or off-screen junk.

03Structural reasoning

The agent sees ancestry, children, and state — so 'the archive button in this email row' is expressible.

02Act

Dispatches events. Nothing more.

Foxora Eye exposes seven primitives — every task decomposes into them. Writes are always observation-first: the agent previews what it's about to do, and you (or a rule) get the final say.

foxora-eye · primitivesseven verbs · one browser
⌘K
click
only on visible, enabled nodes⌘.
type
keydown/keyup, not .value=⌘;
fill
batched, atomic on failure⌘f
select
<select>, listbox, combobox⌘s
scroll
reveals content before read⌘↓
navigate
same tab — never opens new⌘n
wait
times out, never hangs⌘w
Observation-first

Every write publishes a preview event first. Extensions, rules, or you can accept, reject, or rewrite before the DOM changes. Reads happen freely; writes happen on consent.

Your browser, your rules

Paranoid by default.

The extension is sandboxed per tab, scoped by origin, pausable at any keystroke, and every single event is written to an audit log you own. Nothing leaves your machine unless you asked it to.

01
scope

Scoped to the tab.

You point Foxora Eye at a tab. That tab is all it can see. Other windows, other tabs, other profiles — invisible.

02
pause

Pause anywhere.

⌘⇧E freezes the agent mid-action. A single Escape cancels the current task. Hover the extension icon — big red Stop.

03
audit

Logged locally.

Every click, type, and read is appended to a local journal you own. No telemetry by default — ship logs only if you opt in.

04
source

Open source, reviewable.

The extension is AGPL. Build it yourself, audit it, or pin a SHA. The whole surface area is reviewable in an afternoon.

foxora-eye · local audit log~/.foxora/eye/audit.jsonl · tailing live
tailing
10:12:03permission··site-scope · mail.google.com · granted by user
10:12:04read··snapshot · 1,214 nodes · 37 interactive
10:12:06write·pending··click(e12) "Archive" · awaiting confirm
10:12:07user··✓ accepted · no rule overrides
10:12:07write··dispatch · pointerdown → click → pointerup
10:12:08read··dom-diff · 1 row removed · inbox.count 3412→3411
10:12:12user··⌘⇧E · task suspended at step 3/7
_:__:__watching

Nothing here phones home. The log is yours. The source is yours. The tab is yours.

In the wild

What you actually get to do.

Every workflow that dies at a login screen. Every portal nobody built an SDK for. Every tedious multi-tab shuffle. Point Foxora Eye at it once, and the agent does it the way you would.

mail.google.com

archive every promo email from the last 30 days, keep primary untouched

filtered by label:promotions newer_than:30d
identified 412 candidates
archived 412 threads · inbox 3,412 → 3,000
4 min · 0 false positives
brex.com · drive.google.com

file last week's receipts into the Brex expense report

read 7 receipts from /drive/receipts/w17
created expense report · FY26-W17
attached · categorized · submitted for review
filed in 2 min
linear.app

summarize my unanswered Linear mentions since Monday

found 11 mentions across 4 projects
grouped by urgency · drafted replies
ready for you to review in sidebar
ready to triage
3 sites · 1 sheet

pull unfulfilled orders from amazon, flipkart, and doordash into a single sheet

opened Amazon / Flipkart / DoorDash order pages
extracted 14 unfulfilled items
appended to ~/Sheets/order-tracker.xlsx
all three · one view
mail.google.com

unsubscribe from newsletters I haven't opened in 60 days

32 cold newsletters identified
clicked unsubscribe on 32 threads
quieter inbox
instacart.com

reorder my usual weekly grocery from instacart

loaded last 4 orders · computed 'usual'
added 18 items · scheduled Sat delivery
cart ready — you hit buy

You describe the outcome in a sentence. Foxora Eye does the clicks.

Ship it

Give your agent the tab.

Foxora Eye is a free Chrome extension. Install it, pin it, summon it with ⌘⇧E, and point it at whatever you wish you didn't have to click through anymore.

Free · Chrome · Edge · Brave · Arc · no account needed

4.8·Chrome Web Store·47,320 active users
$ foxora-eye·watching tab · mail.google.com · paused
Shared tab

Your cookies · your DOM · your 2FA

Seven primitives

click · type · fill · scroll · ...

Audit-logged locally

No telemetry · pause with one key

Open source

AGPL · pin a SHA · build your own

See what you see.Click where you'd click.Nothing more.

That's the whole product.