dsh-antibrow README

The project's README from github.com/antibrow/dsh-antibrow. As one markdown file: README.md.

dsh-antibrow

A DeepSeek Harness plugin that gives the agent a browser with an identity.

The browser is AntiBrow: a Chromium fork with fingerprint configuration at engine level, driven through the standard Playwright API. SDK docs are at antibrow.com/docs, and the dated detection measurements - including the checks that fail - are at antibrow.com/reports.

dsh plugin --profile <name> add dsh-antibrow

Why not a plain browser plugin

Every other browser plugin hands the agent a fresh Chromium. That is fine for reading a public page and useless for anything behind a login: the session dies with the process, the fingerprint is a stock automation build, and the traffic leaves from your machine.

A plain Playwright plugin dsh-antibrow
Identity between runs new browser every time one persistent profile per name
Logins gone when the process ends cookies and passkeys persist, optionally synced across machines
Fingerprint stock build, patched from page scripts spoofed inside the engine, before any page script runs
Egress your own IP residential proxy, with timezone, language and reported connection following its exit
Parallel identities one data directory to share one isolated profile per agent or per account
Tabs start from nothing last session restored, so the agent resumes where it stopped

The difference shows up the first time an agent has to be someone: check a mailbox, watch a dashboard, keep a marketplace account warm. A browser with no memory has to log in again on every run, and logging in again is exactly what a site treats as suspicious.

What it brings

The phone

{ "profile": "shop-mobile", "deviceType": "android", "temporary": true }

Android profiles are built from whole captured devices - the screen, the GPU report and the client hints agree with each other because they came off the same physical phone, and the plugin picks a row rather than assembling one. Three of them ship inside the package, so a free-tier agent can create an Android profile with no network round trip at all.

The device type is fixed when the profile is created and never drifts afterwards: a profile that was a phone stays that phone. Android needs engine 151 or newer - if none is available the launch fails rather than quietly handing you a desktop browser that claims to be a phone.

Measured

On a macOS host, through a US residential proxy, 2026-08-15, engine 151:

Check Result
whoer.net disguise 90%
creepjs headless signal 0%
creepjs stealth signal 0%
creepjs platform hints Arial, "Segoe UI" - no font from the host
Reported platform vs user agent agree (Win32 / Windows)
Timezone vs proxy exit agree (America/Los_Angeles)

The 10% whoer deducts is WebRTC, which had no route to a STUN server on that run. Reproduce all of it with tests/smoke - the harness is in this repository, and it fails loudly rather than printing a number nobody checks.

Install

dsh plugin --profile <name> add dsh-antibrow
export ANTI_DETECT_BROWSER_KEY=<key>
dsh --profile <name>

The tools

Sessions launch_browser close_browser list_sessions
Profiles list_profiles create_profile delete_profile
Proxies list_proxies claim_proxy
Page navigate click fill evaluate get_content screenshot
Live view start_live_view stop_live_view

launch_browser takes a profile name and creates it on first use. Pass temporary: true for automation work: those profiles are local-only and stay out of the desktop app's list, while still persisting on disk.

Before you rely on it

Configuration

The bundle inserts one row, mcp-antibrow, configuring the harness's MCP client against the anti-detect-browser CLI. Override it from your profile's own cordis.patch.yml by targeting that id - a patch replaces the row's whole config, so restate every key you keep:

- id: mcp-antibrow
  config:
    serverName: antibrow
    transport: stdio
    command: npx
    args: ['-y', 'anti-detect-browser@^2.19.1', '--mcp']
    env:
      ANTI_DETECT_BROWSER_KEY: !!js process.env.MY_OWN_VAR
      ANTI_DETECT_BROWSER_CACHE_DIR: /var/lib/antibrow

Turn it off without uninstalling:

- id: mcp-antibrow
  disabled: true

To run the SDK from a checkout instead of npm, use the overlay this package ships:

export ANTIBROW_SDK_CLI=<checkout>/dist/cli.js
dsh --profile <name> --patch node_modules/dsh-antibrow/cordis.patch.local.yml

Compatibility

