dsh-conversation-files: Collect files generated by the assistant across conversations into a sidebar gallery

Introduction

After running DSH (DeepSeek Harness) for a while, a common result is: the disk is littered with things written by the assistant—documents, images, code, tables—from different conversations, scattered in the outputs of various tool calls. To find out which conversation generated a specific PDF, how many times it was edited later, or if it still exists, one often has to dig through event logs or manually recall the paths. This plugin does one thing: aggregates files actually produced by the assistant in every conversation within the profile into a left sidebar panel, groups them by file type, and allows opening them with a click.

The following introduces the client plugin dsh-conversation-files maintained by Shall0vv. It is categorized as a “Client” in the community directory, currently has 1 star on GitHub, and is licensed under MIT.

What is it

One-sentence positioning: A DSH web plugin that places an entry for “Conversation Files” in the left sidebar. Clicking it opens a gallery panel showcasing all files produced by the assistant across conversations.

It only recognizes two types of files:

  • Written: Files written, edited, or patched via tools like write, edit, apply_patch.
  • Delivered: Files presented via present-style tools.

Read-only operations (like read, view_image) and files attached by the user are not counted and are actively excluded.

Core Features

The panel groups files into ten categories by extension: Images, Documents, Tables, Presentations, Code, Config, Data, Archives, Media, and Others. .conf and .lock are grouped under Config; unknown extensions like fonts go to Others.

Cards display the extension, source conversation (showing +N if the same file has been touched by multiple conversations), write count, size, and last write time; the full path is placed in a tooltip. Different types have different thumbnails: Images are directly resized; Code, Text, and Config display the first 8 lines as a monospace block; Markdown removes heading markers, list bullets, and emphasis symbols, making it readable like plain text; PDFs, Word, PowerPoint, Excel, and iWork files are rendered by macOS QuickLook on demand; Archives, Media, and Binary files display a large extension label and type icon. Files that no longer exist on the disk are not included in “All” but are placed separately under the “Deleted” category, marked in red without thumbnails.

There are several ways to filter: Toggle between “All / Written / Delivered / Deleted” for write types; the “All Types” dropdown narrows down by file type and shows a real-time count; the “All Extensions” dropdown lists only extensions existing under the current type filter, with the most common ones at the front. If a type is selected that no longer contains that extension, it automatically resets to “All Extensions”; the search box filters by filename or full path; the “Grid / List” button in the top right switches between card view and compact list view (the list shows thumbnails, name, source conversation · write count · size · date, extension markers, and an action menu); view selection is saved to localStorage. Group headers stay fixed while scrolling, and the panel refreshes every 5 seconds while visible, skipping polling when the window is hidden.

Clicking a card opens it with the default application. The ⋮ menu in the bottom right has four options: Open with default application (calls open), Select application to open (lists macOS apps that can open the file, with the default first, plus Other… which opens the system selector), Open in Finder (open -R), and Move to Trash (moves to ~/.Trash, recoverable, with a confirmation before execution).

Installation & Enablement

The installation method given in the README is to first obtain the source directory, then register it using the bundle command:

git clone https://github.com/Shall0vv/dsh-conversation-files

Then execute in DSH:

plugin_manager install_bundle target=<absolute path to the cloned folder>

To update an installed copy, you need to remove and reinstall first:

plugin_manager remove_bundle  target=dsh-conversation-files
plugin_manager install_bundle target=<absolute path to the cloned folder>

The bundle is linked into ~/.dsh/profiles/<profile>/package.json and appears in dsh.profile.bundles, taking effect even after a restart. After removing the bundle from the profile, the sidebar entry will also disappear.

The runtime requirement is macOS (document thumbnails depend on QuickLook). It is recommended to read the source code once before installing to confirm what it does.

Typical Usage

After the plugin starts, it displays an entry for “Conversation Files” in the left sidebar (below the SSH entry, folder icon). Clicking it opens the panel. After installing and starting DSH, a warm-up scan occurs after 5 seconds, and a snapshot is available for cold starts.

After opening the panel:

  1. Filter “All Types” to “Documents” and check if “All Extensions” only shows extensions like md, docx, pdf under the current type.
  2. Enter a filename fragment in the search box to confirm filtering by full name and path.
  3. Click a card to open the file with the default application; click ⋮ and select “Move to Trash”. After confirmation, the file is moved to ~/.Trash and will appear as “Deleted” in the panel.

Applicable Scenarios & Notes

Suitable for those using DSH on macOS who want to inventory assistant-produced files by type. It focuses on a file-level view, rather than the details of conversation content or tool calls themselves.

There are two points to note. First, the plugin runs under the permissions of the current DSH process; actions like reading/writing files, opening files with the default application, or moving to the Trash are executed as that process, so do not easily enable unfamiliar plugins in a high-privilege profile. Second, it only parses the parameters of tool calls and does not parse tool results; therefore, files written via bash redirection (>, tee, etc.) will not be recognized and will not appear in the panel.

Conclusion

The value of this plugin lies not in how new it is, but in converging scattered outputs into a view that can be filtered, searched, and opened. Source code and license information can be found on GitHub: https://github.com/Shall0vv/dsh-conversation-files ; Directory page: https://www.skillhub.cn/plugins/Shall0vv/dsh-conversation-files . The community directory is an independent site with no official affiliation to DeepSeek / Hypothesis; DSH’s philosophy is “Everything is a plugin,” and the behavior and quality of the plugin itself are the responsibility of the maintainer.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye