📁 dsh-projects
A Project Center for DeepSeek Harness Web — inspired by Cowork & WorkBuddy.
📂 Need a persistent Projects concept in DSH Web — beyond plain sessions? |
✨ dsh-projects brings Cowork/WorkBuddy-style project management into DSH Web.
A sidebar 📁 Projects entry opens a full-screen project center: card grid,
create dialog (name + instructions + folder), and a detail view with editable
instructions, folder & file browsing, manual file pins, and two-way
CLAUDE.md memory sync.
Features · Install · Quick start · CLAUDE.md sync · Data · Development
English · 简体中文
Features
- Sidebar entry — a
📁 项目row injected below the Automations entry (falls back next to the task-board/SSH/skill-explorer family when dsh-automation is not installed). - Project grid — searchable card grid (name, description, updated date, folder badge).
- Create project — name + instructions (the "prompt" telling AI how to work in this project) + link an existing folder or plan a new one.
- Project detail —
- editable instructions;
- related files: live listing of the linked folder + manually pinned files (pick via an in-app file browser — no typing paths);
- folder is editable (re-browse after change);
- scheduled tasks / memory placeholders for future automation & mneme integration.
- CLAUDE.md two-way sync —
- export: save instructions and (optionally) write them into the folder's
CLAUDE.mdinside a<!-- dsh-projects:{id} -->fenced section — any AI tool (Claude Code, Cowork, WorkBuddy…) working in that folder reads the project context; - import: load the folder's
CLAUDE.mdback into the instructions (project section preferred, whole file fallback).
- export: save instructions and (optionally) write them into the folder's
- Persistent & portable — data lives in
~/.dsh/dsh-projects/projects.json(plain JSON, git-friendly). No user path is hard-coded.
Install
The plugin is a standard DSH web plugin bundle. Two ways:
Via GitHub (recommended)
dsh plugin --profile web add github:alwaysmid-19990/dsh-projects
Manual (local copy)
mkdir -p ~/.dsh/plugins
git clone https://github.com/alwaysmid-19990/dsh-projects.git ~/.dsh/plugins/dsh-projects
# register into the web profile:
# add "dsh-projects": "link:/Users/<you>/.dsh/plugins/dsh-projects" to
# ~/.dsh/profiles/web/package.json dependencies, and append "dsh-projects"
# to its dsh.profile.bundles list, then:
# ln -s ~/.dsh/plugins/dsh-projects ~/.dsh/profiles/web/node_modules/dsh-projects
Then restart DSH Web. The sidebar shows the 📁 项目 entry.
The plugin self-registers through its bundled
cordis.patch.yml; no extra configuration is required.
Quick start
- Click 📁 项目 in the sidebar (bottom of the nav group).
- Click + 新项目.
- Enter a name and instructions, then link an existing folder (e.g. your real working directory).
- Open the project card → edit instructions, browse folder files, pin key files via 📂 选择文件….
- Optionally tick sync to CLAUDE.md when saving, or press 📥 载入为项目说明
to pull the folder's existing
CLAUDE.mdinto the instructions.
CLAUDE.md sync
The sync is opt-in per save (checkbox off by default — editing instructions
never touches the folder unless you ask). When enabled, the host writes a
fenced section into <folder>/CLAUDE.md:
<!-- dsh-projects:p-xxxxxxxx -->
## 项目:My project
Instructions text…
<!-- /dsh-projects:p-xxxxxxxx -->
- Existing section → replaced in place.
- No section → appended at the end.
- No
CLAUDE.md→ created.
Data
| What | Where |
|---|---|
| Project records | ~/.dsh/dsh-projects/projects.json |
| REST API | /api/dsh-projects/* (host half, webServer) |
| Folder listing | read-only readdirSync via /api/dsh-projects/browse |
Development
node --check lib/index.js # host half
node --check lib/client.js # browser half (ModuleLoader format)
Layout:
lib/index.js— host half: REST endpoints, JSON persistence, CLAUDE.md sync.lib/client.js— browser half: sidebar entry (self-healing DOM injection), project center UI (React without JSX), in-app file picker.cordis.patch.yml— bundle patch that mounts the plugin row.
No comments yet. Be the first to write one.