🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

多根工作区 keatsyh/dsh-plugin-addir

DeepSeek Harness
keatsyh26 天前有提交已提供中文文档扫描:含敏感能力

为工作区挂载多个外部目录并自动注入上下文

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/10 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add keatsyh/dsh-plugin-addir
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/11/05·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 26 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/11/5) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 18 处,展示前 14 条)
  • 读取本地文件
    src/api.ts:221
    const exists = existsSync(body.path)
  • 读取本地文件
    src/api.ts:222
    const isDir = exists && statSync(body.path).isDirectory()
  • 发起网络请求
    src/client/api.ts:16
    const response = await fetch(new URL(`api/addir/${action}`, document.baseURI), {
  • 读取本地文件
    src/service.ts:128
    if (!existsSync(canonical) || !statSync(canonical).isDirectory()) {
  • 读取本地文件
    src/service.ts:128
    if (!existsSync(canonical) || !statSync(canonical).isDirectory()) {
  • 读取本地文件
    src/service.ts:150
    if (!existsSync(canonical) || !statSync(canonical).isDirectory()) {
  • 读取本地文件
    src/service.ts:150
    if (!existsSync(canonical) || !statSync(canonical).isDirectory()) {
  • 读取本地文件
    src/service.ts:254
    if (!directory.path.trim() || !existsSync(path) || !statSync(path).isDirectory()) {
  • 读取本地文件
    src/service.ts:254
    if (!directory.path.trim() || !existsSync(path) || !statSync(path).isDirectory()) {
  • 读取本地文件
    src/storage.ts:47
    if (!existsSync(this.storageFilePath)) {
  • 读取本地文件
    src/storage.ts:50
    const raw = readFileSync(this.storageFilePath, 'utf-8')
  • 读取本地文件
    src/storage.ts:67
    if (!existsSync(dir)) {
  • 写入本地文件
    src/storage.ts:68
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    src/storage.ts:70
    writeFileSync(this.storageFilePath, `${JSON.stringify(data, null, 2)}\n`, 'utf-8')
扫描于 2026/11/5(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-workspace-controller@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-workspace
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 挂载多个外部目录
  • 自动注入上下文

DeepSeek Harness 的多目录工作区。

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-addir 让 DeepSeek Harness 支持多根目录工作区与上下文动态注入灵感来自 OpenAI Codex --add-dir 与现代 AI IDE 多根目录工作区设计 💡 为什么需要 addir? 默认情况下,DeepSeek Harness 的工作区通常只绑定一个工作目录(Primary Root)。遇到下面这些复杂开发场景,就常常受限: - 跨仓库 / 跨模块协作:前后端工程分离(如 frontend/ 与 backend/),智能体需要同时理解接口定义与业务实现; - 共享代码与公共库:项目依赖独立的公共组件库(如 shared-ui/、core-lib/),需要跨目录检索却不想反复复制代码; - 只读规格与文档参照:引入只读的设计规范、API 契约或第三方代码,需要智能体参考但绝不允许误改。 dsh-plugin-addir 彻底打破单一工作区限制!它支持在当前工作区下关联任意多个外部目录,配合直观的图形化管理界面、自动上下文注入与细粒度只读保护,让智能体自如跨目录协同工作。 ✨ 核心特性 - 📁 多根目录关联(Multi-Root Workspaces) 支持为任意工作区挂载多个额外文件夹,为每个目录配置易记的别名(Alias)、描述信息及只读(Read-Only)标记。
展开完整文档(README 剩余 1 节)
dsh-plugin-addir

让 DeepSeek Harness 支持多根目录工作区与上下文动态注入灵感来自 OpenAI Codex --add-dir 与现代 AI IDE 多根目录工作区设计

💡 为什么需要 addir?

默认情况下,DeepSeek Harness 的工作区通常只绑定一个工作目录(Primary Root)。遇到下面这些复杂开发场景,就常常受限:

- 跨仓库 / 跨模块协作:前后端工程分离(如 frontend/ 与 backend/),智能体需要同时理解接口定义与业务实现;
- 共享代码与公共库:项目依赖独立的公共组件库(如 shared-ui/、core-lib/),需要跨目录检索却不想反复复制代码;
- 只读规格与文档参照:引入只读的设计规范、API 契约或第三方代码,需要智能体参考但绝不允许误改。

dsh-plugin-addir 彻底打破单一工作区限制!它支持在当前工作区下关联任意多个外部目录,配合直观的图形化管理界面、自动上下文注入与细粒度只读保护,让智能体自如跨目录协同工作。

✨ 核心特性

- 📁 多根目录关联(Multi-Root Workspaces) 支持为任意工作区挂载多个额外文件夹,为每个目录配置易记的别名(Alias)、描述信息及只读(Read-Only)标记。
- 🧠 上下文动态注入(Context Injection) 每轮对话自动将当前生效的目录树注入给大模型上下文。智能体可直接理解 [别名]/path 或 别名:path 路径简写。
- 🛡️ 细粒度只读防护(Read-Only Protection) 勾选 只读 的目录将被文件工具守卫拦截 write / edit 操作,彻底避免智能体误改公共依赖或文档。
- 🖥️ 无缝原生 UI(Native GUI Integration) 深度集成 DSH 工作区列表菜单(⋯ → 编辑)。弹窗支持调用系统原生目录选择器,体验丝滑自然。
- 💾 跨会话持久化(Auto Persistence) 关联关系按工作区根路径隔离并持久化至本地存储($DSH_HOME/storages/addir.json),应用重启后自动恢复。
- 🤖 智能体自主管理(Agent Tools) 内置 addir_list、addir_add、addir_remove 工具,允许智能体在对话中动态扩展视野;也可一键关闭权限,由用户完全掌控。

🖥️ 界面展示

1. 工作区菜单入口

在工作区列表中点击目标项目的「⋯」按钮,选择「编辑」:

工作区菜单

2. 多目录图形化管理弹窗

支持修改工作区名称、使用系统原生目录选择器添加文件夹、配置个性化别名,并可单独勾选「只读」权限:

编辑项目弹窗

注入到模型的上下文示例

启用 enableContextInjection 后,插件会在每轮对话自动向大模型注入当前工作区的生效目录表:

Active Workspace Directories
- [primary] /Users/dev/repo/frontend (Primary root)
- [backend] /Users/dev/repo/backend - 核心 API 服务
- [specs] /Users/dev/repo/api-specs [Read-Only] - OpenAPI 契约定义

智能体能够据此识别每个目录的作用,并使用 [backend]/src/app.ts 或直接使用绝对路径进行高效分析。

🚀 快速上手

1. 安装插件(参考下方安装指南);
2. 关联目录:在工作区列表点击「⋯」→「编辑」,点击「添加文件夹」选择本地目录,设置别名(如 backend)并保存;
3. 开始对话:直接对智能体说:
"请阅读 [backend] 目录下的路由定义,并在当前前端项目中生成对应的 API 请求函数。"

📦 安装指南

1. 通过 DSH 插件市场 / 设置面板安装

打开 DeepSeek Harness 桌面端或 Web 端,进入 设置 → 插件管理,搜索 dsh-plugin-addir,点击安装即可。

2. 通过命令行安装(推荐)

Web Profile(推荐在 Web 版使用)
dsh plugin --profile web add dsh-plugin-addir

桌面端 Desktop Profile 注意:桌面端首次使用请先启动一次应用以初始化 profile,完全退出应用后再执行安装命令,随后重新打开应用
dsh plugin --profile desktop add dsh-plugin-addir

Headless / 自定义 Profile
dsh plugin --profile headless add dsh-plugin-addir

[!NOTE]
本插件自带 bundle patch(cordis.patch.yml),安装时会自动向 profile 注册 id: addir,无需手动修改配置文件。

3. 从源码构建安装(开发者模式)

克隆仓库
git clone https://github.com/keatsyh/dsh-plugin-addir.git
cd dsh-plugin-addir

安装依赖并构建(prepare 会自动编译 lib/ 产物)
pnpm install

软链接安装到目标 profile
dsh plugin --profile web add "link:$PWD"

⚙️ 配置说明

所有配置项都有合理的默认值。你可以在 DSH 的插件设置页里直观调整,也可以在 profile 对应的 cordis.patch.yml 中覆盖配置:

| 配置项 | 类型 | 默认值 | 说明 |
| enableTools | boolean | true | 是否向智能体暴露 addir_ 工具(允许模型自己增删目录) |
| enableContextInjection | boolean | true | 是否在每轮对话开始前向系统提示词注入工作区目录表 |
| enforceReadOnly | boolean | true | 是否在底层工具拦截对标记为只读目录的文件写入与编辑 |
| defaultDirectories | Array | [] | 启动时预先关联的静态目录列表(包含 path, alias, description, readOnly) |

YAML 配置示例

- id: addir
config:
enableTools: false # 仅允许在 UI 界面中手动管理,禁止智能体自行增删 enableContextInjection: true # 保持提示词注入 enforceReadOnly: true # 开启只读保护 defaultDirectories:
- path: /data/docs/specs
alias: specs
description: API 规范文档 readOnly: true

[!TIP]
界面里所做的新增、编辑和删除操作,会实时持久化在 $DSH_HOME/storages/addir.json 中,按规范化工作区根路径索引,无需担心重启丢失。

🛠️ 智能体工具(Agent Tools)

当 enableTools 开启时,智能体可自主使用以下工具:

| 工具名称 | 参数 | 说明 |
| addir_list | — | 查看当前工作区已关联的所有目录(包括主根目录、别名、描述与只读标记) |
| addir_add | path (必填)alias (可选)description (可选)readOnly (可选) | 动态关联一个额外目录。支持传入绝对路径或相对工作区主目录的路径 |
| addir_remove | pathOrAlias (必填) | 解除关联指定目录(支持按绝对路径或别名查找,主根目录不可移除) |

如不希望智能体拥有自主挂载权限,只需将配置中的 enableTools 设为 false。

🧩 开发者 API

其他插件或扩展可以通过 Cordis 服务上下文直接调用 ctx.addir:

import type { Context } from '@deepseek-ai/cordis'

export function apply(ctx: Context) {
// 获取当前会话下关联的目录列表 const dirs = ctx.addir.list(sessionId)

// 动态关联额外目录
ctx.addir.add({
path: '/path/to/shared-lib',
alias: 'shared',
description: 'Shared utilities',
readOnly: true,
}, sessionId)

// 解析带别名的路径为真实绝对路径(例如 '[shared]/utils.ts' -> '/path/to/shared-lib/utils.ts') const resolved = ctx.addir.resolvePath('[shared]/utils.ts', sessionId)

// 检查某个路径是否归属于当前工作区或其关联目录 const isIncluded = ctx.addir.isUnderWorkspace('/path/to/file.ts', sessionId)

// 检查某个路径是否处于只读保护范围内 const isReadOnly = ctx.addir.isReadOnly('/path/to/file.ts', sessionId) }

❓ 常见问题 (FAQ)

Q: 桌面端(Desktop)安装后没有出现「编辑」菜单?

桌面端应用在首次安装插件时,需要完全退出应用进程(macOS 请使用 Cmd + Q,Windows 请从托盘或任务管理器完全退出),再次启动应用使客户端扩展脚本加载生效。

Q:标记为只读的目录,智能体还能阅读或搜索代码吗?

可以。只读保护只拦截 write、edit 这类修改文件的工具调用,代码阅读(read)、检索(grep / glob)等完全正常运作。

Q:可以在多个不同的工作区中使用相同的别名吗?

可以。目录关联数据严格按照各工作区的根目录路径隔离存储,不同工作区之间的别名互不影响。

Q:如何防止智能体自作主张关联新目录?

在 DSH 插件设置中将 enableTools 开关关闭(或在配置文件中设为 false),智能体就不再拥有 addir_ 工具,但你依然可以在 GUI 弹窗中手动管理目录。

💻 本地开发

安装依赖
pnpm install

运行单元测试与集成测试
pnpm test

类型检查
pnpm run typecheck

构建打包(含 client bundle 语法检查与 d.ts 生成)
pnpm run build

架构提示:客户端代码采用经典脚本与 DSH 共享模块加载器注册(window.__ModuleLoader__.load),使用宿主提供的 React 运行时。工作区菜单入口通过 DOM 适配器挂载(src/client/workspace-menu.ts)。

📄 License

本项目基于 MIT 许可证 开源。
预览分享卡片长什么样 ↓keatsyh/dsh-plugin-addir
分享 · DeepSeek Harness Hub
keatsyh/dsh-plugin-addir

为工作区挂载多个外部目录并自动注入上下文

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部