feder-cr/dots
Open-source dots for the web: an AI agent with its own browser, one that does not get blocked.
About feder-cr/dots
feder-cr/dots is an open-source project on GitHub, mainly written in Python. Open-source dots for the web: an AI agent with its own browser, one that does not get blocked. It currently holds 1,928 stars and 319 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
AI Homed tracks it on the Today's Trending board, currently at rank #89 with 0 new stars today.
GitHub Repository Details
README
dots
Every AI agent is a model and a browser.
You can swap the model with one flag. The browser is what the website sees.
---
Windows, in PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"
uvx --from git+https://github.com/feder-cr/dots dots --openrouter-key sk-or-...
Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uvx --from git+https://github.com/feder-cr/dots dots --openrouter-key sk-or-...
Then open http://127.0.0.1:8765. The conversation on the left, the browser on the right, live.
It all comes down to the browser
When a web agent fails, the model is rarely why. The page never loaded, a challenge appeared, the login expired, the click did not land. All of that happens in the browser, before the model gets to think.
So dots is built around one:
- A real Firefox engine, patched in C++. The fingerprint is decided inside
- One identity per seed. Screen, fonts, GPU, timezone and language agree
--seed gives back the same person on every run.
- Nothing for a page to find. No WebDriver flag, no DevTools protocol, no
- A person's hands. The pointer travels to what it clicks and keys are
- A browser that remembers.
--profile-dirkeeps logins and cookies from
- Where it connects from is who it is. With
--proxy, the timezone and the
The model is any model on OpenRouter, and --model changes it.
What to ask it
Go to ``. One way, Milan to Lisbon, economy, one adult. Check
every date from the 12th to the 16th of next month and read the cheapest fare
for each day. If a date has no availability, say so. Do not guess a number.
The same browser, in your own assistant
Claude Code, Codex, Gemini CLI or any MCP client:
invisible_playwright_mcp
gives them this browser as a server. dots is its interface, and dots --help
lists every option.
---
Not affiliated with OpenAI. MIT licensed.