lanyun077/dsh-project
把多个文件夹与会话收纳为「项目」,共享 PROJECT.md 记忆与 AGENTS.md 指令并注入每个会话,附带项目树侧边栏。
Bundle 已验证
MIT
JavaScript
未知
Bundle 已验证
已收录
0
Memory
Bundle 已验证
★ 0
在 GitHub 查看
预览
功能介绍
把多个文件夹与会话收纳为「项目」,共享 PROJECT.md 记忆与 AGENTS.md 指令并注入每个会话,附带项目树侧边栏。
适合
- 跨多个文件夹和会话、需要共享指令与记忆的项目。
- 希望通过项目树整理工作区,并在项目间移动会话的用户。
- 能够在 PROJECT.md 中维护精简项目上下文、在 AGENTS.md 中维护共享规则的团队。
不适合
- 要求根据目录路径自动推断项目归属的工作流。
- 共享记忆文件很大的项目,因为 PROJECT.md 会整体注入,而非按需检索。
- 需要项目级 MCP、技能、默认模型或跨会话任务派发的用户;v1 不提供这些能力。
README
dsh-project
DeepSeek Harness 的「项目」插件:把多个文件夹 + 多个会话 + 一份共享记忆/指令收敛到一个项目实体,作为叠加层补齐 DSH 缺失的”项目”概念(不改内核)。
能力
- 收纳性:侧边栏「项目」入口 → 项目树(项目 → 文件夹 → 会话)。一个项目可挂多个文件夹(每个自动注册为工作区),会话可拖入/移出。
-
项目内新建会话:在项目的任意文件夹里一键新建会话(复用
workspaces.connectWorkspace)。 -
记忆互通:项目级
PROJECT.md共享记忆——本项目所有会话开始时整体注入;agent 用project_memory_write工具追加、project_context读概览。 -
项目指令:项目级
AGENTS.md注入本项目每个会话的 system-prompt 段(热重载)。 -
工具:
project_memory_write、project_context。
架构
| 半 | 文件 | 说明 |
|---|---|---|
| host | index.js |
cordis 插件:/api/dsh-project/* 路由、工具注册、project:context system-prompt 段 + agent/pre-step 记忆注入、公告 |
| host | store.js |
ProjectStore:~/.dsh/projects/<id>/(project.json + AGENTS.md + PROJECT.md),原子写 |
| browser | client.js |
ModuleLoader bundle:侧边栏入口(DOM 注入)+ center-column 项目面板(独立 React 根)+ fetch API |
数据模型
~/.dsh/projects/<id>/
├── project.json # { id, name, description, folders:[{path,workspaceId}], sessionIds, archived, ... }
├── AGENTS.md # 项目指令(注入系统提示)
└── PROJECT.md # 项目共享记忆(会话开始整体注入)
注入
-
project:contextsystem-prompt 段(text为函数,按context.scope(agent)动态渲染当前项目):项目名/简介/文件夹/AGENTS.md。 -
agent/pre-step:把PROJECT.md快照 prepend 到会话第一条用户消息。
安装
本地插件,参考 DSH 插件装载约定(cordis.patch.yml + profile node_modules 解析):
- 让
dsh-project可被 profile 解析(如file:../dsh-project依赖或 node_modules 软链)。 - 在 profile 的
cordis.patch.yml加: ```yaml- insert:
- id: project name: ‘dsh-project’ ```
- insert:
- 重启 DSH web(
dsh web)。
限制 / 已知取舍
- 会话显式归属项目(在「项目」面板创建/加入),不按目录自动推断。
-
PROJECT.md为整体注入(无向量检索),保持精简;结构化检索留待 v2。 - v1 不做项目级 MCP/技能/默认模型/跨会话子任务派发。
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:lanyun077/dsh-project。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。