惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
B
Blog RSS Feed
WordPress大学
WordPress大学
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
I
InfoQ
MyScale Blog
MyScale Blog
量子位
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 叶小钗
J
Java Code Geeks
L
LangChain Blog
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - Cap-of-tea/GDD: AI-controlled browser farm on yo...
imVSall · 2026-05-17 · via Hacker News: Show HN

GDD

GDD — Giggly-Dazzling-Duckling

AI-controlled browser farm on your machine
Simulate multiple real users across 22 device types — test your site like it's launch day.

Release Platforms MCP License

Claude Code Cursor


How It Works

You: Open 3 iPhones and a desktop, navigate to myapp.com, test the signup form on all devices

Claude Code creates 4 browsers with device emulation, navigates each to your app, fills in the form, takes screenshots, checks console for errors — all in parallel.

gdd_add_players(3, device="iPhone 15 Pro")    → players [1, 2, 3]
gdd_add_players(1, device="Desktop 1080p")    → player  [4]
gdd_navigate(1, "https://myapp.com")          → all 4 browsers open your app
gdd_tap(1, "#signup-btn")                     → taps signup on iPhone
gdd_screenshot(1)                             → captures the result
gdd_get_console(1, level="error")             → checks for JS errors

GDD runs N isolated Chromium instances, each with its own profile, cookies, device emulation, geolocation, and network conditions. It exposes 36 MCP tools via HTTP on localhost:9700.

GDD Video Wall — 3 devices testing simultaneously


Install

Platform Download Run
Linux gdd-linux-x64.tar.gz chmod +x GDD.Headless && ./GDD.Headless
macOS ARM gdd-macos-arm64.tar.gz bash Scripts/setup-macos.sh && ./GDD.Headless
macOS Intel gdd-macos-x64.tar.gz bash Scripts/setup-macos.sh && ./GDD.Headless
Windows gdd-win-x64.tar.gz .\GDD.Headless.exe
Windows GUI gdd-windows-gui.tar.gz Extract, run GDD.exe (WebView2 required)

Self-contained binary, ~70 MB. No .NET installation needed. Chromium downloads automatically on first launch.

One-liner (Linux):

curl -sL https://github.com/Cap-of-tea/GDD/releases/latest/download/gdd-linux-x64.tar.gz | tar xz && chmod +x GDD.Headless && ./GDD.Headless

By default, browsers launch in headed mode (visible windows). Add --headless for CI/CD.


Connect to Your AI Client

Add to .mcp.json and restart your AI client:

{
  "mcpServers": {
    "gdd": {
      "url": "http://localhost:9700/mcp"
    }
  }
}

That's it. Start GDD, tell Claude or Cursor to test your app.

Config file locations
Client Path
Claude Code (project) <project>/.mcp.json
Claude Code (global) ~/.claude/.mcp.json
Cursor ~/.cursor/mcp.json

MCP config is read at session start. After editing, restart Claude Code / Cursor.

Auto-launch via stdio proxy (alternative)

Proxy scripts start GDD automatically when your AI client connects:

Windows:

{
  "mcpServers": {
    "gdd": {
      "command": "powershell",
      "args": ["-ExecutionPolicy", "Bypass", "-File", "C:/path/to/Scripts/mcp-proxy.ps1"]
    }
  }
}

Linux / macOS:

{
  "mcpServers": {
    "gdd": {
      "command": "bash",
      "args": ["/path/to/Scripts/mcp-proxy.sh"]
    }
  }
}

Add "--headless" to the args array for CI/CD.

Tip: On first launch, GDD downloads Chromium (~80 MB). If your AI client times out, run GDD manually first, then reconnect.

Autostart as service (macOS / Linux)

macOS (launchd):

bash Scripts/install-launchd.sh            # headed (default)
bash Scripts/install-launchd.sh --headless  # for CI/CD

Manage: launchctl list | grep gdd / bash Scripts/install-launchd.sh --uninstall

Linux (systemd):

mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/gdd.service << 'EOF'
[Unit]
Description=GDD Multi-Browser Testing Server
[Service]
ExecStart=/path/to/GDD.Headless
WorkingDirectory=/path/to/gdd-directory
Restart=on-failure
[Install]
WantedBy=default.target
EOF

