Preface

DeepSeek Harness (command line entry is dsh) is an agent framework open-sourced by DeepSeek AI. The official repository clearly states: Everything is a Plugin — models, tools, skills, sessions, sandboxes, and interfaces can all be replaced and combined as plugins. The framework itself is hosted at deepseek-ai/deepseek-harness, and there are community-run standalone sites to help find plugins. It should be clarified upfront: the DeepSeek Harness Plugin Library is a community-curated directory, and has no affiliation or endorsement relationship with DeepSeek or HoYoverse. Entries only point to the maintainers’ own repositories.

When coding and scheduling Agents in the DSH web interface, browser tabs often also have Bilibili, Xiaohongshu, or YouTube open. The recommendation feeds are on those platforms, while the workflow stays in Harness, and the interest signals from both sides cannot be connected. OpenBiliClaw itself is a locally running cross-platform content discovery Agent: it updates user profiles based on usage, feedback, and conversations, then fetches content from multiple platforms. dsh-openbiliclaw does something more focused — it brings the consumption side into DSH’s web GUI, allowing users to browse recommendations and respond to probes in the same interface, and also enables Agents in DSH to use the same backend via tools. Below is a breakdown of the positioning, capabilities, and installation based on the directory page and the repository README.

What is this

dsh-openbiliclaw is the DeepSeek Harness client plugin for OpenBiliClaw, maintained by whiteguo233, with the npm package name @openbiliclaw/dsh-plugin. The directory page categorizes it under “Workflow and Automation”, with the BSD-3-Clause license, and the primary language is JavaScript. At the time of writing, the version in the repository’s package.json is 0.3.204, and the GitHub repo has 36 stars (the community directory page previously listed 25; use the repository page’s star count as the authoritative value).

The problems it solves can be split into two parts:
- For human users: Adds an OpenBiliClaw button at the bottom of the DSH left sidebar. Clicking it slides out a right-hand drawer containing recommendations, content library, chat, profile, and settings. The visual design aligns with the browser extension and mobile version, and dark mode follows the DSH theme.
- For Agent use: Registers 22 openbiliclaw_* tools and the openbiliclaw-adapter skill, allowing Agents in sessions to read recommendations, answer interest/avoidance probes, save content, and paraphrase conversations, connecting the “recommendation → feedback → profile → more accurate recommendations” loop into DSH.

The main project is hosted at whiteguo233/OpenBiliClaw (MIT license). It started with Bilibili and now supports Bilibili, Xiaohongshu, Douyin, YouTube, X, Zhihu, Reddit, Linux.do, Bangumi, V2EX, Weibo, and the open Web; data is stored locally in SQLite by default. The plugin README clearly states: this repository only handles the consumption side. Crawling, platform source management, and account synchronization still belong to the main project (backend + browser extension / mobile version) and are intentionally not included in DSH.

The directory page and main project README commonly use “fourth column” to refer to the five tabs. The plugin README adds an implementation detail: the official DSH has removed the old aside column, and this plugin actually uses two built-in slot positions — sidebar.footer.action (left sidebar bottom button) and shell.overlay (frame-level overlay drawer), without occupying an independent column or modifying DSH source code.

Core Features

The panel and Agent tools share the same backend state. Items saved in the panel are immediately visible to the Agent; probes answered by the Agent are also synced to the panel. By default, it connects to the local backend at http://127.0.0.1:8420 via HTTP and WebSocket.

For Human Users: Five Tabs

For You Recommendations. A featured recommendation hero banner (16:9 cover, match score, recommendation reason) can appear at the top. Cards have options like watch now, like, watch later, save, not interested, and chat. Covers and images follow the same backend /api/image-proxy as the browser extension and PC web version, which normalizes CDN addresses for Xiaohongshu, YouTube, etc.; if the proxy fails, it falls back to text or a placeholder to avoid blank cards. The list supports infinite scrolling, preloading the next page when approximately 800px from the bottom, and you can also refresh, reshuffle, or append recommendations. There is a dynamic feed of events like probes, featured picks, and saves at the bottom. When the backend has not been initialized yet, the panel will show an “Start Initialization” entry and poll the status.

Content Library. Watch later and saved items share the local list with the main project. You can open, remove, and switch between the two lists. The history covers the past 30 days of “opened / watched / removed” items, with badges for saved, watch later, not recommended, etc.; the “removed” category can be restored. Items already synced to Bilibili will be hidden from the sidebar (data still exists); non-Bilibili items will be marked “Saved only locally” to avoid false sync prompts. There is also an entry to “Sync to Platform” in the panel, but the sync-saved tool is not registered among the 22 Agent-side tools — pushing local saved items to external accounts still requires following the authorization method from the main project.

