
Doppelganger v0.8: Deterministic Automation, Now with AI Assistance
We just released Doppelganger v0.8.
If you are new here: Doppelganger is a free, self-hosted, block-based browser automation platform. It allows you to build complex web scrapers and automation flows without paying monthly SaaS fees or writing brittle Python scripts.
This release tackles the single biggest pain point of self-hosted automation: finding robust CSS selectors.
1. New Feature: AI Selector Generator#
Manually inspecting the DOM to find stable selectors is tedious. In v0.8, we’ve added a "Magic Dust" icon to every selector input (Click, Type, Hover, Wait).
- How it works: Click the icon and describe the element in plain English (e.g., "The green submit button").
- The Backend: We take a snapshot of the DOM and use your connected AI provider (e.g., Gemini) to analyze the structure.
- The Result: The system generates a highly resilient CSS selector for you.
Why this matters: Unlike "AI Agents" that analyze the screen every time they run (burning API credits), Doppelganger uses a "Generate Once" approach. You pay the token cost one time during setup. When your automation runs 10,000 times in production, it uses the saved, static selector.
- Runtime Cost: $0.
- Strict Rules: We’ve tuned the generation prompt to aggressively reject dynamic, randomized, or numeric IDs (like
#popup-170970). It prioritizes semantic text matching and structural pseudo-classes.
2. Smart Locational Interactions#
Standard automation tools (like raw Playwright) usually click the exact center of an element (50% x 50%). To anti-bot systems, this mathematical perfection is a dead giveaway.
We have rewritten the interaction engine to introduce Smart Locational Variability.
- The Logic: Instead of a fixed point, we define a "safe zone" (generally the inner 60% of the element, with a minimum 2px padding).
- The Action: Every click, hover, or type action now targets a random coordinate strictly within that boundary.
- The Outcome: Your bot exhibits "human jitter," never clicking the same pixel twice, while guaranteeing it never misses the button.
3. Massive Performance Boost: Contextual Cookies#
We have completely overhauled how the engine handles session data.
- Contextual Rendering: We now filter and render only the cookies relevant to the specific page you are viewing.
- The Impact: This provides a massive performance boost. By eliminating the overhead of serializing, transferring, and processing irrelevant cookie data for every single request, we have significantly reduced execution latency and memory usage.
4. Stability & UX Polish#
- Multiple API Keys: You can now manage arrays of API keys for your LLM providers. The backend will rotate through your keys to handle rate limits seamlessly.
- Headful Session Cleanup: We’ve tightened the process management for headful browser sessions. If you navigate away from the Task Editor, the session automatically terminates, preventing "zombie" processes from eating up your server's RAM.
- Action Block Overhaul: The AI prompt interface now properly elevates its Z-index, ensuring your text floats above subsequent blocks.
- Playwright Explicit Scopes: We fixed an edge case where text fields wouldn't receive input. The agent now forces the element into view, clicks it locationally, clears it via keyboard shortcuts, and types unconditionally.
What’s Next#
With v0.8 live, our focus shifts to:
- AI Data Extraction: Generating complex JavaScript for parsing tables and JSON.
- One-Time Task Gen: Generating full multi-step workflows from a prompt.