Anriss logo Anriss
Get started

Running against your app in five minutes.

Anriss is a single binary. Run it, drop one script tag into your dev app, point Claude at it over MCP — then annotate the page and let your agent work through the list.

⚡ Fast path

Let your agent install it for you

Anriss speaks MCP, so any capable coding agent can wire it up. Pick your tool on the left; paste the generated prompt into that agent on the right. It runs the whole setup — starts the server, registers the MCP endpoint, drops in the widget tag, and saves an anriss command.

anriss — configure

? Which coding agent?

  • Claude Code
  • Cursor
  • Gemini CLI
  • Codex / other

↑↓ move · ↵ or click to select · always installs at project scope

paste into Claude Code · project

Prefer to run the steps yourself? They're spelled out below. Changed the port with ANRISS_PORT? Swap 4855 in the prompt to match.

01

Install & run the server

Download the binary for your platform, make it executable, and run it — no toolchain, no build step, no runtime dependencies. One process, one SQLite file.

anriss — zsh
# one line — detects your OS + CPU, grabs the right binary
$ curl -fsSL https://anriss-dev.hellpat.com/install.sh | sh
  Downloading anriss-macos-arm64 (Darwin/arm64) …
  ✓ Installed ./anriss
$ ./anriss
  serving  http://localhost:4855
  mcp      http://localhost:4855/mcp

Prebuilt for macOS (Apple Silicon & Intel) and Linux (x86_64 & arm64). Prefer to grab the binary yourself? Pick anriss-macos-arm64, anriss-macos-x86_64, anriss-linux-x86_64 or anriss-linux-arm64 from the latest release. Then open http://localhost:4855/ — the built-in demo runs the widget, so you can walk the whole loop before touching your own app.

Windows: run it under WSL (use the Linux binary) or the Docker image — there's no native Windows build.

Change the port

Set ANRISS_PORT (default 4855). Point the SQLite file anywhere with ANRISS_DB.

anriss — zsh
$ ANRISS_PORT=8080 ./anriss
  serving  http://localhost:8080
  mcp      http://localhost:8080/mcp

Changed the port? Use the same one in the widget src and the MCP URL in the steps below.

Prefer Docker or building from source? See the README. Just kicking the tyres? Try it without installing.

02

Add the widget to your app

One script tag on the page you're building. It mounts an isolated launcher pill in the bottom-right corner — nothing of yours is touched.

your-app · layout.html
<script src="http://localhost:4855/anriss.js" defer></script>
Dev only. Never ship this to production. Gate it however your stack gates dev-only markup — the “Let your agent install it” prompt above picks the right idiom automatically, or drop one of these in yourself:
Symfony · Twig
{% if app.debug %}<script src="http://localhost:4855/anriss.js" defer></script>{% endif %}
Laravel · Blade
@env('local')<script src="http://localhost:4855/anriss.js" defer></script>@endenv
Rails · ERB
<% if Rails.env.development? %><script src="http://localhost:4855/anriss.js" defer></script><% end %>
Plain HTML
<script src="http://localhost:4855/anriss.js" defer></script> <!-- remove before shipping -->

Toggle hotkey defaults to Alt+Shift+A. Change it with data-hotkey="ctrl+shift+e" on the script tag.

03

Point at what's wrong

No dev-tools spelunking — click the element, say what you mean.

  1. 1Open Anriss from the pill in the bottom-right corner, or press Alt+Shift+A.
  2. 2Arm the picker — hold Alt or click the crosshair button in the composer — then click one or more elements. Each gets a numbered badge; click again to deselect.
  3. 3Write what should change in the composer, referencing a target inline as [#1], and press Enter. No element needed — just type to comment on the whole page. Your open discussions stack above the composer.
1Pricing card — “Pro plan”
Make 1 the anchor — center it and bump the size.
04

Connect Claude over MCP

Register the annotation server once. In Claude Code, one command:

claude — mcp
$ claude mcp add --transport http annotations http://localhost:4855/mcp
  Added HTTP MCP server annotations → http://localhost:4855/mcp (local)
$ claude mcp list
  annotations   http://localhost:4855/mcp   ✓ connected · 2 tools

Prefer to check it in for the whole team? Use project scope — Claude Code writes .mcp.json:

.mcp.json
{
  "mcpServers": {
    "annotations": { "type": "http", "url": "http://localhost:4855/mcp" }
  }
}

Claude Desktop: same JSON, in ~/Library/Application Support/Claude/claude_desktop_config.json. The server exposes two tools — list_discussions and reply.

05

Hand it to your agent

The loop is pull-based, not a blocking gate. Annotate as much as you like, then whenever you're ready, say:

You → your agent
“Work through the open UI annotations.”
Your agent then
  1. 1

    Reads the ongoing discussions — list_discussions — and finds each element by its stored CSS selector, XPath and HTML snippet.

  2. 2

    Fixes the code, then reply with a short summary of what it changed.

  3. 3

    Replies appear live in the widget. You review, then resolve and archive — the agent never changes status, that stays yours.

Tip — drop that one line into .claude/commands/anriss.md for a /anriss slash command. Re-run it any time: each call re-polls, so nothing is lost and nothing blocks your agent while you work.
No install

Try it in your browser first

Open the hosted demo, annotate the practice page, and see the whole flow — no download required.

Open the hosted demo

It's a shared instance, wiped daily — great for evaluating, not for real project work. For that, run it locally so your annotations and your agent stay on your machine.

Where to next