Create, manage, and launch isolated browser profiles with unique fingerprints.
Free, self-hosted alternative to Multilogin, GoLogin, and AdsPower.
Each profile is an isolated CloakBrowser instance with its own fingerprint, proxy, cookies, and session data. Profiles persist across restarts. Windows and macOS launch browsers directly in native desktop windows; Linux keeps the Docker/KasmVNC server experience.
Clone the repository, then start the platform launcher:
Windows: run-windows.bat
macOS: ./run-macos.sh
The first run creates a local Python environment, installs dependencies, builds the React UI, starts Manager on 127.0.0.1:8080, and opens it in your default browser. Profiles are stored in %LOCALAPPDATA%\CloakBrowser Manager on Windows and ~/Library/Application Support/CloakBrowser Manager on macOS.
docker run -p 127.0.0.1:8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-managerOr build from source:
git clone https://github.com/CloakHQ/CloakBrowser-Manager.git
cd CloakBrowser-Manager
docker compose up --buildOpen http://localhost:8080, create a profile, and click Launch.
Early alpha — this project is under active development. Expect bugs. If you find one, please open an issue.
A VPN only changes your IP. Incognito only clears cookies. Chrome profiles share the same hardware fingerprint underneath. Platforms use 50+ signals to link your accounts — canvas, WebGL, audio, GPU, fonts, screen size, timezone.
Each CloakBrowser profile generates a completely different device identity. To the website, each profile looks like a different computer.
| Solution | What it changes | Accounts linked? |
|---|---|---|
| VPN | IP address only | Yes — same fingerprint |
| Incognito | Clears cookies | Yes — same fingerprint |
| Chrome profiles | Separate bookmarks/cookies | Yes — same hardware fingerprint |
| CloakBrowser | Everything — full device identity per profile | No |
- Profile management — create, edit, delete browser profiles with unique fingerprints
- Per-profile settings — fingerprint seed, proxy, timezone, locale, user agent, screen size, platform
- One-click launch/stop — each profile runs as an isolated CloakBrowser instance
- Session persistence — cookies, localStorage, and cache survive browser restarts
- Platform-native browsing — Windows and macOS profiles open in normal desktop windows
- Linux server viewing — interact with Docker-launched browsers through KasmVNC in the web GUI
- Playwright/Puppeteer API — connect to any running profile programmatically via CDP, while still watching it live in the browser
- Optional authentication — protect the web UI and API with a single token, or run wide open locally
- Powered by CloakBrowser — 32 source-level C++ patches, passes Cloudflare Turnstile, 0.9 reCAPTCHA v3 score
- Backend: FastAPI (Python)
- Frontend: React + Tailwind CSS
- Browser viewer: native windows on Windows/macOS; noVNC/KasmVNC on Linux Docker
- Database: SQLite
- Browser engine: CloakBrowser (stealth Chromium binary)
python -m venv .venv && source .venv/bin/activate
pip install -r backend/requirements.txt
uvicorn backend.main:app --reload --host 127.0.0.1 --port 8080cd frontend
npm install
npm run devdocker compose up --build- Windows or macOS native: Python 3.10+, Node.js 18+
- Linux server: Docker 20.10+
- ~2 GB disk (application + browser binary)
- ~512 MB RAM per running profile
Pull the latest image and restart:
docker pull cloakhq/cloakbrowser-manager
docker stop <container-id>
docker run -p 8080:8080 -v cloakprofiles:/data cloakhq/cloakbrowser-managerYour profiles and session data are stored in the cloakprofiles volume and persist across updates.
Every running profile exposes a CDP (Chrome DevTools Protocol) endpoint. Connect Playwright or Puppeteer to automate a profile while watching it live in the browser.
from playwright.async_api import async_playwright
async with async_playwright() as pw:
browser = await pw.chromium.connect_over_cdp(
"http://localhost:8080/api/profiles/<profile-id>/cdp"
)
page = browser.contexts[0].pages[0]
await page.goto("https://example.com")const { chromium } = require("playwright");
const browser = await chromium.connectOverCDP(
"http://localhost:8080/api/profiles/<profile-id>/cdp"
);
const page = browser.contexts()[0].pages()[0];
await page.goto("https://example.com");The CDP URL is available from the running-profile view. The same browser session is accessible through its native window on Windows/macOS or through VNC on Linux Docker, and programmatically through the API on every platform.
The container binds to localhost only. To access from a remote server:
ssh -L 8080:localhost:8080 your-serverThen open http://localhost:8080.
By default, there is no authentication (ideal for local use). To protect the web UI and API when hosting on a network, set the AUTH_TOKEN environment variable:
docker run -p 8080:8080 -v cloakprofiles:/data -e AUTH_TOKEN=your-secret-token cloakhq/cloakbrowser-managerOr in docker-compose.yml:
environment:
- AUTH_TOKEN=your-secret-tokenWhen AUTH_TOKEN is set:
- The web UI shows a login page. Enter the token to unlock.
- API consumers pass the token via
Authorization: Bearer <token>header. - VNC WebSocket connections are authenticated via the login cookie.
- The
/api/statusendpoint remains unauthenticated (for Docker healthcheck).
Note: The auth token is transmitted in cleartext over HTTP. If you expose the Manager to the internet, put it behind a reverse proxy with HTTPS (Caddy, nginx, Traefik).
- This application (GUI source code) — MIT. See LICENSE.
- CloakBrowser binary (compiled Chromium) — free to use, no redistribution. See BINARY-LICENSE.md.
The GUI application requires the CloakBrowser Chromium binary to function. The binary is automatically downloaded on first launch and is governed by its own license terms. If you fork or redistribute this application, your users must comply with the CloakBrowser Binary License.
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
- lhq1363511234-arch — native Windows support foundation
- quorentindupres-dev — native macOS workflow and Manager integration concepts
- CloakBrowser — github.com/CloakHQ/CloakBrowser
- Website — cloakbrowser.dev
- Bug reports — GitHub Issues
- Contact — cloakhq@pm.me


