Introduction

In the development and use of DeepSeek Harness (DSH), Agents often need to invoke a browser to perform tasks. In the usual approach, each browser launch starts in a fresh environment and cannot reuse previous login sessions. As a result, the Agent must repeat the login flow every time, which reduces efficiency. The DSH plugin ecosystem emphasizes the principle that “everything is a plugin.” This article introduces the dsh-uni-browser plugin, which provides Agents with a persistent browser profile solution.

Plugin Introduction

dsh-uni-browser is a plugin that provides persistent and auditable uni-browser profiles for DeepSeek Harness. It is maintained by user baixianger and aims to solve the problem that Agents cannot retain local state during browser operations. With this plugin, the Agent can use an independent browser profile with specific login information for subsequent operations.

Core Features

The plugin mainly includes the following capabilities:

  • Named profiles: Supports creating independent Chromium or Camoufox browser profiles. Unicode names are supported, making it easier to distinguish different use cases.
  • Persistent login: Retains local Cookies, localStorage, and IndexedDB data to persist login sessions.
  • Agent actions: Through its API, the Agent can perform actions such as navigating, reading accessibility snapshots, clicking, entering text, and pressing keys.
  • Managed runtime: The plugin can start a private local daemon on demand to manage the browser.
  • Clear controls: Provides operations such as “Open”, “Stop”, and “Forget”. Open and Stop only control the browser process and do not delete local state; Forget permanently deletes local data after confirmation.

Installation and Setup

Before installation, make sure the current runtime environment is within the range of supported systems (see the Notes section below). The installation command is as follows:

dsh plugin --profile web add dsh-uni-browser@latest

After installation, you can access the browser using the following command:

dsh web

Typical Usage

Using this plugin typically involves the following steps:

  1. Open Settings → Uni Browser and create a profile.
  2. For profiles that require manual login, keep headless mode disabled.
  3. Select Open and complete the login in the visible browser window.
  4. Instruct the Agent to use this profile for subsequent browser tasks.
  5. Run dsh web to start the browser service.

Runtime and Environment

The plugin manages browser processes by installing a matching uni-browser daemon. npm automatically installs the corresponding runtime package based on the current system. Supported systems include macOS ARM64/x64 and Linux ARM64/x64.

  • Browser engine: The runtime package reuses the Chrome or Chromium already installed on the system by default. To use Camoufox, you can specify its executable file path via an environment variable.
  • Environment variables:
    • UNI_BROWSER_CHROMIUM_BIN: Selects the Chromium/Chrome executable.
    • UNI_BROWSER_CAMOUFOX_BIN: Selects the Camoufox executable.
    • UNI_BROWSER_SOCKET or UNI_BROWSER_BIN: Used to connect to an externally managed daemon.

Notes

When using the plugin, pay attention to the following points:

  • Windows not supported: The current bundled runtime matrix does not include Windows systems.
  • Engine installation: The runtime package itself does not install browser engines; it relies on the system environment or manual specification.
  • Independent versions: Plugin and runtime versions evolve independently; newly released upstream runtimes do not force-update installed plugins.
  • Security and data: Passwords and Cookies are not passed directly as configuration or tool parameters; they are stored in the local storage of the profile.
  • Daemon management: Uninstalling the plugin stops the daemon started by that plugin; if an externally managed daemon is used, uninstalling the plugin will not affect it.

Summary

By providing named profiles and persistent storage, dsh-uni-browser simplifies the DSH Agent workflow in browser environments. It encapsulates complex browser context management into controllable tools, making it suitable for scenarios in DSH that involve handling login states and local data interactions.

Plugin directory
GitHub repository