Every file, including images, goes through the storage pipeline
CocoSgt/dsh-attachments · skills
Every file — images included — goes through the stash pipeline: the file is written to the session workspace at and staged per session, and a card (icon tile + file name + size + ✕) appears above the composer.
★ 13GitHub stars
2Forks
2026-08-15Last updated
JavaScriptLanguage
—License
Key features
- Every file — images included — goes through the stash pipeline: the file is written to the session workspace at /.dsh/uploads/ and staged per session, and a card (icon tile + file name + size + ✕) appears above the composer.
- Host half (lib/index.js)AttachmentsGateway extends TypertRemoteService and serves the fileStash namespace with six RPCs: stashFile, removeStash, restageFile, clearStash, readStash, listStash.
- dsh-skills (npm) — a skill hubaggregate skills scattered across Claude Code directories, projects, and .skill packages into one global library, invocable from the "/" menu.
- Nothing uses the host's native draft-image pipeline (createDraftImages/addImages are not used)
- if the model needs to see an image, it reads it by path with the harness-native read_image tool, so non-vision models are never blocked by "this model doesn't support images".
Requirements
- Stashing requires the session to have a workspace directory (cwd).
- Without a workspace, every file type fails — there is nowhere to put the file.
Install command
dsh plugin --profile web add github:CocoSgt/dsh-attachments