Skip to content
Back to skills

Use Browser

ASecurity

The agent's EYES — `npm run eyes`, a browser with no window that ships with every node: it opens a page of this node, clicks, takes a screenshot and tells what lies on top of what. Load it before you show any built surface to a person (a page, a drawer, a banner, a menu), when a proof needs the eye rather than the wire — console errors, a layout that is formally correct and looks wrong, an element covered by another — and before believing any measurement taken through automation. Needs no ext...

  • 61 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 5, 2026
ai-agentsrustgonode

Works with

  • cli

Security analysis

A100/100

Scanned November 5, 2026

npx -y skills add Fractera/web4-node-starter-kit --skill use-browser --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Use Browser?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Use Browser
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/fractera-use-browser/badge)](https://www.skillsdirectory.com/skills/fractera-use-browser)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: use-browser
description: >
  The agent's EYES — `npm run eyes`, a browser with no window that ships with every node: it opens a page of this node, clicks,
  takes a screenshot and tells what lies on top of what. Load it before you show any built surface to a person (a page, a drawer,
  a banner, a menu), when a proof needs the eye rather than the wire — console errors, a layout that is formally correct and looks
  wrong, an element covered by another — and before believing any measurement taken through automation. Needs no extension and
  no account of the person. Acting in SOMEONE ELSE's interface (a registrar, Google, Resend) is `help-in-browser`, not this.
---

# use-browser — the eyes

> Informational, not binding. **Know a better way for the case in front of you — do it your way and
> say so.** You are trusted with the creative work on this project.

## 1. The rule that changes behaviour

**A built surface is SEEN before it is shown** (CLAUDE.md §6). «The class is in the build» proves the code arrived, not that the page
looks right. ✗ 2026-11-04, step 645-1: the drawer was proven by its CSS in the chunks and shown to the owner twice — with a hole on top
and a shift too big; one screenshot would have shown both.

## 2. The tool

```
npm run eyes -- <address> [--click "<text or css>"]… [--measure "<css>"]… [--top] [--width 390] [--dark] [--full] [--out <file.png>]
```

It prints the browser, the answer and the title, the screenshot path (`logs/eyes/<time>.png`), every console and page error, and for each
`--measure`: the box and what lies on top of its corner — «виден», «ПЕРЕКРЫТ: <who>» or «вне экрана». **Open the PNG and look at it**
(the Read tool shows images): a number does not see a broken rhythm, a hole or a fourth item that fell to a second row.

- Browser order, no questions: Playwright's own Chromium → the installed Chrome → Edge. `===EYES_NO_BROWSER===` — say it in one line
  with what to install (`npm run eyes:install` after); do not fall back to guessing.
- A clean browser every run: no person's session, no cookies. On `localhost` the core's panel opens without sign-in (the owner at the
  keyboard); on the temporary address it is read-only; on an own domain it is signed out — say which you measured.
- One check = one run, the browser closes after it; no resident process.

## 3. 🔒 Measurements that lied here

- **The panel scrolls itself to the content on load** — the bars above the header leave the screen, and an element out of view looked
  «covered». `eyes` now says «вне экрана»; `--top` scrolls to the start before the screenshot.
- **A tab opened before a rebuild shows the previous build** (the owner's Safari, 2026-11-04: old drawer items after the rebuild). A
  person's screenshot that contradicts `eyes` — ask them to reload with ⌘⇧R before you change code.
- **A registered service worker serves the PREVIOUS build.** `eyes` starts clean; the person's browser does not (`use-pwa`).
- **`scroll-smooth` makes a scroll position read back wrong** — measure after `behavior: "instant"`.
- **A screenshot times out, then works on the retry.** One timeout is not a broken page; retry once.

## 4. Reading a page like a person

- Both themes (`--dark`) and a narrow window (`--width 390`) for anything a visitor sees.
- Open what the person opens: `--click "Личный кабинет"` before measuring a drawer; measure the title AND the close button.
- Count elements rather than words: «privacy» also lives in structured data and class names.
- Scripts off for public pages is a wire check: `curl` the served markup (`use-aio`).

## 5. Before you call it seen

Name the state: address (localhost / temporary / own domain), width, theme, what was clicked. Then show the person the screenshot or
say where it is. `eyes` is not a proof of a foreign site — for those you act in the person's Chrome (`help-in-browser`).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.