Preface¶
DeepSeek Harness (dsh) is an open-source agent runtime developed by DeepSeek, whose official design principle is summed up in one sentence: Everything is a plugin. Model adapters, tools, conversations, and interfaces can all be added or removed as plugins. When an agent needs to log into websites, fill out forms, navigate pages, or download PDFs, plain text tools are often insufficient. Chromium, which can carry cookies and run dynamic pages, is the real solution.
Community maintainer Fisfzy developed ego-browser, which integrates CitroLabs/ego-lite — a Chromium build designed specifically for AI Agents — into Harness. This is not an official storefront listing from DeepSeek / HyperGAI: the DeepSeek Harness Plugin Repository that hosts it is an independent community directory with no affiliation to the official team. Below is an explanation of what this plugin does, how to install it, and important usage notes based on information verified from the directory page and GitHub repository.
The current version in the repository’s package.json is 0.8.0, primarily written in JavaScript, with a requirement of Node ≥ 22. As of 2026-08-17, the GitHub repo shows 22 stars; the community directory page still displays 13 stars, so it is more reliable to refer to the repository page for star counts.
What Is It¶
ego-browser is a “Tools and Capabilities” category DSH plugin maintained by Fisfzy, with the package name @dsh-external/ego-browser. Its positioning is straightforward: turn the browser capabilities of ego-lite into a set of callable ego_* tools within Harness, complete with a real-time observation panel.
The community directory page’s intro still states “13 structured ego_ tools”. Cross-referencing the repository README and the registration list in lib/index.js, the current source code actually registers 32* tools (all prefixed with ego_). The directory metadata is outdated, so this article will refer to the repository source code going forward. The plugin package embeds the ego runtime in the runtime/ folder, and the README notes that it works out of the box on Linux + Chrome, eliminating the need to clone the official ego-lite repository or perform manual builds.
The problem it solves aligns with ego-lite’s own positioning: general-purpose browsers are not designed for agents, and features like logged-in sessions, CAPTCHAs, dynamic rendering, and forms can only be properly handled by a real browser. ego-browser adds one more layer — when the agent clicks through pages in the background, you can view the screen in the DSH Web interface and take over directly when needed.
Core Features¶
The repository divides its capabilities into two parts: the tool layer and the observation panel. Each action in the tool layer assembles parameters into a JavaScript script, which is passed via ctx.subprocess to the built-in ego-browser nodejs, which drives a shared Chromium via CDP; results are parsed using the @@DSH_RESULT@@ sentinel line. All ego_* tools run exclusively and serially within the process to avoid contention for the same browser instance.
1. 32 Structured Tools¶
The full index can be viewed via ego_help. Per the README’s categorization:
- Task Spaces: ego_space_open, ego_space_close, ego_status
- Page Reading: ego_snapshot (semantic tree), ego_page_info, ego_read_element
- Navigation / Waiting: ego_navigate (reuses tabs), ego_wait, ego_wait_for_selector, ego_wait_for_url, ego_wait_for_response
- Interaction: ego_click, ego_fill, ego_hover, ego_drag, ego_select, ego_check, ego_key, ego_scroll
- Execution / Debugging: ego_js (page evaluation), ego_cdp (raw CDP), ego_cli (arbitrary heredoc), ego_script (multi-step script)
- Output: ego_screenshot, ego_download, ego_upload
- Session / Security: ego_auth_flush (persist login state), ego_captcha, ego_dialog
- Meta Tools: ego_help, ego_doctor, ego_http
Semantic snapshots, semantic positioning clicks, form filling, screenshots, CDP, and task space isolation are all included in this toolset. If your environment has issues, run ego_doctor for a diagnostic check first.
2. Real-Time Observation Panel¶
In the GUI-enabled DSH Web interface, there is a persistent floating ball in the bottom-right corner. Clicking it opens a live view of the agent’s current page. The CHANGELOG notes that starting from v0.5.0, SSE streaming (Page.screencastFrame) is used, and clicks, drags, and scrolls from the monitoring panel can be transmitted back to the same agent-controlled Chromium via CDP. The tab bar allows switching / closing tabs, and the history drawer lets you review access trails by time. Headless sessions without a display can still use the ego_* tools, just without the observation panel.
Starting from v0.8.0: if dsh-better-sidebar is installed in the environment, the observation panel will be registered as a native sidebar Tab; otherwise, it will fall back to the original floating window. It will attempt to automatically open this Tab on the first call to ego_*. This is an optional integration, and the sidebar is not listed as a hard dependency.
3. Built-in Runtime and Platform Detection¶
The runtime/ folder embeds MIT-licensed code from CitroLabs/ego-lite (including modifications for Linux porting), see THIRD_PARTY_NOTICES.md in the repository for details. The resolveEgoEnv function automatically detects Chrome / Chromium / Brave / Edge; for root, Docker, or headless environments, the included --no-sandbox wrapper can be used. You can also specify the browser path via the environment variable EGO_LINUX_CHROME.
4. Task Space Isolation¶
Cookies across multiple task spaces are isolated from each other, and logins must be performed within the corresponding space. This is the implementation in DSH of ego-lite’s model: “let agents use logged-in browsers without interfering with your own tabs”.
Installation and Activation¶
The installation command provided on the community directory page can be executed in the DeepSeek Harness terminal:
dsh plugin add github:Fisfzy/ego-browser
If you need to specify a profile, the official CLI format is dsh plugin --profile <profile-name> add github:Fisfzy/ego-browser. Installing from the GitHub source may run build scripts during package installation; pnpm ≥ 10 will require you to first allow the package’s prepare script. The directory page also notes: for reproducible installations, pin the commit hash. As of 2026-08-17, the latest commit on the repository’s master branch is 41f791af9dcf29f1b14102add921a545f9e6c0c8, which can be used as:
dsh plugin add github:Fisfzy/ego-browser#41f791af9dcf29f1b14102add921a545f9e6c0c8
The repository README also mentions dshx install ego-browser <tarball or git URL>, and after installation, you should see [on] ego-browser when running dshx list. This is an alternative loader syntax; when installing via the community directory, follow the dsh plugin add command listed on the page.
The package.json has "private": true, and the README also clarifies that this package is not published to npm / public registries — do not search for it on npm by package name.
Prerequisites (from the README):
- Node ≥ 22 (usually pre-installed in the Harness environment)
- Chrome / Chromium / Brave / Edge installed locally, or EGO_LINUX_CHROME set
- DSH installed; a GUI-enabled DSH Web is required to use the observation panel
Optional configuration is located under the plugin’s entry in ~/.dsh/config.yaml, with fields listed in the README including egoBin, defaultSpace, maxOutputBytes, and graceMs. If browser path detection fails, modify egoBin or set the Chrome path in the settings page. Starting from v0.8.0, the settings tab also allows adjusting observation panel streaming parameters (max frame rate, JPEG quality, frame width, fallback screenshot interval), which are panel-side configurations and do not affect the availability of the ego_* tools themselves.
Typical Usage¶
The repository does not provide a copy-pasteable conversation example, but the tool responsibilities are well-defined. After installing and confirming the plugin is activated, a common workflow is:
1. Use ego_space_open to open (or reuse) a task space. The default space name can be changed in the configuration, and the source code default is dsh-agent.
2. Use ego_navigate to open the target URL (the documentation notes that it will reuse tabs).
3. Use ego_snapshot to retrieve the page’s semantic tree, then use ego_click / ego_fill to interact via semantic positioning; use ego_wait_for_selector or ego_wait_for_url when waiting for elements or URL changes.
4. Call ego_screenshot for visual verification; use ego_captcha to detect CAPTCHAs, and ego_auth_flush to persist login state.
5. Run ego_doctor first if you are unsure about the current environment, and refer to ego_help for the definitive tool list.
For the observation panel (DSH Web):
- Click the bottom-right floating ball to open the live view; scroll to zoom, hold to drag, double-click to reset.
- Use the top tab bar to switch pages, and the × to close the actual browser tab.
- Mouse operations in the monitoring panel will be transmitted back to the Chromium instance the agent is using, eliminating the need to open a separate browser.
The onboarding scenarios listed in the README include: having the agent collect materials by navigating pages on a logged-in site, taking over CAPTCHA handling via the observation panel mid-form fill, performing smoke tests on your own product, and making the DSH interface itself visible to the agent (referred to as self-observation in the repository). These are documented capabilities, not third-party reviews.
Applicable Scenarios and Notes¶
This plugin is suitable for users already running DeepSeek Harness who need agents to interact with real web pages: scraping sites that require logged-in sessions, filling out complex forms, viewing what the agent is clicking, and taking over manually when necessary. Tasks that can be completed via pure API scraping or without a browser environment do not need this plugin.
Before using it, please review these boundary conditions, all from the repository README / CHANGELOG, and do not assume it is “perfectly available across all platforms”:
- Windows: The plugin layer was adapted in v0.4.0; the underlying ego-lite host is still a community port not officially supported on Windows, and stability for complex multi-step workflows may be lower than on macOS.
- Snapshot Quality: Linux uses CDP DOMSnapshot to rebuild the semantic tree, which is not a kernel-level snapshot like on macOS, and may degrade in complex iframe / canvas scenarios.
- Linux Host: The documentation notes that the Linux port is a community contribution not merged upstream, and tab / space state may be lost between CLI calls; the plugin has defensive measures, so simple workflows are relatively stable, but complex workflows may require retries.
- Login State: Multi-space cookie isolation; Chrome runtime cookies are primarily persisted during graceful shutdown. The Unreleased section of the CHANGELOG is still modifying persistence behavior after restarts, so do not assume logins will definitely recover after a SIGKILL force kill.
- Observation Panel Depends on Web: Headless sessions only have tools, no live stream preview.
- Output Schema: The documentation specifies loose additionalProperties: true, so clients should refer to actual return values.
The plugin runs with the permissions of the current dsh process, and may execute code during installation. Before installing, you should review the GitHub source code and license yourself. package.json declares the plugin itself as MIT licensed, and the built-in runtime also embeds ego-lite under the MIT license; there is currently no recognized LICENSE file in the GitHub repository, so refer to the in-repository declarations and THIRD_PARTY_NOTICES.md instead of assuming official warranties apply.
The README header still says “Private · Beta”, but as of the verification date of this article, https://github.com/Fisfzy/ego-browser is a public repository, and it is listed in the community directory. When the header copy and actual visibility conflict, refer to the GitHub repository’s actual state.
Summary¶
ego-browser does one specific thing: integrate the ego-lite Agent browser into DeepSeek Harness, expose a set of callable ego_* tools, and provide a viewable and interactive observation channel in the Web interface. The installation command from the directory page is dsh plugin add github:Fisfzy/ego-browser; the current source code has 32 tools, version 0.8.0, with a built-in runtime, and is not distributed via npm. It is a community plugin, not a listing in the DeepSeek official store. Before installing, reviewing the source code, pinning the commit hash, and evaluating risks based on your own permission model is more important than reading extra introductions.
Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/ego-browser/
GitHub: https://github.com/Fisfzy/ego-browser
Upstream Browser: https://github.com/CitroLabs/ego-lite