Skip to main content

dsh-plugin

90Stars7Forks8Issues0Watchers

Integrate Tabbit browser automation into DeepSeek Harness, automatically detecting browser version and runtime, and downloading compatible installation packages in the background when missing.

Evidence4/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
JavaScript
Branch
main
browser-automationbrowser-usedeepseek-harnessdsh-plugindsh-plugin-marketdsh-plugin-verifydsh-pluginsplaywright

Install

cmdweb profile
$ dsh plugin --profile web add dsh-tabbit

Run 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

Install via your agent

Install the DeepSeek Harness plugin Tabbit-Browser/dsh-plugin for me: review the repository at https://github.com/Tabbit-Browser/dsh-tabbit first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Sentence Positioning

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.

Core Capabilities

  • Register a bundled Skill named tabbit-browser in DSH, enabling the model to invoke it via /tabbit-browser or skill({ name: "tabbit-browser" })
  • Provide tabbit_browser_install tool to automatically check whether a stable Tabbit version 1.9.0 or higher is installed on the local machine
  • Detect tabbit-cli daemon runtime and Playwright Runtime processes (browser-runtime-service.mjs / nodejs-playwright-runtime.mjs)
  • Cache detection results per agent session to reduce redundant detection overhead; use refresh: true to actively invalidate and re-detect
  • When the browser is missing or the version doesn't match, download the appropriate regional and architecture installer to the Downloads directory via DSH background tasks
  • Automatically select download source based on system locale (tabbit.com for Mainland China, tabbit.ai for other regions), and verify file format (exe/dmg)

Technical Implementation

  • Language: JavaScript (ESM)
  • Key Dependencies: @deepseek-ai/cordis, @deepseek-ai/dsh-tools, @deepseek-ai/dsh-jobs, @deepseek-ai/dsh-skill
  • Architecture Pattern: DSH bundle package + Cordis patch injection; declare inject: ['skills', 'tools', 'jobs'], inject Skill Provider via cordis.patch.yml at host startup, and register bundled Skill and detection tool via apply(ctx)
  • Entry Files: index.js (main entry) + installer.js (environment detection and installer download implementation)

Use Cases

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.

Prerequisites and Compatibility

DependencyMinimum VersionDescription
DSH Hostdsh CLIMust be able to run in an environment where dsh --version executes
Cordis>=4.0.0Internal DSH dependency, provides Skill/Tool/Job registration capability
@deepseek-ai/dsh-jobs>=0.1.0-rc.5Background task support, this plugin starts downloads via ctx.jobs.start
@deepseek-ai/dsh-tools>=0.1.0-rc.5Tool registration framework
@deepseek-ai/dsh-skill>=0.1.0-rc.5Skill Provider registration framework
Node.js>=20Declared by package.json#engines.node
PlatformmacOS (arm64/x64) / Windows x64Linux is not in the installer list; source code will throw errors

Installation

dsh plugin --profile web add github:Tabbit-Browser/dsh-plugin

Configuration Options

ConfigTypeDescriptionDefault
tabbit_browser_install.refreshbooleanForce re-run browser and runtime detection, discarding current session cache. Only use when Runtime/launcher errors occur or browser is updated/restartedfalse

This plugin has no DSH global configuration items; all adjustable parameters are passed as arguments when calling the tool.

FAQ

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.

Difficulty Level

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.

Known Issues and Limitations

  • Does not recognize dev builds: Only detects stable Tabbit and Tabbit Browser; dev builds are ignored (installer.js hardcodes channel: 'stable')
  • Does not auto-launch installer: After download completes, it only tells the user the path; the user must manually double-click .dmg / .exe; the plugin won't open it (README.md:67 explicitly states)
  • Won't replace or supplement native browser tools: This plugin only exposes tabbit_browser_install; it doesn't provide tools like tabbit_browser_evaluate for direct browser invocation (README.md:96 explicitly states)
  • Windows sandbox mode limited: DSH's 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 retry
  • Linux not supported: installer.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)
  • Multiple Tabbit instances will prompt ambiguity without error: If multiple Tabbit instances are running, detection results will mark playwrightRuntimeAmbiguous: true and prompt setting the TABBIT_PLAYWRIGHT_INSTANCE environment variable, rather than misidentifying as Runtime not running

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Tabbit-Browser/dsh-plugin)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory