dsh-codegraph-search
Manifest validA search plugin for the DeepSeek Harness (dsh) Web GUI, attached to the built-in right sidebar, with no dependency on dsh-better-sidebar. Keyword mode searches file names and file content, supporting include/exclude globs, case sensitivity, regex, and type filtering, with hit results returned as you type; Code graph mode queries symbols via the codegraph CLI and expands callers/callees. Hits are highlighted, and clicking jumps to that line in the editor.
dsh-codegraph-search
A Search tab for the DeepSeek Harness (dsh) web GUI's built-in right sidebar —
no dsh-better-sidebar required. One panel, two modes:
- Keyword — search file names and contents in the current session's workspace, grouped per file with line numbers.
- Code graph — query symbols by name / qualified name and expand their callers and callees.
Clicking a hit opens the file in the built-in text preview, jumping to the line.
Modes
Keyword
- File names and content lines; per-file groups with match counts, collapsible.
- Progressive results: the host streams each file group over NDJSON the
moment it is found (
POST /workspace-search/searchwithstream: true), so hits appear while the walk is still running and the status line counts up live. Rendering is throttled — the first rows show immediately, then the list is updated at most once per 250 ms — so a fast walk never re-renders per file, and the final list is sorted exactly like the buffered response. Code-graph queries stay a single buffered response. - Matched text is highlighted: the query inside file names, matched lines, and
code-graph symbol names / signatures, using the same matching rules the search
itself used (literal case folding, or the regex and
Aastate). - VS Code-style filters: files to include / files to exclude (comma-separated
globs, supports
**,*,?,{a,b}),Aacase toggle,.*regex toggle. - Type filter: quick extension chips (
.ts .tsx .js .py .json .md) plus a free-form extension field. - Skips hidden files/dirs,
.git,node_modules,.hg,.svn,dist,build,.next,target, symlinks, binary files, and files over 1 MiB.
Code graph
- Needs the
codegraphCLI on the server and acodegraph init-ed workspace (the index lives in.codegraph/). - Symbol results show kind, signature and location; each row lazily expands callers / callees. Missing CLI, missing index, timeout and parse failures are reported with their own message and a copyable fix command.
Usage
- The panel scopes to the current session's workspace automatically.
Entersearches; results also refresh ~250 ms after a filter or mode change.Escclears the query.- Switching tabs no longer re-runs the search: results, scroll position and expansion state are preserved.
Requirements
- dsh web (the built-in right sidebar,
@deepseek-ai/dsh-client-ui-sidebar-right) - Node.js >= 22
codegraphCLI — only for the code graph mode
Install
Published on npm as dsh-codegraph-search:
dsh plugin --profile web add dsh-codegraph-search
From a local checkout instead — the profile then keeps it as a link:
dependency, so your edits take effect on the next restart:
git clone https://github.com/Wilyte/dsh-codegraph-search.git
dsh plugin --profile web add ./dsh-codegraph-search
Either way the plugin is added to the web profile's bundle list, so restart
dsh web to load it. No extra sidebar plugin is needed: the tab registers
directly with dsh's built-in right sidebar, and the sidebar's guide page shows a
"Code search" entry.
Configuration
All fields optional (profile patch layer, id: code-search):
- id: code-search
config:
maxFiles: 5000 # hard cap on files scanned per search
maxMatches: 300 # hard cap on total content matches
maxLineLength: 300 # hard cap on one reported line
maxFileBytes: 1048576 # files above this skip the content scan
codegraphBin: codegraph # CLI used by the code graph mode
codegraphTimeoutMs: 15000
codegraphMaxResults: 50
Every cap is reported honestly in the status line ("file scan truncated" / "matches truncated") instead of silently dropping results.
How it works
Dual-face bundle.
- Host half (
lib/index.js) registers an HTTP route on dsh'swebServer(ctx.webServer.register, prefix/workspace-search) —POST /workspace-search/searchandPOST /workspace-search/graph. It deliberately does not injectconnection: that service does not exist in the web host profile. - Client half (
lib/client.js) registers a tab type onctx.sidebarRightTabs(kindsearch), renders its body into the keyedsidebar.right.pane.tabseat, and contributes a guide-page entry. Copy is routed through the Client locale service (zh/en) and the stylesheet is mounted throughctx.effect, using the GUI's own design tokens.
Credits
This plugin started from dsh-workspace-search by AmmiWang — the original VS Code-style keyword search tab for dsh, then docked in dsh-better-sidebar. The code graph mode, streamed results and the built-in right sidebar were added on top of it. Thanks for the original work.
License
MIT
Comments
Loading…
Similar plugins
by Cheyeah
DeepSeek Harness (DSH) Web 插件:拖放文件预览 / Markdown 渲染 / 文件盒 / 智能桌面截图(全屏·区域·窗口)/ 外挂识图与识别文本入库。完整开发历史含 21 个快照标签。
★ 0
NOASSERTION
JavaScript
Aug 28, 2026
dsh plugin --profile web add dsh-drop-previewby JoukoPuro
一个 DeepSeek Harness(DSH)插件: 在 Web 输入框的工具行中添加一个 ✨ 图标按钮。点击后选择打磨风格,已接入的大模型 会把你草稿中的提示词改写得更专业、更易被 AI 理解 。A DeepSeek Harness plugin: icon-only composer button that rewrites your prompt via the connected LLM
★ 6
↓ 107/wk
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-prompt-polishby wannanbigpig
一个为 DeepSeek Harness 最新源码补齐工程能力的外置插件(Bundle),无需修改宿主源码。插件直接融合进宿主原生 Right Sidebar、文件资源标签和底部 Dock:复用宿主已有的文件树、标签页、拆分/悬浮布局,只补充可编辑高亮、Git Review/提交、Worktree 和交互式 PTY。所有项目操作以当前 Session 的 cwd 为边界
★ 0
MIT
JavaScript
Sep 12, 2026
dsh plugin --profile web add @wannanbigpig/dsh-sidebarby leanderli
DSH Web UI 的文件与变更面板插件:为当前会话的工作区目录提供一体化的 文件浏览 / 搜索 / 预览 / 编辑与 Git 操作(状态、暂存、提交、拉取、推送、 分支、历史、diff 等),在浏览器里以居中模态面板呈现,无需离开 WebUI 即可完成 日常文件与版本控制操作。
★ 2
MIT
JavaScript
Oct 10, 2026
dsh plugin --profile web add dsh-files-gitby hh719509125
DeepSeek Harness (DSH) 文档编辑插件:在右侧栏的文档预览里就地编辑文本文件并保存,支持 Ctrl+S、冲突保护、行尾逐字节保留。In-place document editor for the DSH Sidebar preview: Ctrl+S, conflict protection, byte-exact line-ending preservation.
★ 5
MIT
JavaScript
Oct 8, 2026
dsh plugin --profile web add @local/dsh-plugin-document-editorby g1998815
DSH(DeepSeek Harness) 右侧原生工具侧边栏插件:文件系统浏览器 / Git 变更与 diff / 会话变更 采用·撤回 / PTY 控制台。Windows 直连 node-pty,跟随 DSH 主题,RPC fail-closed。
★ 3
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-workspace-tools