-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
running aihawk with claude code
If you already use Claude Code, you do not need AIHawk's interface, its CLI, or an OpenRouter key. Claude Code brings the model; you add the browser to it. The browser is the same MCP server AIHawk itself talks to - invisible-playwright-mcp - so anything AIHawk's own interface can do, your assistant can do too, and that is by construction: the interface holds no privileged access, it calls the same tools over the same protocol as any other client.
This page is Claude Code specifically. Claude Desktop and Cursor take a config file instead of a command, and have their own pages: Claude Desktop and Cursor. The config blocks themselves live in the server's README, which is the one place they are kept current.
Two prerequisites, same as everywhere in this project: Python 3.11 or newer on
Windows (x86_64) or Linux (x86_64, arm64) - macOS is not supported, the last
engine build for it was firefox-20 - and uv,
because the command runs the server with uvx. Then, once:
claude mcp add -s user stealth -- uvx invisible-playwright-mcpReading it left to right: -s user registers the server at user scope, so it
is available in every project rather than only the directory you happened to be
in; stealth is the name it appears under; everything after -- is the
command Claude Code will run to start the server, and uvx fetches and runs
the published package, so there is nothing to clone or pip-install first. Start
a fresh Claude Code session afterwards if one was already open, and /mcp
should list stealth among the connected servers.
Installing the server does not install the browser. The engine is a patched Firefox of roughly a quarter of a gigabyte, and it downloads on the first request that needs a page - which, from inside a chat, looks like your first browsing prompt sitting there doing nothing, and on a slow connection can end in a timeout message that says nothing about a download.
Get it over with first, in a terminal where you can watch the progress:
uvx invisible-playwright fetchIt is cached afterwards and shared by every way into the engine, including AIHawk's own interface if you later run that too.
A set of browser tools, prefixed with the server name you chose. The
authoritative list is whatever /mcp shows for your installed server version;
the families, with the names AIHawk's own client code knows them by:
-
Navigation and tabs:
browser_navigate, plussession_new_page,session_select_page,session_close_pageandsession_list_pagesfor working across tabs. -
Reading the page:
browser_read_text,browser_read_html, andbrowser_snapshotfor a structural view of what is interactive. -
Acting on the page:
browser_clickandbrowser_click_at,browser_type,browser_press_key, and - since server 0.10.0 -browser_select_optionfor dropdowns, added precisely so a model never has to fake a selection through script. -
Seeing it:
browser_take_screenshot.
Behind the tools is the point of the exercise: a real patched Firefox that drives pages through actual input events, not a headless toolkit. What that buys, and what it honestly does not, is the blocked page's subject.
Start small, so the first success and the first failure are both legible:
Go to example.com and tell me the main heading on the page.
One navigation, one read. If this works, the server, the engine and the wiring all work. Then something with a decision in it:
Go to [paste the URL of a docs page you actually read] and find the section about installation. Quote the exact command it recommends.
Then something multi-step, the shape most real use takes:
Open [paste the URL of a public page with a list on it], read the first ten entries, and give them to me as a table with a link column.
If that last shape is your actual goal, the extract-to-CSV page takes it the rest of the way. One habit worth forming from the start: ask for one page and one outcome per prompt. The assistant sees the page only through tool results, and short steps keep its context small and its mistakes cheap.
-
stealthis not listed in/mcp. Runclaude mcp listin a terminal to see what is registered and at which scope. If the add command was run while a session was open, the running session may not know it yet; start a new one. Ifuvxis not on your PATH, the server can be registered and still fail to start - install uv and tryuvx invisible-playwright-mcpby hand, which surfaces the real error. - The first browsing prompt hangs or times out. Almost always the engine download. Run the prefetch command above and retry; afterwards a first page load is seconds, not minutes.
-
Tools appear but every call fails. Try the one-line prompt above; if
even
example.comfails, the problem is below the model - the browser-or-model page is the systematic version of that diagnosis, and blocks and challenge pages have their own checklist. - You want a proxy, a fixed identity, or a persistent profile. Those are server-side options, configured where the server is configured; the server's README documents them. This page deliberately does not duplicate that reference.
How do I add AIHawk's browser to Claude Code?
claude mcp add -s user stealth -- uvx invisible-playwright-mcp, once, with uv
installed. New sessions then have the browser tools in /mcp.
Do I need an OpenRouter key for this? No. The key is only for AIHawk's own interface and CLI, where AIHawk must bring a model. In Claude Code, Claude is the model.
Why does the first browsing request take so long? The engine, about a
quarter of a gigabyte, downloads on the first request that needs a page. Run
uvx invisible-playwright fetch once in a terminal to do it up front.
Is this different from what AIHawk's own UI drives? No - same server, same engine, same tools. The interface is just another MCP client of it, with no privileged access.
Does it work on macOS? No. The engine ships for Windows and Linux only;
the last macOS build was firefox-20.
Can Claude Code and the AIHawk UI share the setup? The downloaded engine is cached once and shared. The server process itself is per-client - each client starts its own - so a page open in one is not visible in the other.
All retrieved 2026-09-03.
-
feder-cr/AIHawk, this repository's
README (the verbatim add command, the prerequisites and platforms, the
engine download and prefetch, "anything the interface can do, your assistant
can do too") and source:
src/aihawk/link.pyandsrc/aihawk/web.py(the interface reaching the browser over MCP as an ordinary client),src/aihawk/actions_help.py(the tool names above), andpyproject.toml(the server version floor and whybrowser_select_optionis in it). - feder-cr/invisible-playwright-mcp, the server itself: config blocks for other clients, server-side options, and the current tool list.
See also: running AIHawk with Claude Desktop, running AIHawk with Cursor, how to extract data to CSV with an AI agent, and browser problem or model problem?.
From the AIHawk wiki. Claude Code is the shortest route into this browser - one command, against a config file everywhere else - and the README calls the engine fetch "the download nobody warns you about", so consider yourself warned.
Alternatives and Comparisons
- OpenAI Operator alternatives
- Open-source Operator-style agents
- Is OpenAI Operator still available?
- OpenAI Operator vs Claude computer use
- browser-use alternatives
- Choosing an AI browser agent
- Open-source AI browser agents
- Open-source computer-use agents
- What is an AI web agent?
- AI browser agents vs traditional scraping
- Cloud browser infrastructure for AI agents, explained
- Browserbase alternatives
- Firecrawl vs an AI browser agent
- Skyvern alternatives
- Stagehand vs browser-use
- Project Mariner is gone: what replaced it
- Manus alternatives
- Gemini computer use vs Claude computer use
- AIHawk, reviewed honestly by its own wiki
- AI browser vs AI browser agent: which one do you want?
When the Agent Gets Blocked
- Why does my AI agent get blocked?
- The timing signal AI agents give off
- Agent retry loops trip rate limits, not fingerprints
- Claude computer use detected as a bot
- browser-use getting blocked: what you can and cannot change
Using the Agent
- Getting an AI agent to fill out forms
- Which model to use with AIHawk
- Browser problem or model problem?
- Running AIHawk's browser from Claude Code
- Using AIHawk without an API key
- Extracting data to a CSV with an AI agent
- Monitoring a page for changes with an AI agent
- Running AIHawk's browser from Claude Desktop
- Running AIHawk's browser from Cursor
- Using an AI agent to hunt for apartments
- Getting website data into Google Sheets with an AI agent
- Using an AI agent to download invoices from portals
- AI agents for web research
- Using an AI agent to test your own website
- Running AIHawk's browser from Cline
- Posting to social media with an AI agent
- Posting to Facebook with an AI agent
- Posting to Instagram with an AI agent
- Posting to X with an AI agent
- Automating LinkedIn posts: read this first
- Appointment bots: what they are and what an agent can legitimately do