Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心
工具与能力 #agent-tools#ai-agents#android-emulation#anti-detect-browser#browser-automation#browser-fingerprinting

dsh-antibrow

DeepSeek Harness 浏览器插件:提供持久身份、指纹伪装、本地配置、安卓模拟及住宅代理。

antibrow @antibrow ⬇ 1 ★ 66 main

安装

dsh plugin --profile web add github:antibrow/dsh-antibrow
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

DeepSeek Harness 浏览器插件:提供持久身份、指纹伪装、本地配置、安卓模拟及住宅代理。

该插件未提供要点说明,请参考仓库 README。

agent-toolsai-agentsandroid-emulationanti-detect-browserbrowser-automationbrowser-fingerprinting
  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/antibrow/dsh-antibrow
许可证MIT
主要语言main
下载量1
GitHub 星标66
最近推送2026-08-17
收录日期2026-09-19
分类工具与能力

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-antibrow

A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) plugin that
gives the agent a browser with an identity.

```
dsh plugin --profile  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

- **Unlimited profiles, on the free tier.** Not five, not fifty - profiles live
  on your disk, not on a plan, and creating one costs nothing. Give every
  account, every marketplace, every persona its own browser and stop reasoning
  about which cookie jar the agent is holding. Syncing them between machines and
  the managed residential proxies are the paid parts; the profiles themselves
  never are.
- **16 tools** for the model: sessions, profiles, proxies, page control, live
  view. All under `mcp__antibrow__*`, all reachable from Code Mode as ordinary
  async calls.
- **An Android phone, from the same API.** One argument - `deviceType:
  'android'` - and the agent is a phone: touch points, mobile client hints,
  phone viewport, phone GPU. See below.
- **Engine-level spoofing.** The user agent, platform, screen, fonts, canvas,
  WebGL and audio are answered by the engine itself. Nothing is injected into
  the page, so there is no injected script for a detector to find.
- **A coherent story, not a pile of overrides.** Timezone, locale and the
  reported network profile are derived from the proxy's real exit, because a US
  IP that reports Shanghai time is a contradiction a page can check in one line.
- **Passkeys survive.** WebAuthn credentials are stored with the profile, not in
  the machine's keychain, so a passkey registered on one run still signs in on
  the next - and, with sync on, on another computer.
- **Watch it work.** `start_live_view` streams the agent's browser to a
  dashboard, so a long unattended run is something you can look at instead of
  guess about.
- **Identities from real machines.** On a paid plan a profile can be minted from
  a captured real-device fingerprint rather than a generated one - a whole
  coherent row off one physical machine, not a field-by-field invention.
- **Four builds, three operating systems**: Windows, macOS, and Linux on both
  x86_64 and arm64. The same profile runs on any of them.
- **Portable, and not only to agents.** Export a profile as a file and import it
  on another machine; leave it unsynced and it is still there, in the desktop
  app, for a human to open and finish by hand. The agent's browser and yours can
  be the same browser.

### The phone

```json
{ "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  add dsh-antibrow
export ANTI_DETECT_BROWSER_KEY=
dsh --profile
```

## 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

- **One browser at a time on a free key.** The concurrency limit is carried by
  the license and counted per machine, across every application using the same
  engine. Fan an agent out into parallel sessions only on a plan whose limit
  covers them, or the extra launches are refused.
- **The engine downloads on first launch** (190-320 MB depending on platform),
  into a shared cache directory. The first `launch_browser` of a fresh install
  pays for that; later ones do not.
- **A persistent identity is a real identity.** Two agents driving one profile
  at once is the same mistake as two people sharing one browser: last one to
  close wins. Give each its own.

## 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:

```yaml
- 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:

```yaml
- 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=/dist/cli.js
dsh --profile  --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

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。