Integrate Tabbit browser automation into DeepSeek Harness, automatically detecting browser version and runtime, and downloading compatible installation packages in the background when missing.
$ dsh plugin --profile web add github:Tabbit-Browser/dsh-pluginRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
A DSH package branded as "Tabbit Browser" in the DSH plugin marketplace that equips DeepSeek Harness with a Skill capable of controlling the local Tabbit browser for automation operations, and automatically downloads the installer when the browser is missing or using an outdated version.
tabbit-browser in DSH, enabling the model to invoke it via /tabbit-browser or skill({ name: "tabbit-browser" })tabbit_browser_install tool to automatically check whether a stable Tabbit version 1.9.0 or higher is installed on the local machinetabbit-cli daemon runtime and Playwright Runtime processes (browser-runtime-service.mjs / nodejs-playwright-runtime.mjs)refresh: true to actively invalidate and re-detectDownloads directory via DSH background tasks@deepseek-ai/cordis, @deepseek-ai/dsh-tools, @deepseek-ai/dsh-jobs, @deepseek-ai/dsh-skillinject: ['skills', 'tools', 'jobs'], inject Skill Provider via cordis.patch.yml at host startup, and register bundled Skill and detection tool via apply(ctx)index.js (main entry) + installer.js (environment detection and installer download implementation)When users want AI agents to directly operate the local browser for web interaction, data extraction, automation testing, or evaluation tasks, this plugin exposes the Tabbit browser as a controlled Playwright runtime to the DSH model. It fits the bridging scenario where "the agent runs in sandbox, the browser runs on host GUI"; when users haven't manually installed Tabbit, the plugin can also handle the download phase for them.
| Dependency | Minimum Version | Description |
|---|---|---|
| DSH Host | dsh CLI | Must be able to run in an environment where dsh --version executes |
| Cordis | >=4.0.0 | Internal DSH dependency, provides Skill/Tool/Job registration capability |
@deepseek-ai/dsh-jobs | >=0.1.0-rc.5 | Background task support, this plugin starts downloads via ctx.jobs.start |
@deepseek-ai/dsh-tools | >=0.1.0-rc.5 | Tool registration framework |
@deepseek-ai/dsh-skill | >=0.1.0-rc.5 | Skill Provider registration framework |
| Node.js | >=20 | Declared by package.json#engines.node |
| Platform | macOS (arm64/x64) / Windows x64 | Linux is not in the installer list; source code will throw errors |
dsh plugin --profile web add github:Tabbit-Browser/dsh-plugin
| Config | Type | Description | Default |
|---|---|---|---|
tabbit_browser_install.refresh | boolean | Force re-run browser and runtime detection, discarding current session cache. Only use when Runtime/launcher errors occur or browser is updated/restarted | false |
This plugin has no DSH global configuration items; all adjustable parameters are passed as arguments when calling the tool.
Q: Do I need to manually install Tabbit browser before using it?
A: Not required. The plugin first tries to detect whether Tabbit stable version 1.9.0 or higher is already installed on the system; if not, it automatically starts a background task to download the appropriate regional and architecture installer to the Downloads directory for the user to manually complete the native installation.
Q: Which operating systems are supported?
A: Only macOS (Apple Silicon and Intel) and Windows 64-bit. The source code only declares installer specifications for these three platform/arch combinations; Linux will error out due to not finding matching download configuration.
Q: Do I need to separately install tabbit-browser Skill after installing the plugin?
A: No. The plugin comes with a bundled Skill pre-installed; skill-tabbit-browser is inserted into the DSH host via cordis.patch.yml, and the Skill becomes visible after DSH starts.
Q: Will detection results run every time?
A: No. Successful detection results are cached in WeakMap per agent session; subsequent calls directly return cached: true. Only when Runtime/launcher fails or the browser changes, passing refresh: true will invalidate and re-run.
Q: What happens if multiple downloads run simultaneously in the same agent?
A: The plugin tracks in-progress jobs; repeated calls will return the existing jobId and prompt "a download is already in progress", preventing concurrent download tasks.
Q: How to troubleshoot CLI connection failure on Windows (BROWSER_RUNTIME_UNAVAILABLE)?
A: The plugin doesn't proactively request Full Permission. First normally call tabbit-cli tasks for connection probing; if the browser, launcher, and Runtime processes are all detected but this error persists, ask the user to switch the current DSH session to Full Permission and stop the current task, don't retry or switch browsers.
Q: What's the difference between installers downloaded by Mainland China and overseas users?
A: The plugin reads the system locale: Mainland China CN downloads the domestic version from tabbit.com ("Tabbit Browser", bundleId com.tab-browser.Tabbit), other or unknown locales download the international version from tabbit.ai ("Tabbit", bundleId com.tabbit-ai.Tabbit). Both versions are supported, but the display name and bundleId differ.
Q: How to uninstall?
A: Use dsh plugin --profile web remove github:Tabbit-Browser/dsh-plugin. The plugin doesn't modify persistent data outside the system; detection cache only exists in the current DSH agent session memory and becomes invalid upon restart.
Beginner — The installation command is a single line, and the plugin automatically handles Skill registration and browser detection; you only need to read the README's "Prerequisites" and "Scope" sections when troubleshooting Runtime connection or download failures.
Tabbit and Tabbit Browser; dev builds are ignored (installer.js hardcodes channel: 'stable').dmg / .exe; the plugin won't open it (README.md:67 explicitly states)tabbit_browser_install; it doesn't provide tools like tabbit_browser_evaluate for direct browser invocation (README.md:96 explicitly states)read-only and workspace-write modes on Windows use restricted tokens and cannot write to Runtime named pipes; only when Browser, launcher, and Runtime are all detected but CLI connection fails, prompt the user to switch to Full Permission and stop the task, don't retryinstaller.js only defines three platform/arch combinations for macOS and Windows; Linux is neither in the detection scope nor has available download sources (installer.js:113-140)playwrightRuntimeAmbiguous: true and prompt setting the TABBIT_PLAYWRIGHT_INSTANCE environment variable, rather than misidentifying as Runtime not running
这是一个 Tabbit 浏览器为 Deepseek Harness 提供的一个 plugins。你可以在 Deepseek Harness 中安装这个插件,给 Deepseek Harness 提供控制 Tabbit 浏览器的能力。
先检查本地是否已经安装 DSH:
dsh --version
如果命令能够正常输出版本号,直接进入下一步。如果提示找不到命令,请根据操作系统安装。
安装 Node.js 20 或更高版本,然后安装 DSH:
brew install node
npm install -g @deepseek-ai/dsh
在 PowerShell 中安装 Node.js LTS:
winget install OpenJS.NodeJS.LTS
安装完成后重新打开 PowerShell,再安装 DSH:
npm install -g @deepseek-ai/dsh
安装后再次运行 dsh --version,确认 DSH 可以正常使用。
dsh plugin --profile web add github:Tabbit-Browser/dsh-plugin
dsh web
安装插件后,bundle 会自动加载 Skill Provider,模型可通过
skill({ name: "tabbit-browser" }) 或 /tabbit-browser 加载说明。Skill 会检查国内或
国际正式版、要求至少一个版本达到 1.9.0,并检查 tabbit-cli 常驻运行时。
没有安装或版本过低时,模型会直接创建 DSH 后台任务:macOS 读取系统地区,Windows
调用系统地区 API;中国大陆下载国内正式版,其他地区或无法识别地区时下载国际正式版。
安装包会保存到用户的 Downloads 目录,任务完成后 DSH 会通知安装包路径。
1.9.0 或更高版本的正式版 Tabbit 浏览器。国际版 Tabbit 和国内版
Tabbit Browser 均支持,安装任意一个即可。ctx.skills、ctx.tools、ctx.jobs 以及对应模型工具。dsh-tool-jobs 已为当前 Agent 提供后台任务控制和完成通知。read-only 与 workspace-write 限制令牌无法写入 Runtime
命名管道。Skill 先正常执行 tabbit-cli tasks 连接探测;成功时完全不询问
权限。仅当 Browser、launcher 和 Runtime 进程均已检测到但连接返回
BROWSER_RUNTIME_UNAVAILABLE 时,才要求用户把当前 DSH 会话切换到 Full
Permission,并立即停止当前任务,不重试或继续浏览器操作。本包负责:
tabbit-browser Skill,无需单独安装 Skill。Tabbit 和国内正式版 Tabbit Browser。1.9.0。tabbit-cli 常驻运行时;未运行时提醒用户重启一次 Tabbit。TABBIT_PLAYWRIGHT_INSTANCE,不会把实例选择歧义误报为 Runtime 未运行。cliSandboxMode: danger-full-access,其他平台返回 default。refresh: true 主动失效并重新检查。ctx.jobs 后台下载适配系统地区的正式版安装包。tabbit.com 国内版下载源,其他地区使用 tabbit.ai 国际版下载源。它不会检测开发版,不会自动打开 .dmg 或 .exe,也不提供
tabbit_browser_evaluate 等原生浏览器工具。
如果 DSH 的 Bash 运行在 E2B、远程容器或无法访问本机 GUI Browser 的沙箱中,本 Skill 不会使 Tabbit 自动化变得可用。
npm test
npm pack --dry-run