Introduction

When running a long session in DeepSeek Harness (DSH), a common scenario is: the model modifies several files using file tools, and you run scripts in the bash terminal to generate docx or pdf files. The kernel’s deliverable cards are only bound to the current turn, easily getting lost after scrolling down a few screens. To package and send everything to a colleague at once, you have to go back to the workspace directory to find them one by one, which often leads to omissions.

The community plugin dsh-whale-catch targets this scenario: it gathers files produced or modified during a session into a “basket,” allowing previewing in the right sidebar, packaging into a zip, and archiving, without requiring the agent to remember to call present every time. The following section introduces its positioning, installation methods, and usage boundaries. Maintained by Rosynb666, the plugin is categorized as a Client in the SkillHub directory. The repository GitHub has approximately 33 stars, uses the MIT license, and the current package version is 0.1.2.

What is this

dsh-whale-catch is a Cordis plugin attached to the right sidebar of DSH: the Host side monitors session events and scans the workspace, while the browser side displays the “Whale Catch” panel. The README’s goal is “zero registration”—deliverables appearing in the current session are automatically added to the basket for viewing and exporting in one place.

It is complementary to the kernel’s built-in deliverable mechanism: it collects the kernel’s deliverables/presented and workspace/changes, and uses directory scanning as a fallback to catch files written by bash, python, build scripts, etc. The scope is aggregation across the entire session, rather than just single-turn cards.

Core Features

The Whale Catch README summarizes three main functions: Automatic Collection, Unified View, and One-click Package/Archive.

  1. Merging Three Sources (Union of identical paths)
    - presented: Kernel events deliverables/presented, with descriptions and turn numbers.
    - changed: workspace/changes and ctx.workspaceChanges.summary(), covering git snapshots and file tool modifications.
    - scanned: Scans within the session working directory based on mtime ≥ session creation time, picking up script artifacts.

  2. Right Panel Operations
    - Filter by type (documents, spreadsheets, images, etc.); check to select specific items for packaging. If unchecked, everything is packaged.
    - Preview: Opens the original file in a new tab; images, PDFs, and text can be viewed directly, while Office files are usually downloaded.
    - Package zip, Archive to a configured directory (duplicates automatically get (2) appended, no overwriting).
    - ⧉ Copy absolute path.

  3. Configuration and Limits
    Configurable via profile patches: archive directory, ignore directories, maximum file count, traversal depth, single file size, lookback minutes if session creation time is unavailable, etc. Scanning skips node_modules, .git, and dot-directories, does not follow symbolic links, and respects depth/count/size constraints.

  4. Security Boundary (Local Host)
    /file, /zip, /archive only accept paths already registered in the basket; there are barriers for same-origin and cross-site requests; write operations require application/json. Single file default limit is 64 MB, total package limit is 512 MB, both adjustable in configuration.

Installation and Activation

Environment requirements: DSH >= 0.2.0-rc.2, Node ^22.19 || >=24 (Desktop’s built-in runtime usually satisfies this). The plugin has no separate build step and depends on @deepseek-ai/schemastery at runtime.

Install from GitHub (after repository release):

dsh plugin --profile desktop add github:Rosynb666/dsh-whale-catch

Install from npm (after release):

dsh plugin --profile desktop add dsh-whale-catch

For local development, use an absolute path:

dsh plugin --profile desktop add /absolute/path/to/dsh-whale-catch

After installation, refresh the page (⌘R), click + in the right sidebar, select “Open Whale Catch” from the guide page, or click the basket icon in the sidebar.

Uninstallation:

dsh plugin --profile desktop remove dsh-whale-catch

Configuration Example

Override in your own profile patch; do not modify the package’s cordis.patch.yml (it will be overwritten on upgrade):

# ~/.dsh/profiles/desktop/cordis.patch.yml
- id: dsh-whale-catch
  config:
    archiveDir: ~/Documents/WhaleCatchArchive
    ignore: [dist, build, .venv]
    maxFiles: 800
    maxDepth: 6
    maxFileBytes: 67108864
    lookbackMinutes: 720

Hot reload applies after changes; no need to restart DSH.

Typical Usage

  1. Install the plugin in the DSH Desktop profile, refresh the interface, and open the right sidebar basket.
  2. Normal session: Let the model modify files or run build scripts in the terminal; the basket merges present items, change summaries, and scan results.
  3. When needing to send files out: Check specific files in the list (or leave unchecked for all), click Package zip; click Archive to keep a record.
  4. To paste paths into other tools, use the copy path button next to the entry.

Panel schematic (actual colors follow the theme):

┌──────────────────────────────────────┐
│ Whale Catch            12 fish · 3.4 MB  [Refresh] │
│ [All] [Docs] [Sheets] [Images]              │
├──────────────────────────────────────┤
│ ☑ Project_Weekly_Report.docx          [Preview] ⧉     │
│ ☐ Budget.xlsx                          │
├──────────────────────────────────────┤
│ 2 items selected              [Archive] [Package zip] │
└──────────────────────────────────────┘

Use Cases and Notes

For Whom: Developers who frequently accumulate various deliverables in a single DSH session and prefer not to rely on the model calling present every time; scenarios requiring aggregation across multiple turns for zipping or archiving.

Differences from the Kernel: Be aware that after a Host restart, present descriptions and turn numbers are not restored, but files will reappear based on mtime. Files with mtime earlier than the session creation time are not included. It only covers the current session’s working directory (except for absolute paths provided by present). Archives default to $DSH_HOME/whale-catch/archive and do not automatically sync to cloud drives.

Before Installation: The plugin runs HTTP routes and file I/O under the permissions of the local DSH Host process. You should review the source code and license before installing. The DSH ecosystem is “everything is a plugin”; the SkillHub Directory is a community site and has no official affiliation with DeepSeek or High-Flyer.

Conclusion

dsh-whale-catch gathers session deliverables into one place: zero registration, right sidebar preview and export, plus a fallback scan for script artifacts. For installation or architectural details, visit the directory page SkillHub · dsh-whale-catch or the repository github.com/Rosynb666/dsh-whale-catch.