Profiles with memory
Sign in, close your agent, come back to work. Cookies and application storage stay in a persistent profile on your server.
Open up the whole web: dashboards, forms, signed-in sessions and JavaScript applications. One MCP connector. Persistent profiles. Real browser actions.
OpenCode · Cursor · MCP clients · Your server
Prepare a campaign draft for our product
Open the marketing browser profile
✓Inspect the page and available fields
✓Fill the form from the campaign brief
✓Save a workflow for the next run
✓Published on npm. The script installs Chromium, generates your token and registers the service. Windows and Linux.
curl -fsSL https://pentest2bot.ink/install.sh | shirm https://pentest2bot.ink/install.ps1 | iexManual: npm i -g pentest2browser && pentest2browser setup — then pentest2browser serve. Node.js ≥ 22.13. Update any time: pentest2browser update.
Independent browser environments, cookies, proxies and session settings — the control familiar from browser profile managers and antidetect products, delivered through an agent interface. Replace manual clicks with instructions and verifiable outcomes.
Sign in, close your agent, come back to work. Cookies and application storage stay in a persistent profile on your server.
Assign an authenticated SOCKS5 or HTTP proxy to each environment. A local bridge handles credentials; the model works with a profile ID.
Your agent gets text and references to fields and buttons. Request screenshots, PDFs or video when the task needs visual evidence.
Save a sequence of actions, supply fresh data and replay it. Stop rediscovering the same interface on every run.
Open an authorized dashboard, transfer copy, configure an audience and upload creative. Your agent assembles the draft; publishing stays within the permissions and budget you assign.
Browser-UI workflows, not certified integrations. End-to-end validation on these platforms is not yet complete.
Registration, login, plan selection and sandbox checkout on your own test environment. Follow a real user journey and get errors, screenshots and page state.
Independent profiles let you test different roles and sessions.
Update catalog entries, move data into a CRM, download reports and check statuses using the actions available to your own account.
Accounts and permissions are provided by their owner.
Explore JavaScript apps, monitor your service and examine form behavior. Collect semantic text, browser errors and network metadata.
Stay within authorized access and agreed testing scope.
This local demonstration turns one data object into a completed form and a compact result. No external requests or account registration.
fill_form({
"session": "qa-demo",
"data": {
"name": "Browser-powered workflows",
"email": "[email protected]"
}
}){ "status": "ready" }HTTP clients are excellent for APIs and file downloads. A browser is the right tool when the task lives in an interface: JavaScript, tabs, forms and the current signed-in session.
| Task | curl / wget | Pentest2Browser |
|---|---|---|
| Call an API or download a file | Yes | Yes, through a browser flow |
| Execute page JavaScript | No page engine | Real Chromium |
| Click or select an element | Reconstruct the HTTP protocol | Selector, role or ref |
| Persist cookies | Cookie jar / file | Persistent browser profile |
| localStorage / IndexedDB | No browser app storage | Real application state |
| Give an agent context | Response text / HTML | Compact text + ARIA + refs |
| Repeat a business workflow | Custom request code | Saved workflows + variables |
Connect Streamable HTTP MCP or use the CLI. Keep your existing agent and give it tools for navigation, forms, profiles and workflows.
127.0.0.1:8790 · Bearer auth · Streamable HTTP
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"pentest2browser": {
"type": "remote",
"url": "http://127.0.0.1:8790/mcp",
"headers": {
"Authorization": "Bearer {env:P2B_TOKEN}"
}
}
}
}The service listens on 127.0.0.1:8790 only. Your agent connects over MCP; the token lives in the install env file.
Install the service from the Install section — the token is in ~/.pentest2browser/env (or your system env file)
Add the MCP config for your agent: opencode.json below, or mcp.json for Cursor
Copy the prompt into your project AGENTS.md or CLAUDE.md so the agent knows when to take the browser and when HTTP is enough
Use Pentest2Browser (MCP at http://127.0.0.1:8790/mcp) for tasks that need a live browser instead of an HTTP response:
- open a page, dashboard or JavaScript app and work inside it: clicks, selections, input;
- fill or validate a form, complete registration and login on your own staging or your own account;
- keep a session: create a persistent profile and come back to it later;
- repeat a journey: record a workflow and replay it with fresh data;
- collect evidence: screenshot, PDF, HAR or video of the steps.
Do not use the browser for plain API calls or file downloads — HTTP is enough there.
Rules: stay within the access you were given; never print tokens or passwords in answers; if a page demands a CAPTCHA — tell the owner and stop until a solver is configured and the scenario is approved.{
"mcpServers": {
"pentest2browser": {
"url": "http://127.0.0.1:8790/mcp",
"headers": { "Authorization": "Bearer YOUR_P2B_TOKEN" }
}
}
}# add to the service env file, then restart the service
P2B_SOLVER=capsolver
CAPTCHA_CAPSOLVER_KEY=YOUR_KEY
# or the alternative:
# P2B_SOLVER=nopecha
# CAPTCHA_NOPECHA_KEY=YOUR_KEYKeys are purchased at capsolver.com or nopecha.com and stay in your env file only. The service sends a challenge to a solver only in scenarios you approved; site-side acceptance is verified separately. Without a key the agent stops at the check and tells you.
# Webshare: one API key pulls the whole pool
pentest2browser proxy pool webshare --api-key YOUR_KEY --count 5
# new profiles then take the next free proxy automatically
pentest2browser profiles create p01
# or add any provider manually (http/socks5):
pentest2browser proxy add P2B_PROXY_P01 "http://user:pass@host:port"With Webshare one API key is enough: the command downloads the pool and enables P2B_PROXY_AUTO so new profiles get a proxy without manual lines. Key and endpoint credentials stay in your env file; the model only sees P2B_PROXY_WS_* references. A dead proxy means an honest PROXY_FAILED, never a silent direct fallback.
Cookie/storage isolation and restart persistence exercised by local browser tests.
SOCKS5 authentication, HTTP/CONNECT and failure without direct fallback covered by integration tests.
MCP initialization, tool calls, forms and workflow replay have test coverage.
These results describe local scenarios in the tested build. Ad publication and impressions on third-party platforms have not been verified.
Pentest2Bot brings automation and security research together. Follow the tools, discuss integrations and show us the work you want to delegate.
Ordinary forms and JavaScript applications run on CPU. Memory and latency depend on pages and concurrency. A virtual display is not a hardware GPU.
The focus is agent tools, persistent profiles and repeatable work. Native browser settings support QA; it does not promise hardware identity replacement or invisibility.
Cookies and browser storage-state import are supported, including localStorage/IndexedDB. Compatibility depends on the site and session expiry; normal 2FA and account checks still apply.
A real browser executes JavaScript. Challenge detection and solver adapters support authorized workflows; site acceptance is verified separately. The platform controls access, limits and review.
npm package: npm i -g pentest2browser, then pentest2browser setup. One-line installers for Windows and Linux are in the Install section. Implementation is BUSL-1.1; the specification and schemas are MIT.
Explore the API, discuss your workflow and connect a browser to the agent you already use.