Grasp is an open-source and self-hosted agentic browser. With built-in support for MCP and A2A support, it can seamlessly integrate with any other AI apps or agents.
Here’s a quick example of how Grasp works seamlessly with Claude Desktop to make planning your next Airbnb trip:
connect-grasp-to-claude.mp4
Some of the key features include:
- Isolated browser environment. Grasp is dockerized, ensuring it never interferes with your local workspace. It can be easily hosted on your machine or in the cloud.
- Human-like automation. Grasp operates the browser just like a real human. You can even provide credentials for the agent to log in and retrieve personalized content.
- Natural language control. No code needed — simply describe what you want in plain language, and the agent will handle the rest.
🐳 Before you start:
Make sure Docker is installed and running on your machine.
Run the following commands to pull and start Grasp:
- Pull the image
docker pull getgrasp/grasp
- Run the container
docker run -d \
--name grasp-agent \
-p 3000:3000 \
-e ANTHROPIC_API_KEY=YOUR_ANTHROPIC_KEY \
getgrasp/grasp
Replace YOUR_ANTHROPIC_KEY with your actual Anthropic API Key.
Once the container is running, open http://localhost:3000 in your browser to access the Grasp console.
You can use providers other than Anthropic.
To use a different provider, copy the .env.example
file to .env
and set the corresponding environment variables. Then run Grasp using .env
file:
docker run -d \
--name grasp-agent \
--env-file .env \
-p 3000:3000 \
getgrasp/grasp
The supported providers are:
- Anthropic
- OpenAI
- Amazon Bedrock
- Azure OpenAI
Supporting more providers are working in progress. Free free to file an issue to request a new provider.
Grasp can automatically log in to websites for you. This makes it easier to retrieve personalized content or take actions on websites that require authentication. E.g. star a repo on GitHub, check in to a system, get your following list on X, etc.
The action to input your credentials is performed locally, and your password will NOT be sent to any LLM, so it's secure and safe.
To enable the auto-login:
- Copy the
.credentials.example.yml
file to.credentials.yml
and fill in your credentials for each website.
cp .credentials.example.yml .credentials.yml
- Create a
browser-user-data
directory to store the browser's user data. This will enable the persistent mode so you don't need to login again.
mkdir -p browser-user-data
- Run Grasp by mounting the
.credentials.yml
file andbrowser-user-data
directory.
docker run -d \
--name grasp-agent \
--env-file .env \
-p 3000:3000 \
-v $(pwd)/.credentials.yml:/app/.credentials.yml \
-v $(pwd)/browser-user-data:/app/browser-user-data \
getgrasp/grasp
Grasp is moving fast — we're shipping new features, expanding integrations, and refining the agent experience every week. ⭐ Star the repo to stay updated and support the project!
- Connect Claude Desktop to Grasp: Use Grasp as a local MCP tool server and enable Claude to operate the browser.
- Connect agent to Grasp: Integrate Grasp via A2A for agent-to-agent browser automation.
We’d love to hear from you。
Join the Discord to share ideas, ask questions, or just hang out.
Licensed under the the Apache-2.0 license.