A programmatic browser instance manager — with a live viewer and local dashboard
Damru gives developers a code-first browser instance manager: spin up and orchestrate pools of real Android browser instances with DamruPool, watch and drive any one of them live with Damru View, and run the whole environment from the local Damru UI dashboard.
Where GUI antidetect tools (Multilogin, GoLogin, AdsPower) put instance management behind a point-and-click panel, Damru keeps it in your codebase — every instance is defined, launched, and scaled from Python, then observed through an optional local UI. Built for web scraping within terms, automation/QA testing, and anti-bot research.
What is a browser instance manager?
A browser instance manager is the layer that creates, tracks, scales, and shuts down isolated browser sessions so each one carries its own identity and state.
In commercial antidetect tools this is a GUI that stores "profiles." In Damru, an instance is a real Android browser inside a Redroid container, and the manager is your code: DamruPool maintains the containers, rotates per-worker proxies, and hands you a Playwright BrowserContext from pool.session().
from damru import DamruPool
async with DamruPool(mode="auto", max_devices=10) as pool:
async with pool.session() as ctx: # one isolated Android instance
page = await ctx.new_page()
await page.goto("https://example.com") How do I watch and control a running instance? (Damru View)
Damru View opens a live scrcpy stream of any running worker, so you can watch automation in real time or take manual control.
Run python -m damru view --serial <worker> to drive the device, or add --no-control for a watch-only stream that is safe to leave open during an automation run. It is the developer equivalent of "open this profile's browser window" in a GUI tool — except it is a genuine Android screen, not a desktop Chromium window.
# Watch + control a worker
python -m damru view --serial wsl:127.0.0.1:5600
# Watch-only (safe during a live run)
python -m damru view --serial wsl:127.0.0.1:5600 --no-control What is the Damru UI dashboard?
Damru UI is a local-only web dashboard (http://127.0.0.1:<port>) for setting up, running, and inspecting your instances without writing throwaway scripts.
Launch it with python -m damru ui. It runs on an allowlisted backend and never exposes the environment to the network by default.
| Panel | What it does |
|---|---|
| Setup | Environment health and dependency status at a glance |
| Workers | Start/stop Redroid containers and read live worker status |
| Work Lab | Stealth URL navigation, quick stealth checks, random-profile apply, screenshot capture, gallery cleanup, internet repair, browser-viewer streaming, native scrcpy command copy |
| Logs | Inline log viewer |
python -m damru ui # opens the local dashboard The UI is for setup, debugging, and manual inspection — production automation should still run through AsyncDamru / DamruPool.
Code-first instance management vs GUI antidetect tools — an honest comparison
Damru and tools like Multilogin, GoLogin, and AdsPower solve overlapping problems with opposite philosophies: Damru manages instances in code and adds an optional local UI; they manage profiles in a GUI and add an optional API. Neither is "better" universally — pick by workflow.
| Dimension | Damru (code-first) | Multilogin / GoLogin / AdsPower (GUI-first) |
|---|---|---|
| Primary interface | Python (DamruPool) + optional local UI | Point-and-click desktop/cloud dashboard |
| An instance is | Real Android browser in a Redroid container | Patched desktop Chromium/Firefox "profile" |
| Live viewing | Damru View (scrcpy stream, control or watch-only) | Open the profile's browser window |
| Scaling | max_devices, per-worker proxy rotation, in code | Add seats / profiles in the panel |
| Where state lives | Your infrastructure (self-hosted) | Vendor cloud (profiles synced) |
| Cost | Free, open source | Subscription (≈ $99+/mo typical) |
| Best fit | Developers, CI/CD, researchers | Non-technical teams who prefer a GUI |
| Reproducibility | Versioned in your repo | Manual, in the panel |
If your team is non-technical and needs durable, shareable profiles with a managed cloud, a GUI tool is the pragmatic choice — Damru is for teams who want the instance layer in code, owned end to end. For developers who already script with Playwright, the migration cost is near zero because pool.session() returns a standard BrowserContext.
FAQ
Does Damru have a dashboard or GUI?
Yes — Damru UI is a local-only web dashboard (python -m damru ui) for setup, worker control, a Work Lab, and logs. It is meant for manual inspection and debugging; production runs use the Python API.
Can I watch automation run live?
Yes — Damru View (python -m damru view) streams a live scrcpy view of any worker, with a --no-control watch-only mode that is safe during runs.
Is Damru an alternative to Multilogin, GoLogin, or AdsPower?
For developers, yes — it covers the instance-management job in code with an optional local UI, instead of a GUI profile panel. It is not a multi-accounting product; use it for lawful scraping, QA, and anti-bot research.
How many instances can I run in parallel?
As many as your hardware supports — DamruPool(max_devices=N) orchestrates N Redroid containers with per-worker proxy rotation.
Is the dashboard exposed to the internet?
No — the Damru UI binds to 127.0.0.1 and uses an allowlisted backend by default.
Manage your browser fleet from code
Open source, Python, real Android. Install in one command, then open the dashboard.
Related: how it works · device profiles · full comparison · docs.