Price terms as published

Each line is the vendor’s own wording, split from the price capture checked on 2026-10-06. Nothing here is rounded, converted or re-worded — the full sentences stay in the review below. Lines that carry only a price continue the plan named on the line above, in the vendor’s own order.

2 price terms for dots
#Plan / termChecked
1Free (MIT)2026-10-06
2bring your own OpenRouter API key2026-10-06

The short version

dots is a local application that gives an AI agent its own browser. The project’s one-line pitch explains the split it is fixing: “Every AI agent is a model and a browser. You can swap the model with one flag. The website still sees a headless, fingerprinted, obviously automated browser — and acts like it.”

What you get is two panels at http://127.0.0.1:8765: a conversation with a model of your choosing on the left, and a real Firefox window the model drives on the right. It is not a script that drives an installed Chrome — it is a Firefox build the project patches in C++, so the fingerprint is decided inside the engine rather than painted over by JavaScript after the fact. It runs without any browser automation framework: no navigator.webdriver flag, no Chrome DevTools connection, no injected script, no automation namespace, and mouse and keyboard events that move the way a person’s do.

The price of entry is deliberately small. The software is MIT-licensed and free; the only recurring cost is the OpenRouter API key you paste in, and the project’s own line on that is “You choose your model, you choose your price.” There is no subscription, no seat count, and no hosted version to sign up for.

How it works

One identity per seed. Launch dots with --seed my_customer_1, --profile-dir ./profile, and it derives a distinct browser identity from that seed and stores it on disk. Come back tomorrow, same seed, same profile directory, and the same site sees the same session — logins, cookies and all. Small per-seed variation in fingerprint is normal; the same seed always stays consistent.

One person’s behaviour, not a script’s. Pointer and keyboard events are generated to look human — not random. The guide is explicit that “Do not assume that ‘slower’ automatically means ‘less detectable’”, and mentions replaying one agent view of a session.

It follows your exit. --proxy sets the egress IP and rewrites the locale to match — timezone, language and currency all move with the proxy, not with your laptop. Pick a residential exit in the target country and the fingerprint follows.

Your model, your key. The chat panel runs any OpenRouter model (the default named in the README is openrouter/z-ai/glm-5.2), so the cost line is whatever you were already paying per token. If tokens matter, the README suggests --no-video, because the agent’s own view is screenshotted into the conversation.

An MCP server for your existing coding agent. The companion project feder-cr/invisible_playwright_mcp is added with a one-line uvx command, which gives Claude Code, Codex, Gemini CLI or any other MCP client this same browser: Open the landing page from the repo. Fill the demo form. Tell me the success toast.

What it is for

The README’s own hunt is a full research loop: a lead list, a catalogue, a storefront or a piece of published research, with every scrape ending in a --csv and --report final.md — “From lead list to shortlist to first draft.” That framing matters, because it positions dots against headless scraping APIs and site-specific connectors rather than against general chat assistants: it is for work where the blocker is the website refusing to serve the agent, not for answering questions about it.

Pricing

Item Price What it covers
dots Free MIT-licensed local app, stealth Firefox build, --seed identities, MCP server — no paid tier (verified from the repo and README on 2026-10-06)
Your model Your own cost An OpenRouter API key; you choose the model and the price per token
Tagged releases None yet The repo has no tags or releases, so installs run from main via uvx --from git+https://github.com/feder-cr/dots dots

The numbers behind the download

All of this was read from the GitHub API, the repository README and a third-party directory on 2026-10-06:

  • 2,620 stars and 438 forks in the repository’s first week — created 2026-09-29, last pushed 2026-10-03, 147 subscribers watching it.
  • MIT licence, Python for the project, with the browser engine work living in the companion repositories rather than in this one.
  • 0 open issues, 1 open pull request, no tags — a project that is young enough that almost everything is still in main.
  • The parent line is much bigger: feder-cr/invisible_playwright_mcp sits at 31,774 stars (created 2024-08-04, MIT, pushed 2026-10-05) and feder-cr/invisible_playwright at 3,018 stars (created 2026-05-13). dots is the interface layer grown out of those.
  • Independent corroboration: SkillsLLM’s directory entry for the MCP server records 31,762 stars and 4,685 forks, mcpmarket lists the same server as “Top Premium” with no reviews yet, and a GitHub Topics listing for stealth-browser / anti-detect-browser shows dots at 2.6k stars updated 2026-10-03. On the practical side, a Ministry of Testing forum post from 2026-10-02 describes using the parent invisible_playwright server with Claude to drive an accessibility test — the same engine, used by somebody who is not the author.

Who this is for

  • Developers whose agents hit walls. If your agent gets a CAPTCHA, an empty search page or a Cloudflare challenge the moment it touches a real site, that is the problem this targets.
  • People running multi-step browser work — lead lists, catalogues, published research — where each step needs the same logged-in identity.
  • Anyone with an OpenRouter key already, since that is the only paid ingredient.
  • Not for users who want a browser product. There is no installer-with-icon download, no team plan, no dashboard, and no vendor to call; you run a uvx command against main.

What we deliberately didn’t test

We have not run dots, pointed it at a site protected by Cloudflare or Turnstile, or compared its fingerprint against a commercial anti-detect browser. Every capability line above comes from the repository README, the GitHub API and the third-party listings as captured on 2026-10-06 — official-basis only, no hands-on claims, and we do not score it.

Three things a reader should weigh: the anti-detection claim is the project’s own and we did not verify it against any particular bot wall; at seven days old with no tagged releases, the command-line surface is still moving; and “one identity per seed” only stays private if the profile directory and proxy you pair it with do — the tool does not make those decisions for you.

Sources