systemctl --user daemon-reload
systemctl --user enable --now gdd
Direct HTTP (without AI client)
curl -X POST http://localhost:9700/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"gdd_add_players","arguments":{"count":1}}}'

GDD uses standard JSON-RPC 2.0 — works with curl, Python, Node.js, or any HTTP client.


Features

  • Multi-device — Run N isolated Chromium instances with 22 device presets (phones, tablets, desktops)
  • AI-native — 36 MCP tools for Claude Code, Cursor, or any MCP-compatible client
  • Cross-platform — Windows GUI with live video wall + headed/headless on Linux & macOS
  • Full interaction — Navigate, tap, type, swipe, scroll, hover, handle dialogs, take screenshots
  • Device emulation — Screen size, DPR, touch, user agent, geolocation, timezone, language
  • Network control — Simulate 4G, Fast 3G, Slow 3G, or offline per browser
  • Diagnostics — Console errors, network traffic, performance metrics, push notifications
  • Error beacon — Every tool response warns about JS errors across all browsers automatically
  • Self-updating — Built-in version check and one-command update

Player Management

Tool Description
gdd_add_players Add N browser instances with optional device preset
gdd_remove_player Remove a browser instance by player ID
gdd_list_windows List all active browsers with current state

Navigation

Tool Description
gdd_navigate Navigate to a URL
gdd_wait Wait for a CSS selector to appear (with timeout)
gdd_reload Reload page (hard=true bypasses cache)
gdd_back Navigate back
gdd_forward Navigate forward

Interaction

Tool Description
gdd_tap Tap element by CSS selector or coordinates
gdd_swipe Swipe gesture (up/down/left/right)
gdd_scroll Scroll page or element
gdd_type Type text into input fields
gdd_hover Hover over element
gdd_select Select option from <select> dropdown
gdd_dialog Handle JS alert/confirm/prompt dialogs

Reading & Screenshots

Tool Description
gdd_read Read text content of an element
gdd_read_all Read text from all matching elements
gdd_screenshot Capture JPEG screenshot at CSS pixel resolution

Emulation

Tool Description
gdd_set_device Set device preset (22 devices: phones, tablets, desktops)
gdd_set_viewport Set custom viewport dimensions
gdd_set_location Set geolocation, timezone, and locale
gdd_set_network Set network conditions (4G, 3G, offline)
gdd_set_language Set browser language

State & Diagnostics

Tool Description
gdd_get_state Browser state: URL, title, device, auth status
gdd_get_console Console output and uncaught exceptions
gdd_get_network Network requests with timing and status
gdd_get_notifications Received push notifications
gdd_get_performance Performance metrics (JS heap, DOM nodes, FPS)
gdd_clear_logs Clear console and/or network logs

Auth & Execution

Tool Description
gdd_quick_auth Auto-register and login with generated credentials
gdd_execute_js Execute JavaScript and return result

Browser Storage

Tool Description
gdd_storage Read/write/clear localStorage/sessionStorage
gdd_cookies Read or clear browser cookies

Help & Updates

Tool Description
gdd_get_manual Full GDD manual for AI self-learning
gdd_check_update Check for newer versions
gdd_update Download and install update (restarts GDD)

Device Presets (22)

Phones (11)

Device Resolution Scale Touch
iPhone SE 375 x 667 2.0x Yes
iPhone 14 390 x 844 3.0x Yes
iPhone 15 Pro 393 x 852 3.0x Yes
iPhone 15 Pro Max 430 x 932 3.0x Yes
iPhone 16 Pro 402 x 874 3.0x Yes
iPhone 16 Pro Max 440 x 956 3.0x Yes
Pixel 9 412 x 915 2.625x Yes
Pixel 9 Pro 412 x 915 2.625x Yes
Galaxy S24 360 x 780 3.0x Yes
Galaxy S24 Ultra 412 x 915 3.0x Yes
OnePlus 12 412 x 915 3.5x Yes

Tablets (6)

Device Resolution Scale
iPad Mini 744 x 1133 2.0x
iPad Air 820 x 1180 2.0x
iPad Pro 11" 834 x 1194 2.0x
iPad Pro 13" 1024 x 1366 2.0x
Galaxy Tab S9 800 x 1280 2.0x
Pixel Tablet 800 x 1280 2.0x

Desktops (5)

