DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

WangZetian-IVERSON /

WangZetian-IVERSON/dsh-local-path-attachments

Verified

Drag local files into deepseek Hermes as absolute-path attachment cards without copying them into the workspace

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@68c4df45
DSH Local Path Attachments

Local Path Attachments for DSH

Turn files dropped from Explorer or Finder into removable attachment cards backed by their real absolute paths — without uploading or copying file bytes.

Get Started · 中文文档 · Releases · Report a Bug

Version GitHub Stars Release Downloads License 11 tests passing DSH Desktop


Drop one file or fifty. Each becomes a compact card above the DSH composer, with its filename, complete path, and a remove action. When the message is submitted, the Agent receives the path verbatim:

C:\Users\you\Desktop\research report.pdf

The source file stays exactly where it was. The plugin does not read it, upload it, or create a workspace copy.

Why this plugin?

📎 Native-feeling cards

Files appear as removable cards in the existing composer dock instead of noisy pasted text.
📍 Real absolute paths

Electron resolves the genuine disk path, including spaces, Chinese filenames, UNC paths, and files outside the workspace.
🛡️ Zero-copy by design

Only a path reference enters the draft. File bytes remain in their original directory and under DSH sandbox policy.

Features

Drag, display, and manage

  • Drop one or multiple files anywhere in the DSH Desktop window.
  • Show filename, full absolute path, and a one-click remove action.
  • Deduplicate Windows paths case-insensitively.
  • Support spaces, Chinese filenames, drive-letter paths, UNC paths, and POSIX paths.
  • Limit each draft to 50 local-path cards.

Reliable composer lifecycle

  • Store every card as a native Composer reference node.
  • Follow normal submit, failed-submit restoration, draft clearing, and session isolation behavior.
  • Rehydrate persisted draft markers after the Client UI reloads.
  • Serialize only the verbatim absolute path — no explanatory prefix or escaped wrapper.

Safe coexistence

  • Register additively in conversation.input.dock; the shipped image attachment slot is not replaced.
  • Capture disk-file drops only when the DSH Desktop preload bridge is available.
  • Leave ordinary browser file-drop behavior untouched when absolute paths cannot be resolved safely.

Quick Start

1. Download

Download the ready-to-install dsh-local-path-attachments-0.1.1.tgz from the latest release.

2. Install into the Desktop Profile

cd "$env:USERPROFILE\.dsh\profiles\desktop"
pnpm add "D:\path\to\dsh-local-path-attachments-0.1.1.tgz"

3. Enable the bundle

Append dsh-local-path-attachments to the existing dsh.profile.bundles array in the Desktop Profile's package.json:

{
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-local-path-attachments"
      ]
    }
  }
}

Preserve every bundle already present; only append this entry. Restart DSH Desktop once after installation.

4. Use it

  1. Open a DSH conversation.
  2. Drag files from Explorer or Finder into the Desktop window.
  3. Review or remove the resulting cards.
  4. Submit the message and ask the Agent to inspect the referenced files.

How it works

flowchart LR
    A[Explorer / Finder] -->|drop File objects| B[Electron preload bridge]
    B -->|webUtils.getPathForFile| C[Absolute paths]
    C --> D[Composer reference nodes]
    D --> E[Attachment cards]
    D -->|submit verbatim path| F[Agent]
    A -. file bytes stay in place .-> A

The hidden reference node owns draft and submission semantics. The visible dock card is a projection of that reference. Clipboard-safe markers allow cards to survive a Client reload without copying file contents.

Compatibility

Environment Status Behavior
Windows DSH Desktop ✅ Verified Absolute paths, multi-file drop, card removal, persistence, and submission tested end to end.
macOS / Linux DSH Desktop 🧪 Path-aware POSIX paths are supported by the codec; these platforms have not yet been field-tested by the maintainer.
Browser-only Web GUI ➖ Intentional fallback Browser File objects do not expose absolute paths; the plugin does not intercept the existing drop behavior.

Privacy and security

  • Absolute paths become part of the submitted user message and may contain usernames or sensitive directory names.
  • File bytes never pass through this plugin.
  • Reading files outside the workspace remains subject to the active DSH sandbox and approval policy.
  • A path card cannot bypass operating-system permissions or DSH security boundaries.
  • Moving or deleting the source file does not update an existing card.

Development

git clone https://github.com/WangZetian-IVERSON/dsh-local-path-attachments.git
cd dsh-local-path-attachments
pnpm install
pnpm check
pnpm pack

pnpm check builds the Host and Client bundles, typechecks all targets, runs 11 unit and jsdom integration tests, and verifies the DSH lazy-module wrapper and external dependencies.

Layer Technology
Plugin composition Cordis / dsh.bundle.patch
Client UI React 18 + DSH Slots
Composer integration DSH input-trigger references
Desktop path bridge Electron webUtils.getPathForFile
Language and build TypeScript 6 + tsdown
Tests Vitest + jsdom

Release integrity

v0.1.1 tarball SHA-256:

e41e542365470558a0d4fe30434727a007c70dd7cb2c967112bac44b9720c372

See the full history in CHANGELOG.md.

Contributing

Bug reports, focused feature requests, documentation improvements, and pull requests are welcome. Please include the DSH Desktop version, operating system, reproduction steps, and any relevant Client diagnostics.

If this plugin is useful, consider starring the repository so other DSH users can discover it.

License

MIT © WangZetian-IVERSON

—/ 5

No ratings yet

Verified DSH bundle

Commit 68c4df454b74

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout