Ruiming-cn/dsh-better-at
dsh-better-at keeps the native DSH @ reference behavior — hierarchical workspace file/folder references and DSH session references — while removing the per-keystroke host round trips that make the @ menu feel slow.
catalog 简介 / catalog descriptioncatalog description:Fast @ file/session reference caching for DeepSeek Harness Web / DSH @ 引用菜单加速插件
项目介绍Project Overview
dsh-better-at 是 DSH Web 的 @ 引用加速插件:预加载并缓存工作区文件与会话索引,按键过滤在浏览器本地完成,保留原生文件、目录和会话提及格式。适合 @ 菜单因逐键请求 Host 而迟顿时使用。注意缓存有新鲜度窗口,文件变更最多约 30 秒、会话元数据约 5 分钟后更新,且不索引符号链接。
dsh-better-at is a DSH Web plugin that accelerates the @ reference menu. It preloads and caches workspace file and session indexes, then filters and ranks candidates locally in the browser while preserving native file, folder, and session mention formats. Use it when @ feels slow because of per-keystroke Host requests. Caveat: cached data has a freshness window—files up to 30 seconds, sessions up to 5 minutes—and symbolic links are not indexed.
请帮我了解并安装插件:【dsh-better-at】【https://github.com/Ruiming-cn/dsh-better-at】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile web add github:Ruiming-cn/dsh-better-at
把 Ruiming-cn/dsh-better-at 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-better-at
Fast
@file/session reference caching for the DeepSeek Harness Web GUI.
dsh-better-at keeps the native DSH @ reference behavior — hierarchical
workspace file/folder references and DSH session references — while removing the
per-keystroke host round trips that make the @ menu feel slow.
Features
- ⚡ Fast first open: session-scope warm-up preloads the workspace file index
and the DSH session index before the first
@. - ⚡ Local keystroke filtering: after the initial load, typing filters and ranks candidates entirely in the browser; no Host request per keystroke.
- 📁 Hierarchical file/folder references: empty/path queries show direct children, bare fuzzy queries search basenames across the whole workspace.
- 💬 DSH session references: full session metadata is indexed locally and ranked by working-directory affinity, matching the native ordering.
- 🔒 Native mention compatibility: the plugin wraps the existing
referencesource and keeps itsonPick/codec, so file and session mentions keep the original serialized form (@path,@"path",@[label](dsh-session:...)). - 🧩 No Harness source changes: everything is implemented as an out-of-tree Host Remote + browser client bundle.
How It Works
DSH Web @ menu
│ candidates() · local filter/rank
▼
dsh-better-at client cache
│ listFiles / listSessions (once per TTL)
▼
DSH Host betterAt Remote
├── bounded workspace file/directory index
└── full DSH session index + canonical mentions
betterAt/listFileswalks the current workspace once and returns a bounded file/directory index. Defaults exclude.gitandnode_modulesonly, matching the native file-reference behavior.betterAt/listSessionsreads the complete logical session corpus fromctx.sessionQueryand generates nativedsh-session:mentions for the browser.- File indices are cached per session for 30 seconds; the session index is cached globally for 5 minutes. Both use stale-while-revalidate: an expired cache returns the previous snapshot immediately while refreshing in the background.
- The browser wraps the native
@source (trigger='@',name='reference') without replacing its pick/codec path.
Requirements
- DeepSeek Harness (DSH) Web with the native
@reference source available. - Node.js for local development/building.
Installation
One command from GitHub source:
dsh plugin --profile web add github:Ruiming-cn/dsh-better-at
From the GitHub release tarball:
dsh plugin --profile web add https://github.com/Ruiming-cn/dsh-better-at/archive/refs/tags/v0.1.0.tar.gz
From a local checkout:
dsh plugin --profile web add .
Restart dsh web after installation.
Usage
Use @ exactly as usual:
@opens the fast file/folder + session picker.@src/browses insidesrc/.@READMEfuzzy-searches file basenames.@refactorfilters DSH sessions by id, cwd, or label.
After selection, the native composer behavior is preserved: files become atomic file references (or editable directory paths), and DSH sessions become native session references.
Configuration
The Host plugin accepts two settings through the profile patch:
# ~/.dsh/profiles/web/cordis.patch.yml
- id: dsh-better-at
config:
maxEntries: 10000
ignoreDirs:
- .git
- node_modules
| Option | Default | Description |
|---|---|---|
maxEntries |
10000 |
Hard cap on indexed workspace entries; the walk reports truncation. |
ignoreDirs |
['.git', 'node_modules'] |
Directory basenames never indexed or traversed. |
Performance Notes
- The first
@after a warm session is normally served from memory. - Subsequent keystrokes are local
O(N)string scoring over the cached index (file index is bounded bymaxEntries; session index is bounded by the local session corpus). - The main trade-off is a small freshness window: file changes may take up to 30 seconds to appear; session metadata up to 5 minutes. Background refreshes keep the previous snapshot visible while updating.
Compatibility Notes
- The browser integration intentionally uses the same private
inputTriggers.live.sourceswrapping pattern asdsh-skill-fuzzy. If a future Harness version changes that internal structure, the plugin degrades to the nativecandidatespath when the Remote is unavailable. - Symbolic links are not indexed or traversed, matching the native file-reference search behavior.
- The current session is excluded from DSH session candidates to avoid self-references, which the native session-reference protocol rejects.
Development
npm install --legacy-peer-deps
npm run check
npm run typecheck— TypeScript strict typecheck.npm run test— pure-function unit tests (Node test runner).npm run build— buildslib/index.js(Host ESM),lib/client.js(single-file browser bundle) and.d.tsdeclarations.
lib/ is committed so profile installs can run without a build step.
nexu-io/open-design
freestylefly/awesome-gpt-image-2
anywhere-labs/dsh-desktop
walkinglabs/learn-harness-engineering
awesome-dsh-plugin/awesome-dsh-plugin
MemTensor/MemOS