dsh-project-sources
Manifest validCodex-style project sources for DeepSeek Harness: attach extra folders to one workspace, alias them, and share read/write/exec permissions
dsh-project-sources
中文 | English
Codex-style project sources for DeepSeek Harness: one workspace, many folders, each with an alias the agent can use.
A DeepSeek Harness plugin bundle that attaches extra folders to a workspace. The session keeps the workspace as its cwd; every attached folder gets the same read / write / edit / command permissions under the session's current sandbox mode, and each one carries a short alias the model can refer to.
- Project editor — “编辑项目” dialog from the session header, or the “📁 项目源文件夹” pill on the session-creation page. Add folders, rename aliases, remove them.
- Aliases in the conversation — one system-prompt section maps every alias to its absolute path, so
@web/src/a.tsis unambiguous to the model. @menu coverage — the shipped@provider is single-root; this plugin contributes a companion group that searches every source (by alias, by folder name, or by absolute path).- Source-folder skills —
/finds skills under<source>/.dsh/skills,<source>/.agents/skillsand<source>/skills, recursively. - No new tools —
read/glob/grepalready work anywhere;write/edit/pwsh/bashare intercepted and re-rooted at the matching source.
Requirements
- DeepSeek Harness 0.2.1-rc.5 … 0.2.x (
engines.dsh: ^0.2.1-rc.5) - Node.js ≥ 20
Install
From the Web UI: Settings → Plugins → Add, then paste dsh-project-sources.
From the CLI:
dsh plugin --profile <profile> add dsh-project-sources@0.1.0
Or from a local checkout (the agent tool plugin_manager accepts a directory):
plugin_manager install_bundle target: D:\work\dsh-project-sources
Restart the Host after a source change (the Host module is imported at boot); the browser bundle reloads on a page refresh.
Usage
| Action | Where |
|---|---|
| Edit the project | “项目” button in the session header |
| Edit before the first message | “📁 项目源文件夹” above the composer on the session-creation page |
| Add a folder | Click “添加文件夹” → the OS folder chooser opens |
| Rename | Type in the alias field of a row |
| Remove | × on the row (the workspace itself cannot be removed) |
Aliases must be letters/digits/./_/-, at most 48 characters; duplicates get a -2 suffix.
Where it stores data
<DSH_HOME>/storages/project-sources/<workspace-key>.json — one record per workspace, outside every agent sandbox root. Only user-driven flows write it; the agent cannot add folders to itself.
Platforms
| Windows | macOS | Linux | |
|---|---|---|---|
| Folder chooser | powershell -STA + FolderBrowserDialog | osascript … choose folder | falls back to the Host picker, then the manual path field |
The sandbox re-rooting, @ menu and skill discovery are platform-neutral. macOS support is implemented but not yet tested on a Mac.
Limitations
- One writable root per command. A shell run writes inside only the directory its
workdirresolves to. Pass an absoluteworkdirinside the source; a relative one resolves against the workspace, andgit -C <source>/cd <source>inside the command does not widen the root. - The session
cwdis fixed: there is no “primary folder” concept, and the workspace root stays the default working directory. - Cannot run beside another plugin that intercepts the same tool pipeline (e.g.
dsh-multi-folder). - Background shell runs are supported through the jobs runtime, but a denial that happens after the call returns is only visible in
job_output.
Development
No build step. npm test runs both suites without the DSH runtime:
node test/smoke.mjs # config store, interception, prompt, remote API
node test/skills.mjs # source-folder skill discovery
Release workflow (version bump, npm publish with passkey, rollback, pitfalls) is documented in docs/RELEASING.md (Chinese).
Acknowledgements
The tool-interception and sandbox re-rooting approach follows
dsh-multi-folder by Yutong Zou
(MIT). See NOTICE.
License
MIT
Comments
Loading…
Similar plugins
by AngelosZou
Secondary working directories for a DeepSeek Harness project — edit a source repo, a test repo, and a docs repo side by side without leaving the primary workspace.
★ 14
MIT
JavaScript
Oct 23, 2026
dsh plugin --profile web add dsh-multi-folderby xinyang20
Workspace resource library for DeepSeek Harness: organize, preview and reuse references and deliverables.
★ 0
MIT
TypeScript
Oct 8, 2026
dsh plugin --profile web add dsh-project-spaceby FSMargoo
Codex-style @file mentions for DeepSeek Harness: search workspace files in the composer and attach their path to prompts.
★ 560
↓ 69.1k/wk
MIT
JavaScript
Sep 1, 2026
dsh plugin --profile web add dsh-at-fileby Harzva
Discovers Codex and Claude project directories and registers them as shared DeepSeek Harness workspaces.
★ 1
MIT
JavaScript
Aug 23, 2026
dsh plugin --profile web add dsh-agent-project-syncby cherrchen
多文件夹 workspace:让 DSH(DeepSeek Harness)的 Agent 不只能读写主目录,还能同时读写你添加的其他文件夹。Multi-folder workspace for DeepSeek Harness: let the agent read and write several folders at once, not just the primary one.
★ 19
↓ 1.2k/wk
MIT
TypeScript
Nov 5, 2026
dsh plugin --profile web add @dsh-electron/dsh-plugin-multi-root-workspaceby louisremi
DSH Alway-On: adapt DeepSeek Harness to be used in containers. Browse folders, download files and edit them right from DSH's Web UI
★ 0
MIT
TypeScript
Oct 26, 2026
dsh plugin --profile web add @louisremi/dsh-always-on