Introduction¶
In the DeepSeek Harness (DSH) Web GUI, the input box already supports the @ trigger for references. If you only need to reference skills or sub-agents, the native capabilities are sufficient; however, if you need to reference files in the current working directory within a message, there is a lack of a direct entry point for selection.
AFAP/dsh-input-file-ref is a DSH input box file reference plugin: entering @ opens a searchable, drill-down file selection panel; upon selecting a file, the @relative_path is filled back into the input box, and the model reads the file content based on the path.
It needs to be stated first: this project is archived and is no longer maintained or updated. Starting from DeepSeek Harness 0.1.2-alpha.3, native support for @ to select files, folders, and sessions is available. The README explicitly advises against installing this plugin and suggests upgrading directly to the latest DeepSeek Harness instead.
What is This¶
This is a file reference plugin for the DSH Web GUI input box, maintained by AFAP, under the MIT license.
It performs a single, specific function:
- Pops up a file selection panel when typing
@in the input box; - Supports searching for files in the current working directory;
- Supports drilling down into subdirectories;
- Fills the
@relative_pathback into the input box as plain text upon file selection; - After sending the message, the model reads the file content using the relative path based on the path.
Its prerequisites are also clear: the session must have a working directory selected. If no working directory is selected, the panel will display a prompt and will not crash.
Core Features¶
The following introduces the main capabilities of the plugin.
- When typing
@, a file selection panel with the same width as the input box pops up, featuring a search bar at the top. - Supports instant recursive keyword search for files, matching using case-insensitive substring matching.
- Supports drilling down into folders level by level, allowing entry into directories like
.git,node_modules,target, etc. - The search mode excludes ignored directories like
.git,node_modules,targetby default; however, in browse mode, you can still drill down into these directories. - File rows display the relative full path, with
…used to truncate the path if it is too long. - By default, 50 results are displayed; after continuing to type keywords, the limit can be gradually relaxed to 100 / 200 / 500 results.
- Supports keyboard selection:
↑,↓,Enter,Esc, and also supports mouse selection. - After selecting a file, the
@is retained, and the file’s relative full path is filled back into the input box, leaving a trailing space. - Supports referencing multiple files continuously.
- The plugin is read-only with zero external dependencies and includes a browser trust fence (anti DNS rebinding / cross-site).
- Interface text supports bilingual Chinese and English, following the interface language.
This plugin does not inline file content into the message, does not perform file preview / syntax highlighting, and does not support batch multi-selection. It is only responsible for inserting the file path into the input box as text.
Installation and Enabling¶
Since the project is archived, installation of this plugin is not recommended for new environments. If you wish to view the old implementation or verify an equivalent installation, you can use the installation command provided in the README:
dsh plugin --profile web add github:AFAP/dsh-input-file-ref
After installation, dsh web needs to be restarted to take effect.
The plugin will load and run with the DSH Web interface. It is recommended to check the source code and MIT license before installing to confirm it meets your usage environment and security requirements.
Typical Usage¶
The following is a set of reproducible usage steps.
- Open a DSH session that has already selected a working directory.
- Type
@in the input box to open the file selection panel. - The panel top layer displays the current directory contents. You can click folders directly to drill down into subdirectories.
- Type keywords in the top search bar, or continue typing keywords after
@, to perform a recursive search. - Search results display 50 results by default. Continue typing keywords to display more results.
- After entering a subdirectory, you can return to the parent directory via “↑ Parent Directory” or
Backspace. - After selecting a file, the input box will be filled back with text similar to the following:
@src/main.ts
Note that there is a trailing space. This space causes @ to stop triggering selection again, making it convenient to continue typing or editing.
- After sending the message, the message contains relative path text. The model can use the
fstool to read the file content based on that path.
If you need to reference multiple files, you can type a space and @ again to reopen the selection panel. The filled content is plain text and can be edited or deleted directly.
Use Cases and Notes¶
This plugin is suitable for understanding the file reference implementation of the old DSH input box and can also serve as a reference implementation for a file selection panel. However, for production use, it is currently recommended to upgrade DeepSeek Harness directly and use the native @ capability to select files, folders, and sessions.
A few things to note:
- The project is archived and is no longer maintained or updated.
- The README advises against installing this plugin and suggests upgrading directly to the latest DeepSeek Harness.
- The session must have a working directory selected; if no working directory is selected, the panel will display a prompt.
- Search results exclude ignored directories like
.git,node_modules,targetby default; if you need to select files from these directories, you should use browse mode to drill down into them. - The plugin is read-only and does not modify or delete any files.
- The host only reads the session log header and file system metadata, not the file contents.
- The browser trust fence requires loopback or
trustedHostsrequests to be same-origin, rejecting cross-site requests. - MVP does not currently support inlining file content, file preview / syntax highlighting, or batch multi-selection.
Conclusion¶
The value of AFAP/dsh-input-file-ref lies in providing a restrained, well-defined implementation of file references for the DSH input box: search, browse, path backfill, and model reading are broken down into clear steps, while maintaining read-only status, zero external dependencies, and browser-side security restrictions.
Currently, it is more recommended to use the native @ file selection capability of the latest DeepSeek Harness. The links below can be used to view the source code and directory information.
GitHub:
https://github.com/AFAP/dsh-input-file-ref
Directory page:
https://www.skillhub.cn/plugins/AFAP/dsh-input-file-ref