by feder-cr
Open-source AI browser agent for web automation: a web browsing agent and computer-use agent in plain English. Browser MCP for Claude Code and Gemini CLI.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
# Add to your Claude Code skills
git clone https://github.com/feder-cr/AIHawkGuides for using ai agents skills like AIHawk.
Last scanned: 9/5/2026
{
"issues": [
{
"file": "README.md",
"line": 83,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -LsSf https://astral.sh/uv/install.sh | sh\"",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-09-05T08:04:12.790Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}AIHawk is an open-source AI browser agent: a web browsing agent with a real browser. You say what you want in plain language, and it browses, clicks, types and reads the actual web to get it done.
FEATURED IN Business Insider · TechCrunch · Semafor · Wired · The Verge · Vanity Fair · 404 Media
The only question is where the model comes from.
Your assistant brings the model. You add this browser to it, and nothing changes about how you work.
Claude Code:
claude mcp add --scope user stealth -- uvx invisible-playwright-mcp
Codex:
codex mcp add stealth -- uvx invisible-playwright-mcp
Gemini CLI:
gemini mcp add --scope user stealth uvx invisible-playwright-mcp
Then ask your assistant, in the window you already have open:
Go to news.ycombinator.com and give me the top five titles.
Claude Desktop, Cursor, VS Code, Windsurf, Zed and Cline take a config file instead, and the file is not the same shape for all of them. Each one is written out in the server's README.
We bring the interface, you bring an OpenRouter key. Chat on the left, the live browser on the right.
uvx aihawk ui --openrouter-key sk-or-...
Then open http://127.0.0.1:8765 and type the same thing.
Same patched Firefox behind both. AIHawk reaches it through that MCP server, over MCP, exactly as your assistant would.
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.
Both commands above start with uvx, so you need uv:
curl -LsSf https://astral.sh/uv/install.sh | sh # Linux
powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # Windows
The browser is a separate download of about a quarter of a gigabyte, and it does not arrive when you install either side. It arrives on the first request that needs a page, so your first instruction sits there for a while and a slow connection can time out with an error that says nothing about a download. Get it over with first, where you can watch it:
uvx invisible-playwright fetch
Anything that needs real web automation: a browser rather than an API, and a person's judgement about what is on the page.
Go to
<paste the URL>. One way, Milan to Lisbon, economy, one checked bag, one adult. Check every date from the 12th to the 16th of next month, one at a time, and read the cheapest fare for each day. The date field is a calendar widget, so click the days rather than typing them. If a date has no availability, say so. Do not guess a number.
It drives the page the way a person would: the pointer moves, keys are pressed, and it refuses to set a form field from JavaScript even when that would be quicker, because a page can tell the difference.
--openrouter-key Your key, or the OPENROUTER_API_KEY variable.--model An OpenRouter model id, or AIHAWK_MODEL. Defaults to z-ai/glm-4.6.--proxy Optional. http://user:pass@proxy.example.com:8080 or
socks5://proxy.example.com:1080. Host and port are both required. The
timezone, locale and egress follow it.--binary An engine binary you already have. It must be the build the seal
pins, or startup refuses: this skips the download, not the version check.--seed An integer. Same seed, same browser identity, every run.--profile-dir A directory to keep the profile in, so logins and cookies
survive restarts.--headed Show the browser window. The interface shows you the page anyway.--host, --port 127.0.0.1 and 8765. Changing the host
exposes an interface that has no authentication..env beside the commandRather than retyping the key and the binary path, put them in a .env in the
directory you run from:
OPENROUTER_API_KEY=sk-or-...
STEALTHFOX_BINARY=/path/to/firefox
It is read at startup, and on the way in it never overrides something
already set, so the order is --flag > the environment > .env > the default.
Only the directory you are in is read - there is no search upwards, so running
from a subfolder cannot silently pick up a different key. The startup line names
the variables it applied and never prints their values.
Passing --openrouter-key puts the key in your shell history, and on Linux in
the process list. OPENROUTER_API_KEY in the environment or in a .env avoids
both.
Either way it does not reach the browser process: it is removed from the
environment the engine starts with, by name and by value, so a copy under a
second name goes too.
tests/test_key_isolation.py
fails if that stops being true.
The reading room around the agent lives in the wiki: the AI browser-agent landscape: browser-use, Operator-style and computer-use agents compared, what to check when an agent gets blocked, and what happened to OpenAI Operator, among others. Worked examples, transcripts and their outputs live in articles/.
Issues and pull requests welcome on whichever of those the problem lives in. If you are not sure, open it here. See CONTRIBUTING.
When something fails on a page, say which step, what the page did, what the tool returned and which exit country you were on. "It got blocked" is not something anyone can act on.
This automates a browser under your control. Read the terms of the sites you point it at, respect their rate limits, and do not submit anything a human has not read.
MIT. Everything distributed before 2 September 2026 was released under AGPL-3.0 and stays under it.
AIHawk is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by feder-cr. Open-source AI browser agent for web automation: a web browsing agent and computer-use agent in plain English. Browser MCP for Claude Code and Gemini CLI. It has 30,312 GitHub stars.
Yes. AIHawk passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/feder-cr/AIHawk" and add it to your Claude Code skills directory (see the Installation section above).
AIHawk is primarily written in Python. It is open-source under feder-cr on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh AIHawk against similar tools.
No comments yet. Be the first to share your thoughts!