Device Resolution Scale
Laptop HD 1366 x 768 1.0x
Laptop HiDPI 1440 x 900 2.0x
Desktop 1080p 1920 x 1080 1.0x
Desktop 1440p 2560 x 1440 1.0x
Desktop 4K 3840 x 2160 2.0x

Architecture

Client (AI agent / curl / script)
         │ POST /mcp (JSON-RPC 2.0)
         ▼
    McpServer (:9700)
    Streamable HTTP + SSE
         │
         ▼
    McpToolRegistry (36 tools)
    Player · Navigation · Interaction · Read
    Emulation · Auth · State · Diagnostics
         │
         ▼
    IPlayerManager
    MainViewModel (WPF) / HeadlessPlayerManager
         │
         ▼
    IBrowserEngine Instances
    WebView2 (Win GUI)  |  Playwright (Headless/Headed)
    Each: own profile, CDP session, emulation

Three Modes

Windows GUI Headed (default) Headless
Binary GDD.exe GDD.Headless GDD.Headless --headless
Engine WebView2 Playwright Playwright
UI WPF video wall Visible Chromium windows HTTP API only
Platforms Windows Windows, Linux, macOS Windows, Linux, macOS

Tech Stack

Layer Technology
Runtime .NET 8.0 (self-contained)
UI (Windows) WPF + CommunityToolkit.Mvvm
Browser (GUI) Microsoft WebView2
Browser (Headless) Microsoft Playwright
Protocol MCP (Model Context Protocol)
Browser Control Chrome DevTools Protocol (CDP)
Logging Serilog
Project Structure
BrowserXn.sln
├── src/
│   ├── GDD.Core/              ← Shared library (net8.0)
│   │   ├── Abstractions/      ← IBrowserEngine, IPlayerManager, ...
│   │   ├── Mcp/               ← MCP server, tools, protocol
│   │   ├── Models/            ← Device, Location, Network presets
│   │   ├── Services/          ← CDP, Emulation, Monitoring services
│   │   └── Collections/       ← RingBuffer
│   ├── BrowserXn/             ← Windows GUI (WPF + WebView2)
│   │   ├── Engines/           ← WebView2ControlAdapter
│   │   ├── ViewModels/        ← MVVM (MainViewModel : IPlayerManager)
│   │   ├── Views/             ← XAML + VideoWallPanel
│   │   └── ...
│   └── GDD.Headless/          ← Cross-platform CLI (Playwright)
│       ├── Engines/           ← PlaywrightEngine
│       ├── Platform/          ← HeadlessPlayerManager
│       └── Scripts/           ← mcp-proxy.sh, mcp-proxy.ps1
└── .github/workflows/         ← CI/CD (5 platform targets + auto-release)

Configuration

appsettings.json next to the executable:

{
  "GDD": {
    "FrontendUrl": "about:blank",
    "BackendUrl": "http://localhost:8080/api/v1",
    "BotToken": "",
    "McpPort": 9700,
    "DataFolderRoot": ""
  }
}
Key Description Default
FrontendUrl Default URL for new browsers about:blank
BackendUrl Backend API for auth service http://localhost:8080/api/v1
BotToken Telegram bot token (for TG testing)
McpPort MCP server port (auto-fallback +1..+9) 9700
DataFolderRoot Browser profile storage root %LOCALAPPDATA%\GDD\Profiles (Win), ~/.local/share/GDD/Profiles (Linux/macOS)
Headed Visible browser windows true (override with --headless)
Building from Source

Requires .NET 8 SDK.

# Windows GUI (requires Windows 10/11 + WebView2)
dotnet publish src/BrowserXn/BrowserXn.csproj -c Release -p:PublishSingleFile=true -o ./publish/win-gui

# Cross-platform headless
dotnet publish src/GDD.Headless/GDD.Headless.csproj -c Release -r linux-x64 --self-contained -o ./publish/linux-x64
dotnet publish src/GDD.Headless/GDD.Headless.csproj -c Release -r osx-arm64 --self-contained -o ./publish/osx-arm64
dotnet publish src/GDD.Headless/GDD.Headless.csproj -c Release -r win-x64 --self-contained -o ./publish/win-x64

Chromium installs automatically on first run.


Documentation

License

imVS©, free for personal use.

Source Available — Non-Commercial. Free for personal use, education, and research. Commercial use requires a paid license. See LICENSE for full terms.

Commercial licensing: 2vsmirnov@gmail.com