Preface¶
DeepSeek Harness (DSH) is a tool platform for agent development. In actual development workflows, deliverable files produced by tool execution (such as code or documents) are often scattered across conversation contexts, making them difficult to persist or manage in a unified way. dsh-openlist-sync is the OpenList file synchronization plugin for DeepSeek Harness (DSH). It is responsible for automatically uploading files delivered by Agents in each conversation to a designated OpenList directory and granting DSH full read/write access to that directory.
Features¶
This plugin is implemented in pure Node ESM, has zero third-party runtime dependencies, and is compatible with the /api/fs/* APIs of Alist / Alist-based implementations / OpenList v3/v4.
-
Automatic synchronization of deliverable files
The plugin monitors tool execution results in each DSH session. Once deliverable files are generated, they are automatically uploaded to the OpenListtargetDir. It supports two types of sources: chat deliverable files returned bydsh_im_return_file, and artifacts produced by tools such aswrite/edit/str_replace_editor. -
Full directory read/write toolset
After configuration, DSH has full operation permissions on thetargetDir. The following tools are provided:
*openlist_health: self-checks configuration and connectivity.
*openlist_list/openlist_stat: lists a directory or views file metadata.
*openlist_read_file/openlist_write_file/openlist_write_text: reads or writes files.
*openlist_mkdir/openlist_remove/openlist_rename/openlist_move: creates, deletes, renames, and moves files. -
Web settings panel
The plugin registers a Web settings panel. You can configure the OpenList endpoint, authentication details, target directory, and layout rules directly in DSH settings without manually editing YAML files.
Installation and Enablement¶
Install it using the official tarball package.
# 安装插件
dsh plugin --profile web add ./dsh-openlist-sync-0.3.1.tgz
After installation, you need to restart dsh web for the plugin to take effect.
Configuration¶
The configuration file is located at $DSH_HOME/profiles/web/cordis.patch.yml (i.e., ~/.dsh/profiles/web/cordis.patch.yml). Append or override the tool-openlist-sync configuration item in this file.
- id: tool-openlist-sync
config:
baseUrl: "https://your-openlist.example.com" # OpenList 访问地址
username: admin
password: 你的密码
targetDir: "/DSH交付" # 交付文件自动存放目录
autoSync: true # 总开关
syncChatDeliveries: true # 聊天交付文件
syncProducedFiles: true # 工具产物
overwrite: false # 远端同名是否覆盖
restrictToRoot: true # 目录工具是否锁定在 targetDir 内
You can also configure it through the Web settings panel. Find the OpenList sync option in settings, enter the endpoint, authentication details, and save.
Usage¶
- After configuration is complete, DSH automatically uploads deliverable files to OpenList after tool execution succeeds.
- Directly call the
openlist_*tools in DSH to perform read/write operations within the configuredtargetDir.
Notes¶
- Directory isolation: By default,
restrictToRoot: true, so directory tools are only allowed to operate withintargetDir, preventing out-of-scope access. - Upgrade method: Plugin upgrades must be performed using the
dsh plugin add <new tgz>command. The profile directory is managed by pnpm. Never usecpto overwritenode_modules, otherwise pnpm may roll back the dependency manifest to an older version. - Compatibility: Compatible with the
/api/fs/*APIs of Alist / Alist-based implementations / OpenList v3/v4.