Skip to content
dsh.fish
Bundle

dsh-wsl-idea

WSL workspace and coding tools for DeepSeek Harness

Source
Rycar1
Updated
Updated 7 days ago

Readme

# DSH for WSL

为 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Desktop 提供 WSL 工作区集成。在同一个 DSH 环境中注册本机与 WSL 工作区,文件树、编辑器和 Shell 始终指向同一份文件。
![image.png](./images/img1.png)
## 功能

- 点击 DSH 自带的“添加工作区”后,可选择本机文件夹或电脑中的 WSL 发行版。
- WSL 工作区直接使用 `\\wsl.localhost\\<发行版>\\...`,支持 `/home` 等 Linux 原生目录。
- 文件树、`@文件`、编辑工具读取真实 WSL 文件,不再使用空的 Windows 影子目录。
- 前台 Shell 和 Minimal 持久 Bash 自动进入所选发行版及 Linux 工作目录。
- 仅 WSL 工作区增加 `WSL-<发行版> · /linux/path` 标识,不修改本机工作区名称;旧影子记录会追加 `· 旧路径`。
- WSL UNC 写入使用兼容的原子替换方式,避开共享不支持的 Win32 ACL API。
- 兼容旧版创建的 Windows 影子路径,历史工作区和会话无需删除或重新分组。
- 点击 WSL 发行版后可从 `/` 浏览 Linux 目录,支持面包屑、上级目录和隐藏文件夹切换。
- 提供 `wsl_list_distros`、`wsl_workspace` 和 `wsl_run` 模型工具。
![image.png](./images/img3.png)
## 环境要求

- Windows 10/11,并已启用 WSL 2。
- DeepSeek Harness `rc.6` 或更高版本。
- 至少安装一个普通 WSL 发行版。
- WSL 工作区会话使用 `Full access`。Windows 的 Workspace Write ACL 沙箱不能约束 WSL 的 9P UNC 共享。

检查 WSL 状态:

```powershell
wsl.exe --list --verbose
```

## 安装

从 GitHub 安装到 Desktop profile:

```powershell
dsh plugin --profile desktop add git+ssh://git@github.com/Rycar1/dsh-for-wsl.git
```

也可以使用 HTTPS:

```powershell
dsh plugin --profile desktop add https://github.com/Rycar1/dsh-for-wsl.git
```

从本地源码安装时,默认克隆目录就是 `dsh-for-wsl`:

```powershell
git clone git@github.com:Rycar1/dsh-for-wsl.git
dsh plugin --profile desktop add ".\dsh-for-wsl"
```

添加本地插件必须使用 `add`;`install` 只会安装 profile 中已有的依赖。安装完成后请完全退出并重启 DSH Desktop。

## 使用

1. 点击 DSH 的“选择工作区”或侧栏中的“添加工作区”。
2. 选择“本机工作区”可打开 Windows 原生文件夹选择器。
3. 点击一个 WSL 发行版,从 `/` 展开 Linux 目录;也可以在路径框直接输入 `/home/kali/project`。
4. 进入目标文件夹后点击“选择当前文件夹”,工作区会加入 DSH 原生工作区列表。
5. 在侧栏自由切换本机与带 `WSL-<发行版> · /路径` 标识的工作区。

活动路径为 `\\wsl.localhost\\<发行版>\\...` 时,普通 Shell 和持久 Bash 都会通过 `wsl.exe --distribution ... --cd ...` 在 WSL 内执行。本机工作区仍使用 Windows Shell。

## Minimal Windows 预设

Minimal 预设会隔离自己的文件系统 provider。自定义 Windows Minimal 预设需要将:

```yaml
- id: fs-local
  name: '@deepseek-ai/dsh-fs-local'
```

替换为:

```yaml
- id: fs-wsl-local
  name: 'dsh-wsl-idea/fs'
```

标准、Code 等使用 Host 文件系统的预设会由插件自动切换到 `dsh-wsl-idea/fs-sandbox`。

## 模型工具

- `wsl_list_distros`:列出普通 WSL 发行版及运行状态,自动隐藏 `docker-desktop`。
- `wsl_workspace`:创建 WSL 目录,并可初始化 Git。
- `wsl_run`:在指定发行版和 Linux 目录中执行命令。

## 故障排查

### 没有显示 WSL 发行版

运行 `wsl.exe --list --verbose`,确认普通发行版能够启动,然后完全退出并重启 DSH Desktop。

### 提示需要 Full access

新建会话时将权限切换为 `Full access`。WSL 工作区不会在 Workspace Write 模式下绕过沙箱执行。

### 旧工作区文件树为空

`0.1.x` 创建的是 `C:\Users\Public\dsh-wsl-workspaces` 影子路径。`0.2.1` 会把此路径透明映射到对应的 `\\wsl.localhost` 目录,不需要删除工作区或迁移历史会话。升级后请完全退出并重启 DSH Desktop。

### DSH Better Sidebar

Better Sidebar `0.12.2` 会绕过 DSH 文件系统服务直接读取工作区,因此旧影子路径下可能显示空目录。需要使用带 WSL 兼容补丁的 `0.12.2-wsl.1`:该版本会把文件树、编辑器、Git、`@文件` 和侧栏终端统一路由到对应发行版。本机 Desktop profile 已固定使用本地兼容包,插件重装后不会覆盖补丁。

## 许可证

MIT

Install

dsh plugin --profile web add github:Rycar1/dsh-for-wsl

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source