Chat. Socratic question-and-answer to clarify interests. Interest probes and avoidance probes come as cards with options: confirm, decline, chat, later. There is also a pending chat confirmation card (accurate / inaccurate / chat), and replies will include the original confirmed text.

Profile. Isomorphic profile cards to the browser extension popup, including MBTI, core traits, deep needs, interest tree, style, insights and awareness. There is also a “What did Bilibili just remember?” cognition card, which can expand impacts, reasoning, and evidence, and load earlier cognitive updates.

Settings. Aligns with the backend settings page of the browser extension, roughly divided into three sections: Model (instance, default call chain, module routing, Embedding, concurrency and timeout), Scheduling (version updates, scheduling parameters, interest guess parameters), and General (connection address, language, data directory, overseas network proxy, LAN access password, auto-start on boot, re-initialization). The panel saves the connection address locally, and changes take effect immediately; do not append /api to the address.

For Agent Use: 22 Tools

The tool definitions are in the repository’s src/tools.ts, with names aligned with the openbiliclaw-adapter skill, and the backend is called via Agent Bridge v2 CLI. They can be grouped by purpose:
- Negotiation and Status: openbiliclaw_get_capabilities, openbiliclaw_get_runtime_status, openbiliclaw_get_platform_availability, openbiliclaw_get_activity_feed
- Recommendations and Featured Picks: openbiliclaw_recommend, openbiliclaw_reshuffle, openbiliclaw_append_recommendations, openbiliclaw_get_delight, openbiliclaw_respond_delight, openbiliclaw_submit_feedback
- Chat and Probes: openbiliclaw_chat, openbiliclaw_get_chat_history, openbiliclaw_next_probe, openbiliclaw_respond_interest_probe, openbiliclaw_next_avoidance_probe, openbiliclaw_respond_avoidance_probe
- Profile: openbiliclaw_get_profile, openbiliclaw_get_profile_edit_state, openbiliclaw_edit_profile
- Local Saved Items: openbiliclaw_list_saved, openbiliclaw_save_local, openbiliclaw_remove_saved

Write operations (feedback, featured pick responses, probe responses) require the caller to provide a stable requestId, which should only be reused for retries of the same action, and should not be reused for other recommendations or feedback types. save_local only writes to the local SQLite database and will not sync to external accounts.

Installation and Activation

Prerequisites

There are two prerequisites listed in the plugin README, with version constraints specified in package.json’s peerDependencies:
1. A working DeepSeek Harness with web GUI. The plugin declares dsh.client.platform as web, and requires dsh-* packages and @deepseek-ai/cordis to be 0.1.0-rc.6 or higher, with @deepseek-ai/cordis ^4.0.1. Do not mix DSH tool packages from the 0.0.1 era in the same profile.
2. A locally running OpenBiliClaw backend with Agent Bridge v2 enabled, listening on 127.0.0.1:8420 by default. The Bridge CLI is invoked via python -m openbiliclaw.integrations.openclaw.cli, and the plugin uses {workdir}/.venv/bin/python by default.

Refer to the OpenBiliClaw repository for how to deploy the main project; this article will not cover it in detail.

Directory Page Installation Command

The installation command provided by the community directory is as follows, run in the DeepSeek Harness terminal:

dsh plugin add github:whiteguo233/dsh-openbiliclaw

The repository declares dsh.bundle, so this command will package the plugin fully into the current configuration with an openbiliclaw configuration line. For reproducible installations, pin the commit hash, do not use the literal commit below:

dsh plugin add github:whiteguo233/dsh-openbiliclaw#<commit hash>

The directory page also reminds users that the plugin runs with the permissions of the current dsh process, and may execute code during installation. You should inspect the source repository and license before installing.

Point the Workdir to the Main Project

After installation, you still need to follow the README to point the workdir to the local OpenBiliClaw project root directory (which contains .venv and skills/). The top level of cordis.patch.yml is a patch list; new configuration lines must be placed under insert: entries with id but no insert will be treated as overwriting existing lines, and will be skipped if openbiliclaw is not found:

- insert:
    - id: openbiliclaw
      name: '@openbiliclaw/dsh-plugin'
      config:
        workdir: '/your/OpenBiliClaw/project/directory'

The configuration items provided in the README are as follows:
| Key | Default | Description |
|—|—|—|
| workdir | (Required) | OpenBiliClaw backend project root directory; the bridge CLI and SKILL.md are resolved from this path |
| pythonBin | {workdir}/.venv/bin/python | Python executable used to call the bridge CLI |
| skillPath | {workdir}/skills/openbiliclaw-adapter/SKILL.md | Adapter skill file path |
| timeoutMs | 300000 | Timeout for a single CLI call, in milliseconds |
| stdoutMaxBytes | 2000000 | Maximum CLI output size, in bytes |

