<div align="center">
📁 dsh-projects
DSH Web 项目中心 —— 参考 Cowork / WorkBuddy 的项目逻辑。
   
<br>
<table> <tr><td align="left">
📂 需要 DSH Web 里有持久化的「项目」概念,而不只是零散会话?<br> 🧭 需要每个项目绑定真实文件夹,自带说明(指令)与文件?<br> 🔄 需要项目记忆同步进文件夹的 CLAUDE.md,让所有 AI 工具都能读到?
</td></tr> </table>
✨ dsh-projects 把 Cowork/WorkBuddy 式的项目管理带进 DSH Web。
侧边栏 📁 项目 入口打开全屏项目中心:卡片网格、新建对话框(名称+说明+文件夹)、 项目详情(可编辑说明、文件夹与文件浏览、手动标记文件、CLAUDE.md 双向同步)。
<br>
[功能](#功能) · [安装](#安装) · [快速开始](#快速开始) · [CLAUDE.md 同步](#claudemd-同步) · [数据](#数据) · [开发](#开发)
简体中文 · English
</div>
---
功能
- 侧边栏入口 —— 「📁 项目」行,注入在「自动化」下方(未安装 dsh-automation 时自动回退到任务看板/SSH/技能中心导航家族之后)。
- 项目网格 —— 可搜索的卡片网格(名称、说明、更新日期、文件夹标记)。
- 新建项目 —— 名称 + 说明(告诉 AI 如何在这个项目中工作)+ 关联现有文件夹或规划新文件夹。
- 项目详情 ——
- 可编辑说明; - 相关文件:关联文件夹的实时文件列表 + 手动标记文件(通过应用内文件浏览器选择,无需手输路径); - 文件夹可编辑(修改后自动重新浏览); - 计划任务 / 记忆占位(预留 automation 与 mneme 接入)。
- CLAUDE.md 双向同步 ——
- *导出*:保存说明时可选择写入文件夹的 CLAUDE.md(<!-- dsh-projects:{id} --> 围栏区段)——任何 AI 工具(Claude Code、Cowork、WorkBuddy…)在该文件夹工作时都能读到项目上下文; - *导入*:把文件夹已有的 CLAUDE.md 载入为项目说明(优先项目区段,无则全文)。
- 持久化且可移植 —— 数据存
~/.dsh/dsh-projects/projects.json(纯 JSON,便于 git 管理),代码中无硬编码用户路径。
安装
标准 DSH web 插件包,两种方式:
通过 GitHub(推荐)
dsh plugin --profile web add github:alwaysmid-19990/dsh-projects手动(本地副本)
mkdir -p ~/.dsh/plugins
git clone https://github.com/alwaysmid-19990/dsh-projects.git ~/.dsh/plugins/dsh-projects
# 注册进 web profile:
# 在 ~/.dsh/profiles/web/package.json 的 dependencies 加
# "dsh-projects": "link:/Users/<你>/.dsh/plugins/dsh-projects",
# 并在 dsh.profile.bundles 追加 "dsh-projects",然后:
# ln -s ~/.dsh/plugins/dsh-projects ~/.dsh/profiles/web/node_modules/dsh-projects然后重启 DSH Web,侧边栏即出现「📁 项目」入口。
> 插件通过自带的 cordis.patch.yml 自注册,无需额外配置。
快速开始
1. 点击侧边栏 📁 项目。 2. 点击 + 新项目。 3. 填写名称与说明,关联一个现有文件夹(比如你的真实工作目录)。 4. 打开项目卡片 → 编辑说明、浏览文件夹文件、用 📂 选择文件… 标记关键文件。 5. 保存说明时可勾选 *同步到 CLAUDE.md*,或点 📥 载入为项目说明 把文件夹里已有的 CLAUDE.md 拉进说明。
CLAUDE.md 同步
同步是每次保存时手动勾选(默认不勾选——编辑说明不会碰文件夹,除非你主动要求)。 开启后,Host 端会向 <文件夹>/CLAUDE.md 写入围栏区段:
<!-- dsh-projects:p-xxxxxxxx -->
## 项目:我的项目
说明文字…
<!-- /dsh-projects:p-xxxxxxxx -->- 已有区段 → 原位替换;
- 无区段 → 追加到文件末尾;
- 无
CLAUDE.md→ 自动创建。
数据
| 内容 | 位置 |
|---|---|
| 项目记录 | ~/.dsh/dsh-projects/projects.json |
| REST API | /api/dsh-projects/*(host 半区,webServer) |
| 文件夹列表 | 经 /api/dsh-projects/browse 只读 readdirSync |
开发
node --check lib/index.js # host 半区
node --check lib/client.js # 浏览器半区(ModuleLoader 格式)目录结构:
lib/index.js— host 半区:REST 端点、JSON 持久化、CLAUDE.md 同步。lib/client.js— 浏览器半区:侧边栏入口(自愈式 DOM 注入)、项目中心 UI(React 无 JSX)、应用内文件选择器。cordis.patch.yml— 挂载插件的 bundle patch。
License
[MIT](LICENSE)