The Parasitic Browser Bridge for CrewAI. Control your live, authenticated Chrome session with AI Agents.
Crewright is the missing link between CrewAI and your browser. > "Like Playwright, but for CrewAI!"
Unlike Playwright MCP (which launches a clean, empty browser), Crewright connects to your already open Chrome window.
- Login to nothing: The agent uses your cookies.
- Bypass everything: Cloudflare sees you, not a bot.
- Visual Feedback: Watch the agent click and type in real-time.
It is designed to work seamlessly with the CrewAI Framework to give your agents "eyes" and "hands" on the web.
- Parasitic Stealth: zero-config authentication.
- Manifest V3: Secure, modern Chrome Extension architecture.
- Native MCP: Works with CrewAI, Claude Desktop, Cursor, and any MCP client.
To give CrewAI access to your browser, you need to load the bridge extension.
- Open Chrome and navigate to
chrome://extensions. - Enable Developer Mode (toggle in the top right corner).
- Click Load Unpacked.
- Select the
src/bridge/extensionfolder from this directory. - Verify: You should see the Crewright Bridge card with a 👻 icon.
- Check: Ensure the toggle is ON.
Note: This extension runs entirely locally. It communicates only with your local Agent. No data is sent to the cloud.
npx @crew-ai/crewright(Or run locally during dev):
cd src/bridge
npm install
npm run buildfrom crewai import Agent
from crewai.mcp import MCPServerStdio
crewright_server = MCPServerStdio(
command="npx",
args=["@crew-ai/crewright"]
# OR local: args=["node", "./path/to/dist/index.js"]
)
agent = Agent(
role="Browser Pilot",
goal="Navigate LinkedIn",
mcps=[crewright_server],
...
)Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"crewright": {
"command": "npx",
"args": ["@crewai/crewright"]
}
}
}Cursor
Go to Cursor Settings -> MCP -> Add new -> Command: npx @crewai/crewright
Note
v1.1.0 (Dev Branch) Update: Tool names have been renamed to match Playwright conventions.
| Tool | Description | Playwright Equivalent |
|---|---|---|
navigate(url) |
Moves the active tab to a new URL. | page.goto(url) |
get_page_content() |
Returns the text content of the page. | page.content() |
click(selector) |
Clicks a DOM element. | page.click(selector) |
fill(selector, value) |
Fills an input field. | page.fill(selector, value) |
press(key) |
Simulates specific key press (e.g. 'Enter'). | page.press(selector, key) |
evaluate(expression) |
Executes JavaScript in the page context. | page.evaluate(expression) |
screenshot() |
Captures a screenshot (Base64). | page.screenshot() |
hover(selector) |
Hovers over an element. | page.hover(selector) |
scroll(direction) |
Scrolls the viewport ('up', 'down', 'top', 'bottom'). | Custom Helper |
ask_human(question) |
Pauses execution and asks YOU for help. | CrewAI Exclusive |
- Architecture - Why "Parasitic" vs Headless?
- Roadmap - What's coming next?
- Contributing - Build the future of agentic browsing.
This project is open-source and maintained by Daniel Gonzalez (ArtemisAI). If you find this tool useful for your agents, please consider supporting the development!
- Sponsor: GitHub Sponsors
- Hire Me: AI Solopreneur & Developer
- ArtemisAI: Enterprise AI Solutions
Built with ❤️ by the ArtemisAI (Daniel Gonzalez) to help out all the bots 🤖 needing good tools.