Skip to content
dsh.fish
Bundle

dsh-right-editor

DSH Web plugin: a right-docked file panel that browses any directory and views/edits text, images (brightness/contrast/grayscale/rotate/flip), and Office/PDF documents (.docx/.xlsx/.pptx/.pdf via local Python).

Source
banttethai-ops
stars
1 stars
License
MIT
Updated
Updated yesterday

Readme

# dsh-right-editor

一个面向 **DeepSeek Harness Web** 的右侧栏插件:浏览任意目录,查看并编辑 **文本、图片、Office 文档与 PDF**。支持 docx/xlsx 原位编辑保存,不依赖第三方预览服务。

## ✨ 功能

| 类型 | 能力 |
| --- | --- |
| 文件浏览 | 从当前会话工作区开始浏览;支持目录导航、上一级、刷新、任意路径跳转 |
| 文本 / 代码 | 查看并编辑任意 UTF-8 文本文件(上限 8MB),Ctrl+S 或按钮保存 |
| 图片 | png / jpg / jpeg / gif / webp / bmp / svg / ico / avif;canvas 预览,支持**亮度 / 对比度 / 灰度 / 旋转 90° / 水平与垂直翻转**,一键保存回原文件 |
| Word(.docx) | **查看 + 编辑保存**:正文段落、表格单元格均可改,原位写回并保留原样式 |
| Excel(.xlsx) | **查看 + 编辑保存**:工作表标签切换、单元格可改,写回原文件 |
| PPT(.pptx) | 只读:逐页文本预览 |
| PDF | 只读:逐页文本提取预览(文本型 PDF;扫描件请配合 OCR) |

## 📦 安装

### 前置条件

- DSH web 运行中(`dsh web` 或桌面版)
- Node.js ≥ 20
- (可选,用于 Office/PDF 预览)Python 3 + 依赖库:

```bash
pip install python-docx openpyxl python-pptx pdfplumber
```

> 没有 Python 时插件仍可浏览目录、编辑文本和图片;只有 docx/xlsx/pptx/pdf 的解析与编辑保存不可用。

### 通过插件市场 / 命令安装

```bash
# 在 DSH 所在环境执行
dsh plugin --profile web add dsh-right-editor
```

装完后**硬刷新浏览器**(Ctrl/Cmd+Shift+R)即可看到侧边栏按钮。

### 手动挂载(开发 / 本地)

1. 克隆或解压本包到任意目录,例如 `~/Code/dsh-right-editor`
2. 在 `~/.dsh/profiles/web/package.json` 的 `dependencies` 加入:

```json
"dsh-right-editor": "file:/绝对路径/dsh-right-editor"
```

3. 在 `~/.dsh/profiles/web/cordis.patch.yml` 追加:

```yaml
- insert:
    - id: right-editor
      name: 'dsh-right-editor'
```

4. `cd ~/.dsh/profiles/web && pnpm install`,然后重启 DSH 并硬刷新浏览器。

## 🚀 使用说明

1. 进入任意会话,在**顶部标题栏右侧**点击 **📝** 按钮打开右侧编辑面板;
2. 面板从当前会话工作区开始,可点目录进入、点文件打开;
3. **文本**:直接编辑,点「💾 保存」或按 `Ctrl+S`;
4. **图片**:用滑块调整亮度/对比度、勾选灰度、旋转/翻转,点「💾 保存」写回;
5. **Word/Excel**:点「✏️ 编辑」进入编辑态,改完后点「💾 保存」;PPT/PDF 为只读预览;
6. 路径栏支持输入任意绝对路径回车跳转,或点 ⬆ 返回上级目录。

## ⚙️ 配置

| 键 | 默认 | 说明 |
| --- | --- | --- |
| `pythonCommand` | `python` | 用于解析 Office/PDF 的 Python 可执行文件;Windows 上找不到 `python` 时会自动尝试 `py` |

在 `cordis.patch.yml` 的插件行 `config` 下覆盖。

## 🧩 技术实现

- **Host 半**(`lib/index.js`):通过 `ctx.webServer` 注册 `/right-editor/api/*` JSON 路由;文件操作走 `ctx.fs`(继承会话沙箱策略,默认显式 `danger-full-access`,与用户授权一致);二进制图片写入与 Python 解析走 `ctx.shell`(PowerShell)。
- **文档解析**:docx/xlsx/pptx/pdf 由本地 Python(`python-docx` / `openpyxl` / `python-pptx` / `pdfplumber`)解析,脚本经 stdin 传入(`python -`),避免将脚本落盘而受 `Temp/inspect.py` 之类文件干扰。
- **Client 半**(`lib/client.js`):标准 `window.__ModuleLoader__.load` 客户端,注册 `conversation.session.header.utilities`(📝 按钮)与 `shell.overlay`(右侧面板)两个槽位;纯 `React.createElement`,无 JSX 构建步骤。

## 📄 许可证

MIT © 2026

Install

dsh plugin --profile web add github:banttethai-ops/dsh-right-editor

Profile: web

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