Skip to content
dsh.fish
Bundle

dsh-vscode-workbench

Explorer, Monaco editor, search and local Git overlay for DSH

Source
tingfeng347
stars
4 stars
License
MIT
Updated
Updated 10 days ago

Readme

<h1 align="center">DSH VS Code Workbench</h1>

<p align="center">在 DeepSeek Harness 中叠加 VS Code 风格的本地开发工作台。</p>

<p align="center"><b>中文</b> · <a href="README.en.md">English</a></p>

## 亮点

- **真正的 VS Code 风格**:资源管理器 / 搜索 / 源代码管理三视图 + 活动栏 + `Ctrl+Shift+E/F/G` 快捷键,沿用熟悉的 VS Code 工作流。
- **可靠的保存**:原子写入 + 版本校验,磁盘文件被外部改动时立即报冲突,绝不静默覆盖。
- **外部变更可感知**:WebSocket 实时监听工作区,脏文件被外部修改会在标签与状态栏标记。
- **提交图表**:泳道式提交图,分支历史一目了然。
- **按工作区恢复**:活动视图、标签、栏宽、面板与目录展开状态随工作区持久化,刷新后继续工作。

## 功能

### 资源管理器
懒加载目录树,支持新建文件 / 目录、上传、重命名、删除与刷新。可把本地文件拖到工作区根目录或任一目录;新增文件显示 `A`,已修改文件显示 `M` 等 Git 状态。

### 编辑器
Monaco 多标签编辑,脏状态跟踪,原子保存,版本冲突与外部变更提示。

### 预览
Markdown 默认渲染,可切换源码与大纲;支持工作区相对链接、图片与常见图片文件预览。

### 搜索
基于 `@vscode/ripgrep` 的全文搜索,支持大小写、全词、正则与包含 / 排除规则。

### Git
状态分组、暂存、撤销暂存、丢弃、提交、分支切换、内联 / 并排差异与提交图表。

### 布局
可调节与折叠的左侧视图、可扩展的底部面板与状态栏;设置统一管理主题与栏宽。

### DSH 对话
右侧复用官方会话界面,保留消息、编程工具、模型、附件与权限能力。

### 终端
内置由 `node-pty` 与 xterm 驱动的本地交互终端。点击左侧活动栏终端图标打开底部面板,支持多终端、重命名、尺寸自适应、ANSI 输出与 Ctrl+C。

### 状态恢复
按工作区保存活动视图、标签、栏宽与面板状态,刷新后继续工作。

工作台通过官方 `sidebar.footer.action` 与 `shell.overlay` 扩展点挂载,不替换或卸载 `ui-layout`。

## 截图

<p align="center">
  <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/explorer.png" width="800" alt="资源管理器与 Monaco 编辑器">
  <br><em>资源管理器与 Monaco 编辑器</em>
</p>

<p align="center">
  <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/source-control.png" width="800" alt="源代码管理与提交图表">
  <br><em>源代码管理与提交图表</em>
</p>

![2026-08-31 22-52-58.png](https://pic1.imgdb.cn/i/034GkZFU8ULHsWgFio93Lw.png)

## 安装

```bash
dsh plugin --profile web add dsh-vscode-workbench
```

使用 pnpm 安装时,`node-pty` 需要执行受限的原生构建脚本。若出现构建许可提示,请在当前 profile 的 `pnpm-workspace.yaml` 中加入:

```yaml
allowBuilds:
  node-pty: true
```

## 快捷键

| 快捷键 | 操作 |
| --- | --- |
| `Ctrl+Shift+E` | 打开资源管理器 |
| `Ctrl+Shift+F` | 打开搜索 |
| `Ctrl+Shift+G` | 打开源代码管理 |
| `Ctrl+S` | 保存当前文件 |
| `Ctrl+Alt+B` | 显示或隐藏 DSH 对话栏 |
| `Ctrl+\`` | 显示或隐藏终端 |
| `Ctrl+Shift+\`` | 新建终端 |

左侧活动栏的终端按钮会展开终端面板;已打开时再次点击不会关闭它。

## 安全

Host 只接受当前 DSH 会话工作目录内的相对路径,并阻止目录穿越与符号链接越界。保存使用版本校验与原子替换;Git 与 ripgrep 使用参数数组启动,不拼接 Shell 命令。终端只接受同源 loopback 请求,固定在会话工作目录启动,并移除 API key、token、secret 等敏感环境变量。

## 开发

```bash
pnpm install
pnpm typecheck
pnpm test
pnpm build
```

需要 Node.js `^22.19 || >=24`、pnpm 11.7、系统 Git,以及 `node-pty` 所需的本机构建环境(预编译产物不可用时)。

## 许可证

[MIT](LICENSE)

Install

dsh plugin --profile web add github:tingfeng347/dsh-vscode-workbench#3be283914b55d5ffa6c29602dc55e2bf89d9021c

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
Source