Anriss logo Anriss
Every feature, one after another

Turn “this looks off” into a fix.

Anriss turns a vague feeling into a change your agent applies — without leaving the page. Here is everything it does, in plain terms.

01

Click any element to annotate it

Open Anriss and click elements on your running app — one, or several. Each gets a numbered badge, and its CSS selector, XPath, HTML snippet and page context are captured automatically.

  • Works on anything the browser renders — buttons, cards, list items, SVG, table cells.
  • No dev-tools spelunking: point instead of describing.
1Hero heading — “Ship better UI”
2FAQ section
02

Write a story, not a ticket

Selected elements drop straight into the comment box as inline pills. Write around them so the intent reads as one sentence — the pills point back to the exact elements on the page.

  • Reference several elements in a single comment.
  • Delete a pill to deselect its element — the page badge disappears with it.
Make 1Hero the anchor — 2FAQ can move below the fold.
03

Your agent picks it up over MCP

The server speaks the Model Context Protocol natively. Claude Code, Codex and opencode read open annotations and resolve them — no glue scripts, no copy-paste, no per-agent config files to keep in sync.

  • Two tools: list_open_annotations and resolve_annotation.
  • Point any MCP client at one URL and you’re connected.
$ claude › work through the open annotations
⚒ list_open_annotations → 1 open, 2 targets
  editing templates/hero/…
⚒ resolve_annotation ✓ done
04

The answer comes back, live

When the agent resolves an annotation, it flips to done in your sidebar while you watch — with the agent’s note attached. You review the fix and archive it with a click. Nothing is ever silently deleted.

  • Status lifecycle: open → done (agent) → archived (you).
  • Updates every few seconds; a red dot shows if the server is unreachable.
Open · “Make Hero the anchor”
Done · “Centered the CTA”
Done · “Moved FAQ below the fold”
05

Any frontend — really any

Integration is one script tag. The whole widget lives in a Shadow DOM, so it can’t touch your styles and your styles can’t touch it.

  • Plain HTML, Stimulus + Turbo, Vue, Svelte, React — all the same one line.
  • Gate it behind your dev flag; it never ships to production.
<script src="http://localhost:4855/anriss.js"
        defer></script>
06

Your data, in a standard format

Every annotation is a W3C Web Annotation, stored in a local SQLite file you own. Greppable, portable, exportable — your notes outlive the tool.

  • No cloud, no account, no vendor lock-in.
  • One Rust binary and a SQLite file — that’s the entire footprint.
{ "@context": "…/anno.jsonld",
  "type": "Annotation",
  "body": { "value": "Make Hero the anchor" },
  "target": [ { "selector": [ … ] } ] }

See it on a live page.

Every element on the kitchen-sink page is waiting to be annotated.

Open the kitchen sink