🔒 Self-hosted anti-detect browser profiles. The open-source alternative to AdsPower & Multilogin. Use it as a library, as a CLI, or as an MCP server your AI agent drives.
Like n8n for automation or Affine for notes, this is AdsPower for developers — self-hosted, open-source, and privacy-first.
| ❌ AdsPower/Multilogin | ✅ browser-profiles |
|---|---|
| $99+/month | Free forever |
| Cloud storage (data not yours) | Local storage (your data) |
| GUI only | Code-first (Puppeteer/Playwright) |
| Vendor lock-in | Open source (MIT) |
| No customization | Full control |
| Site | Score |
|---|---|
| browserleaks.com | 100% |
| pixelscan.net | 100% |
| browserscan.net | 95% |
| creepjs | 85% |
95% is the Puppeteer ceiling; 100% needs a modified Chromium. What is protected, how it is injected, and the honest limits: docs/anti-detect.md.
npm install @aitofy/browser-profiles rebrowser-puppeteer-coreimport { quickLaunch } from '@aitofy/browser-profiles';
const { page, close } = await quickLaunch({
proxy: { type: 'http', host: 'your-proxy.com', port: 8080 },
});
await page.goto('https://browserscan.net');
await close({ terminate: true });Full API: docs/library.md.
npm install -g @aitofy/browser-profiles
browser-profiles create "Acme Main" --id acme-main --proxy http://user:pass@proxy.com:8080
browser-profiles open acme-mainEvery command, flag and the --json contract: docs/cli.md.
claude mcp add browser-profiles -- npx -y @aitofy/browser-profiles mcpThen ask your agent:
Create a profile called Acme Main on my US proxy. Open it and give me the CDP endpoint. Drive it with Playwright MCP and log in to the account.
Other clients, the tool list and the lifecycle rules: docs/mcp.md.
| Page | What is in it |
|---|---|
| Library | quickLaunch, BrowserProfiles, Puppeteer and Playwright, the command registry, Result |
| CLI | Command tree, aliases, every flag, --json contract, --detached |
| MCP server | Setup per client, the tools table, error shape, browser ownership |
| Playwright MCP | Hand a wsEndpoint to Playwright MCP or any CDP client |
| Configuration | Storage path, BROWSER_PROFILES_HOME, Chrome path, logging, disk layout |
| Anti-detect | What is protected, per-tab injection, scores, limits |
| Browser lifecycle | Who owns the browser, reuse, closing across processes, detached |
| Troubleshooting | Every common error with its exact text and the fix |
| ADR 0001 | Architecture: one registry generates the CLI, MCP and library API |
| Examples | Runnable files: quick launch, proxy profile, Playwright, JSON pipeline, MCP |
Contributions are welcome — start with the Contributing Guide.
To report a vulnerability privately, see SECURITY.md.
MIT © Aitofy