Restart the web process and refresh the page after changing the configuration:

dsh web

You can change the backend address in the panel under “Settings → General → Connection”, with the default being http://127.0.0.1:8420.

Typical Usage

The daily workflow described in the repository README is: continue discussing requirements with the Agent on the left, click the OpenBiliClaw button in the bottom left corner, browse a few recommendations in the sliding right-hand drawer, and save items; after a while, an interest probe will pop up, chat about it, and the profile will update — users do not need to leave DSH.

For Agent-side usage, it is recommended to confirm the backend is ready before fetching recommendations or probes. The daily workflow for openbiliclaw-adapter is: capabilitiesget-profile / runtime-status → handle interest and avoidance probes → reshuffle or recommend → submit feedback. Corresponding to the DSH tools, you can call these first after startup:
- openbiliclaw_get_capabilities: Negotiate agent-bridge/v2 and capability list; re-run this after backend upgrades.
- openbiliclaw_get_runtime_status: Check if initialization is complete and the recommendation pool is available.
- openbiliclaw_recommend: Returns a page of precomputed recommendations by default (fast); only set realtime to true if you explicitly want to generate each LLM description on the fly (slow). Only enable refreshIfNeeded when the user explicitly requests a heavier freshness check.

The skill documentation provides a recommended CLI example (the plugin will wrap the same parameters into a tool, so you do not need to type this manually in a DSH session):

uv run python -m openbiliclaw.integrations.openclaw.cli recommend --limit 3

When submitting comment feedback, you must include a note and prepare a stable --request-id for this action:

uv run python -m openbiliclaw.integrations.openclaw.cli submit-feedback \
  --recommendation-id 12 \
  --feedback-type comment \
  --request-id feedback-12-comment-1 \
  --note "The direction is right, but I want to go deeper."

For interest probes, first fetch the question, then send the user’s confirm/decline/later/chat response:

uv run python -m openbiliclaw.integrations.openclaw.cli next-probe
uv run python -m openbiliclaw.integrations.openclaw.cli respond-interest-probe \
  --domain "Architectural Aesthetics" \
  --response confirm

The JSON contracts for these commands are host-agnostic; OpenClaw, Hermes, WorkBuddy, and this DSH plugin all use the same bridge protocol.

Applicable Scenarios and Notes

This is most suitable for users who are already using the DSH web GUI and running the OpenBiliClaw backend locally: they hope recommendations, profiles, and probes do not require separate windows, and want Agents in sessions to read recommendations and answer probes on their behalf. It is not suitable for users who want “one-click crawling and platform source configuration in DSH” — that functionality explicitly remains in the main project.

There are several boundary conditions worth noting separately:
1. This is a client plugin, not a full OpenBiliClaw. Without a backend or Agent Bridge v2 enabled, the panel and tools have nothing to connect to. Cookie synchronization and platform tasks are still handled by main project components like the browser extension.
2. Only covers the consumption side. Platform source / crawling configuration, source status, pool ratio, and device pairing/disconnect pause exclusive to the browser extension are not in this repository.
3. Local saved items do not leave the device by default. openbiliclaw_save_local only writes to SQLite; the skill stipulates that sync-saved should not be run without explicit user authorization and --allow-state-changing. These 22 DSH tools themselves do not register sync commands either.
4. Version alignment is required. DSH 0.1.0-rc.6 or higher is needed, and do not mix with tool packages from the 0.0.1 era.
5. Permission model. The plugin runs with the permissions of the current dsh process, will call the local Python CLI via ctx.shell, and can connect to the local 127.0.0.1:8420. Read the source code and BSD-3-Clause license before installing; use pinned commits for reproducible installations.
6. The directory site is not an official app store. You can use the community directory to discover plugins, but should verify them against the GitHub repository and DeepSeek Harness official documentation.

Summary

dsh-openbiliclaw embeds the consumption side of OpenBiliClaw into DeepSeek Harness: human users get a left sidebar button and right-hand drawer, while Agents get 22 Bridge tools and an adapter skill, with both sides sharing the same local backend and profile. It does not replace the main project, nor does it bring crawling functionality into DSH; its goal is to let both “working” and “browsing relevant content” stay within the same web GUI.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-openbiliclaw/

Plugin repository: https://github.com/whiteguo233/dsh-openbiliclaw

Main project: https://github.com/whiteguo233/OpenBiliClaw