DeepSeek Harness plugin

dsh-no-workspace

Start a read-only session without choosing a workspace: isolated directory, locked read-only composition, approval-gated absolute-path file reads.

Jump to install

Source facts

Repository
Syhz-666/dsh-no-workspace
Latest update
Aug 18, 2026
Category
Memory
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Syhz-666/dsh-no-workspace
Plugin: dsh-no-workspace
Author: Syhz-666

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

<h1 align="center">dsh-no-workspace</h1>

<p align="center"> <strong>为 DeepSeek Harness 提供「只读会话」的插件。</strong><br> 不选工作区,即刻开始;一经选择,永久只读。 </p>

<p align="center"><sub>社区插件,并非 DeepSeek 官方产品。中文 · <a href="README.en.md">English</a></sub></p>

<p align="center"> <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-2EA44F?style=flat" alt="MIT License"></a> <img src="https://img.shields.io/badge/Windows%20%7C%20macOS%20%7C%20Linux-4493F8?style=flat-square" alt="Supported platforms"> <a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/dsh-plugin-4D6BFE?style=flat" alt="dsh-plugin"></a> </p>

这是什么

dsh-no-workspace 是一个 DeepSeek Harness(dsh)插件:在工作区选择器中提供「不使用工作区(只读会话)」入口,并提供「只读会话」模式。无论从哪个入口进入,会话都被结构性锁定为只读——只能对话、网页检索、查会话历史、跟踪任务与目标;文件访问受控(隔离目录内的相对路径免审批,其余读取逐次审批),没有 Shell、没有写入工具、没有子代理。

主要功能

<table> <tr> <td width="50%" valign="top"> <h3>不使用工作区(只读会话)</h3> <p>工作区选择器菜单中的入口:点击后直接创建无工作区会话并跳转进入。会话工作目录是 <code>$DSH_HOME/.dsh-no-workspace/&lt;sessionId&gt;/</code> 下的空隔离目录。</p> </td> <td width="50%" valign="top"> <h3>结构性只读锁定</h3> <p>会话成为只读的瞬间写入零长度 <code>turn/start</code>+<code>turn/end</code>,使其永久非 blank,官方预设切换守卫从此拒绝任何预设变更——工具面不可升级。</p> </td> </tr> <tr> <td width="50%" valign="top"> <h3>只读会话模式</h3> <p>「只读会话」同时出现在模式选择器中,已有会话可切换进入(同样立即锁定)。也可用 <code>/readonly-session</code> 命令创建。</p> </td> <td width="50%" valign="top"> <h3>与官方构建零耦合</h3> <p>不修改官方源码、不修改官方构建产物、不装饰任何官方服务。菜单项由精确路由在 serve 时于内存中注入官方 bundle,官方包重建、升级、<code>pnpm install</code> 后无需任何重放操作。</p> </td> </tr> </table>

安装

前置:本机已有一份已构建的官方 dsh 项目(在其目录内执行过 pnpm install && pnpm run build)。以下步骤中的 <仓库地址><dsh 项目目录> 请替换为实际路径,不要照抄示例。

# 1. 获取插件源码
git clone <仓库地址> dsh-no-workspace
cd dsh-no-workspace

# 2. 构建插件
pnpm install && pnpm run build
# 3. 安装进 web profile(在官方 dsh 项目目录内执行;命令由 dsh CLI 提供)
cd <dsh 项目目录>
pnpm dsh plugin --profile web add <插件目录的绝对路径>
# 4. 重启 dsh web,浏览器硬刷新(Ctrl+F5)
pnpm dsh web

说明:

  • 第 3 步把插件登记到 $DSH_HOME/profiles/web$DSH_HOME 默认为 ~/.dsh),路径写法与平台无关;
  • 首次启动时插件把 presets/no-workspace 复制到 $DSH_HOME/.agent-presets/no-workspace/(幂等,用户编辑过的副本不会被覆盖);
  • 把本 README 与仓库链接一起交给 AI 时,AI 按上述四步执行即可完成安装,无需任何手工改动官方项目。

使用

  • 打开工作区选择器 → 「不使用工作区(只读会话)」;或输入 /readonly-session 命令;或创建会话后在模式选择器中选择「只读会话」。
  • 会话一经选择即被锁定:写入零长度 turn/start+turn/end 使其永久非 blank,官方预设切换守卫(agent-preset-locked)从此拒绝任何预设变更。
  • 通过「不使用工作区」菜单或 /readonly-session 命令创建的会话,默认模型为 deepseek-v4-flash + reasoningEffort: 'low',会话内可随时手动修改;从模式选择器切换的会话沿用其原有模型。

安全模型

承诺机制
工具面不可升级会话成为 no-workspace 的瞬间(创建时或 blank 期切换时)写入零长度 turn/start+turn/end → 永久非 blank → 官方预设切换守卫永久拒绝任何切换
无写入/无命令no-workspace 预设只挂只读工具;官方 tool-fs(read/write/edit)与 Shell 工具从不挂载
文件访问受控绝对路径 → 每次调用用户审批(fail-closed);相对路径 → 仅当会话目录位于隔离根(settings.dsh-no-workspace.isolatedRoot)之内时免审批,否则同样审批;无会话目录的读取直接拒绝
权限旋钮无效果沙箱模式可切换,但没有写工具消费更宽的模式;只读由工具面结构性保证

与官方项目的关系

本项目是 deepseek-ai/deepseek-harness 的社区插件,基于官方插件机制构建:

  • 工具/命令/预设各守各的作用域与数据,不覆盖任何官方组件;
  • 唯一的共享面是用户预设名录($DSH_HOME/.agent-presets/no-workspace),由插件安装、幂等复制;
  • 菜单项由 host 端的精确路由在 serve 时注入官方 bundle 内容(内存装饰,可逆,卸载即还原);
  • 核心的智能体、模型、工具、会话、Web UI 与插件生态均来自官方项目,本插件只在其上添加「只读会话」这一项能力。

开发

pnpm install
pnpm run build     # tsc(host)+ tsdown(host + browser bundle)
pnpm test          # vitest

目录:src/(命令/隔离/锁定/设置/菜单注入)、src/tools/(只读工具)、src/client/(菜单项)、presets/(预设组合)。完整设计记录见 [docs/design.md](docs/design.md)。

License

本项目遵循 [MIT License](LICENSE)。

> 本项目是 DeepSeek Harness 的社区插件,并非 DeepSeek 官方产品。DeepSeek 是 DeepSeek AI 的商标。