Verified against dsh 0.1.0-rc.6 and anti-detect-browser 2.19.1, 2026-08-15. DeepSeek Harness is a developer preview and says it will break compatibility; this line is the claim, and it rots without a re-test.

The SDK version floor is real: 2.19.1 is the first release whose close path ends the browser process instead of only dropping the debugging connection. On an older one a closed session leaves the browser running, which keeps that profile's directory locked - the next launch of it dies before the debugging connection is ready - and holds a concurrency slot for the rest of the run.

License

MIT

dsh-antibrow (antibrow/dsh-antibrow)

Searching Database…

这是什么?dsh-antibrow 是一个 DeepSeek Harness 插件,通过 AntiBrow(一个带有引擎级指纹伪装的 Chromium 分支)为 AI 智能体提供持久的浏览器身份。它提供 16 个 MCP 工具,涵盖会话、配置文件、代理和页面控制,通过标准 Playwright API 驱动,并支持可选的住宅代理出口。
这是浏览器插件,还是一个真正的浏览器?两者都是:AntiBrow 是一个真正的 Chromium 分支,指纹伪装直接内置于引擎本身;而 dsh-antibrow 是通过标准 Playwright API 驱动该浏览器的 DSH/MCP 插件。
怎么安装它并启动我的第一个浏览器配置?通过 npm 把它安装为 DSH 插件;安装包会在 harness 的 MCP 客户端配置中插入一行 mcp-antibrow,指向 anti-detect-browser CLI。之后带一个配置名调用 launchbrowser,首次使用时会创建该配置,并且只在第一次启动时下载引擎(190-320MB)。
它需要哪些 DSH 和 SDK 版本?它已针对 DeepSeek Harness 0.1.0-rc.6 和 anti-detect-browser SDK 2.19.1 及以上版本验证;必须用 2.19.1,因为这是第一个在关闭时真正终止浏览器进程、而不只是断开调试连接的版本。
免费方案有什么限制?跑多个智能体呢?免费许可证密钥同时只允许一个浏览器会话,按机器计数,并由共享该引擎的所有应用共同占用,因此并行的智能体需要限额足以覆盖它们的付费方案。另外,两个智能体绝不能同时驱动同一个配置文件——那和两个人共用一个浏览器是同样的错误。
它能在哪些操作系统上运行?三个操作系统共四种构建:Windows、macOS 和 Linux,各自都有 x86-64 和 arm64 两个版本——同一个配置文件在任何平台上都可以直接使用。
我的登录状态和通行密钥存在哪里?Cookie 和 WebAuthn 通行密钥存储在配置文件本身里,而不是机器的操作系统钥匙串中,因此某一次运行中注册的通行密钥在下一次运行时仍能登录——启用同步后,在另一台电脑上也可以。
Android 设备模拟能用来做什么?创建配置文件时传入 deviceType: android,就会把它变成一台基于真实采集手机构建的完整 Android 设备——触点、移动端 client hints、手机视口和 GPU 全都相互一致,因为它们来自同一台机器。这要求引擎为 151 或更新版本,否则启动会直接失败。
它实际对抗指纹检测的效果怎么样?在 2026-08-15 的一次测试中,在 macOS 上经由美国住宅代理,它在 whoer.net 上得到 90%,在 CreepJS 的 headless/stealth 信号上为 0%,缺失的 10% 被归因于那次运行中 WebRTC 没有 STUN 路由。
号称无限量的免费档真的无限量吗?是的——创建本地配置文件分文不花,保留多少个也没有上限。只有跨机器的配置文件同步和托管的住宅代理才是付费功能。
为什么不直接用一个普通的 Playwright 自动化插件?普通的浏览器插件每次运行都给智能体一个全新的 Chromium,于是登录状态消失、指纹是标准的自动化构建、流量也从你自己的 IP 发出。dsh-antibrow 则为每个身份保留一个持久的、经过伪装的配置文件,使会话、指纹和代理出口在多次运行之间保持一致。
Creator
antibrow
Size
0.1 MB
Stars
11
Updated
CommitSep 12
Age
2mo
Commits · 90 Days