dsh-sidebar-files
DeepSeek Harness 侧边栏文件树:新增 Sessions/Files 标签页与懒加载文件树,按扩展名显示品牌图标,支持复制路径与发送给 agent
fallen0543
@fallen0543
⬇ 1
★ 2
main
安装
dsh plugin --profile web add github:fallen0543/dsh-sidebar-files
需要可复现安装时,可在仓库后追加 #commit 固定提交。
DeepSeek Harness 侧边栏文件树:新增 Sessions/Files 标签页与懒加载文件树,按扩展名显示品牌图标,支持复制路径与发送给 agent
该插件未提供要点说明,请参考仓库 README。
dsh-pluginagentcoding-agentdeepseekdeepseek-aideepseek-harness
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/fallen0543/dsh-sidebar-files |
| 许可证 | 未标注(见仓库) |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 2 |
| 最近推送 | 2026-08-15 |
| 收录日期 | 2026-09-19 |
| 分类 | 界面增强 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-sidebar-files
English | [中文](README.zh.md)
[](https://www.npmjs.com/package/dsh-sidebar-files)
[](LICENSE)
A sidebar file tree for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness). Adds a **Sessions / Files** tab strip to the left sidebar and an inline, lazy-loaded file tree over the active workspace — with per-extension brand icons, copy-path, and send-to-agent actions.

Hover a file row for two actions — **copy path** and **send to agent**:
[图片: Copy path]
Copy path
[图片: Send to agent]
Send to agent
> **Plugin status.** Built and verified against the published harness (`0.1.0-rc.6`, the `web` profile). It runs entirely as an out-of-tree bundle: the node half serves directory listings through its own HTTP route, the browser half renders the tree. No core changes required.
## Features
- **Sessions / Files tab strip** injected below the New Session button (wide sidebar). The tree renders inline in the sidebar region — same presentation as the harness's own browsing surfaces.
- **Lazy listing**: one directory level is fetched on demand (the workspace root on open, a directory on first expand), through the plugin's own `GET /dsh-sidebar-files/list?path=…` route. Wire cost follows what you actually open.
- **Per-extension icons**: 47 brand-style glyphs for common extensions (ts/js/json/yml/yaml/css/html/md/ico/png/zip/log/…), plus a generic document fallback. Icon path data from [Material Icon Theme](https://github.com/PKief/vscode-material-icon-theme) (MIT, © Material Extensions 2025) — see [LICENSE](LICENSE).
- **Hidden by default**: dot-led names, `node_modules`, and `.git` are filtered out; the **显示隐藏项** toggle reveals them. `node_modules`/`.git` stay hidden until the toggle is on.
- **Row actions** (hover): copy path (with one-second "copied" feedback) and send the file to the current session's agent (a queued "please read this file" prompt).
- **Resilient fallback**: if the shell's sidebar structure is ever unrecognizable, the plugin degrades to a footer action button + centered modal instead of the tab strip — never a blank screen.
- **Bilingual** (中文 / English), following the harness locale.
## Install
Requires the `dsh` CLI (`npm i -g @deepseek-ai/dsh`) and pnpm.
**What is a profile?** A *profile* is one runnable composition of the harness — a named instance with its own set of plugins. Profiles live under `$DSH_HOME/profiles/` (e.g. `~/.dsh/profiles/web`). `--profile ` tells the `dsh` CLI which instance to operate on; replace `` with your own (the classic example is `web`).
```sh
# from any directory — installs the published package from npm
dsh plugin --profile web add dsh-sidebar-files
```
If a profile with that name does not exist yet, the command initializes it on first use. Restart the harness with the same profile name and the **会话 / 文件** tabs appear in the sidebar:
```sh
dsh --profile web
```
> If the profile is a fresh one, also add the web app bundle first: `dsh plugin --profile web add @deepseek-ai/dsh-web-app@0.1.0-rc.6` (or use the built-in `web` profile template that ships with the CLI).
### Alternative installs
Local checkout or prebuilt tarball (no registry needed):
```sh
dsh plugin --profile web add ./dsh-sidebar-files # local checkout (uses prepare)
dsh plugin --profile web add ./dsh-sidebar-files-0.1.0.tgz # prebuilt tarball
```
From GitHub (`github:Fallen0543/dsh-sidebar-files`) — fetches **sources**; the package's `prepare` script then builds `lib/` from source, self-contained (no monorepo checkout needed). pnpm ≥10 refuses to run a git dependency's `prepare` script until you allowlist it — copy the exact package key pnpm printed into the profile's `pnpm-workspace.yaml`:
```yaml
allowBuilds:
dsh-sidebar-files: true
```
and re-run the `add`. Only allow packages whose source you trust, and prefer pinning a commit (`github:Fallen0543/dsh-sidebar-files#`). Installing from npm or a tarball needs no build permission.
## Development
```sh
pnpm install
pnpm test # unit tests: listing logic, sidebar-host probing/injection, panel behavior
pnpm run typecheck
pnpm run build # lib/index.js (node) + lib/client.js (browser bundle)
```
The browser bundle is a CommonJS closure-factory artifact (`window.__ModuleLoader__.load({…})`) with the harness's platform modules external, so it loads through the web shell's module table; CSS modules are compiled in with lightningcss.
## How it works
- `cordis.patch.yml` inserts one host row (`id: sidebar-files`) that mounts the node half.
- The node half (`src/index.ts`) registers a web-server route prefix `/dsh-sidebar-files`; `GET /list?path=` lists one directory level (directories first, then files; bounded to the first 1000 entries) and returns `{ path, entries, truncated }` — errors are 400 with a machine-readable code.
- The browser half (`dsh.client` declaration, `./client` export) registers into the harness's `sidebar.footer.action` slot, then locates the sidebar column at runtime from its own trigger button and injects the Sessions/Files tab strip and the inline tree region (see `src/client/sidebar-host.ts`). When the shell structure is unrecognizable, the footer button + modal fallback takes over.
- The active workspace path is derived from the session/workspace stores (current session's workspace, else recent, else first) through selector hooks, exactly like the harness's own browsing surfaces.
## License
MIT — see [LICENSE](LICENSE). File-type icon glyphs are derived from [Material Icon Theme](https://github.com/PKief/vscode-material-icon-theme) (MIT, © Material Extensions 2025); the attribution and copyright notice are preserved in `src/client/file-type-icons.tsx`.
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。