返回目录

dsh-plugin-codegraph

精选清单收录维护状态: 活跃

cc19990113/dsh-plugin-codegraph

结构化代码智能:基于 tree-sitter 索引查找符号、调用者与变更影响,兼容 codegraph CLI

前往 GitHub
$ dsh plugin --profile <name> add dsh-plugin-codegraph

16

星标

5

Fork

TypeScript

语言

MIT

许可证

2026-08-17

创建于

2026-11-09

最近推送

MIT 授权的 DSH 插件,用两个工具把 tree-sitter 符号图喂给 agent,磁盘格式与 `codegraph` CLI 一致 —— 后台索引、watcher、解析缓存、`/codegraph` 命令和设置面板。

DSH 适配

原生运行时

作者声明

安全审计

未审计

最后核验

2026-11-13

许可证

MIT

01它能帮你完成什么?

  • 用符号图而不是文本搜索来回答代码结构问题

    `codegraph` 的十个只读操作 —— `search`、`node`、`callers`、`callees`、`impact`、`trace`、`files`、`status`、`explore`、`context` —— 全部从预先建好的索引里作答

    需要 agent 在改代码前先知道谁在调用、改动会影响哪些地方的 dsh 用户

  • 不用盯着也保持索引是新的

    在没索引的工作区开会话就自动后台建索引,后续改动由 watcher 跟进,重索引只重解析变过的文件(337 文件工作区从 991 ms 降到 45 ms)

    在大型仓库里工作、不想手动反复跑索引命令的开发者

  • 不花模型回合就能看到并操作索引状态

    每次系统提示里都带一行索引概况(文件数、声明数、关系数、构建时间),外加 `/codegraph status|index|files` 和带重建按钮的设置面板

    想自己检查或重建图、而不是去问 agent 的人

02如何接入 DeepSeek Harness?

前置条件

  • 一个可安装的 DeepSeek Harness profile —— README 用 `dsh plugin --profile <name> add dsh-plugin-codegraph`
  • 没有别的依赖:存储和索引器都在进程内跑,不需要额外装 CLI 或 MCP 服务器

安装步骤

  1. 01

    运行 `dsh plugin --profile <name> add dsh-plugin-codegraph` —— 它会拉取包并把 `dsh-plugin-codegraph` 追加进 `dsh.profile.bundles`,不用手改 JSON

    $ dsh plugin --profile <name> add dsh-plugin-codegraph

  2. 02

    在要索引的工作区里打开会话 —— 还没有索引时插件会自动开始后台构建

  3. 03

    需要显式构建时用 `codegraph_index`(或 `/codegraph index`,或设置面板里的重建按钮)

验证接入成功

  • `dsh --profile <name> --dump-default-config` 里能看到四个插件归在 `# == dsh-plugin-codegraph` 标题下 —— 不花 API key
  • `codegraph` 的 `status` 操作会报告索引规模与构建时间;没有索引时它会直接说明,并指出 `codegraph_index` 是解法

03DSH 适配与能力边界

DSH 适配原生运行时

原生 DSH 插件 bundle:一条 `dsh plugin add` 挂上四个包 —— service 定义、SQLite 存储、tree-sitter 索引器和面向模型的工具

  • 十个只读图操作

    符号名、查询、任务描述,或 from/to 一对符号→声明位置、直接调用者与被调用者、影响面、调用链、已索引文件、索引状态、带源码的相关声明,以及与任务相关的上下文

    每次系统提示里都会注入一行索引概况
  • 显式索引与后台任务

    工作区根目录→建好的图;工作区文件数超过 `backgroundIndexThreshold` 时返回 job id

    大构建会交给宿主的 job registry,而不是一直占着一个工具调用任何查询都不会隐式触发索引
  • watcher 与增量解析缓存

    被监听根目录内的文件变化→去抖后的重建,复用按 mtime 和 size(或 `cacheVerify: 'hash'` 时的 SHA-256)确认过的单文件解析结果

    范围内每个目录都通过 `ctx.fs.watch` 监听,而不是直接用 `node:fs`每次运行都会在全图上重建边插件自己写 `.codegraph` 不会触发重建循环
  • 十八种内置语言与共享磁盘格式

    TypeScript/TSX、JavaScript/JSX、Python、Go、Java、Kotlin、Dart、C/C++、C#、PHP、Rust、Ruby、Zig、Swift、Scala 源码→`<projectRoot>/.codegraph/codegraph.db` 下的 schema v4 图,`codegraph` CLI 也能读写

    语法按需懒加载,用不到的语言不占开销
  • 面向人的入口与提示词状态

    `/codegraph status|index|files <pattern>`,或设置面板→不花模型回合就能看状态、触发重建

    面板只通过插件自己的 API 端点读 `<root>/.codegraph/status.json`

04适合谁?何时不该用?

适合

  • 需要 agent 在改代码前先知道谁在调用、改动会影响哪些地方的 dsh 用户
  • 在大型仓库里工作、不想手动反复跑索引命令的开发者
  • 想自己检查或重建图、而不是去问 agent 的人

不适合

  • 索引永远不是隐式的:查询不会触发构建,所以没索引的工作区只有 `status` 能正常回答(并指出 `codegraph_index` 是解法),其他操作都会明确报错。
  • 默认通过宿主的文件系统接口开启监听,但后端不支持监听时会退化为显式索引;WSL2 内核监听 `/mnt/<drive>/...` 这类挂载路径时默认关闭;`watch: false`、`CODEGRAPH_FORCE_WATCH=1`、`CODEGRAPH_NO_WATCH=1` 可以覆盖。

05兼容性、维护与安全提示

  • 索引永远不是隐式的:查询不会触发构建,所以没索引的工作区只有 `status` 能正常回答(并指出 `codegraph_index` 是解法),其他操作都会明确报错。
  • 默认通过宿主的文件系统接口开启监听,但后端不支持监听时会退化为显式索引;WSL2 内核监听 `/mnt/<drive>/...` 这类挂载路径时默认关闭;`watch: false`、`CODEGRAPH_FORCE_WATCH=1`、`CODEGRAPH_NO_WATCH=1` 可以覆盖。
  • 排除规则只理解 gitignore 语法的一个实用子集 —— 不支持 `**`、字符类和目录级 `.gitignore`;被提交进仓库的构建产物靠启发式跳过(路径含 `.min.` 段,或平均行长超过 500 字符),不是构建系统集成。
  • `context` 按标识符词重叠排序,任务里不提任何符号就排不好;未解析的部分包含无类型解析器本来就解决不了的成员调用和已导入名字;另外 dsh 本身还在开发者预览,兼容性破坏性变更是预期的。
2026-08-172026-11-09v0.6.5

MIT · 最新版本 v0.6.5(2026-11-09)· 仅 README 证据,未做安全审计

06常见问题

在 DeepSeek Harness 里怎么装 dsh-plugin-codegraph?

运行 `dsh plugin --profile <name> add dsh-plugin-codegraph`。这一条命令会拉包并把它追加进 `dsh.profile.bundles`,不用手改 JSON。想不花 API key 确认四个内置插件都挂上了,运行 `dsh --profile <name> --dump-default-config`,找 `# == dsh-plugin-codegraph` 标题。

提问之前必须先跑一次索引命令吗?

新会话不必:在没索引(或索引超过十分钟)的工作区开会话会自动开始后台构建,之后由 watcher 维护。但索引仍然不会被查询隐式触发 —— 没有索引时 `status` 会直说并指出 `codegraph_index` 是解法,其他操作则明确报错,而不是假装工作区是空的。

能用 codegraph CLI 建好的索引吗?

可以。插件读写的是 `<projectRoot>/.codegraph/codegraph.db` 下的 schema version 4,和 `@colbymchenry/codegraph` 同一路径同一格式,所以已有的 CLI 索引会被直接接上,你完全可以跳过 `codegraph_index`。CLI 用本索引器不支持的语言建的图,依然可以完整查询。

它会往我的工作区里写什么?

在 `<projectRoot>/.codegraph/` 下写索引:图数据库、设置面板读取的状态文件,以及 `.codegraph/cache/` 下按文件存的解析缓存。监听默认通过宿主的文件系统接口开启,插件自己写 `.codegraph` 会被差异比较排除,不会触发重建循环。

它和直接 spawn codegraph CLI 有什么区别?

没有第二个运行时:存储和索引器都在进程内跑,`PATH` 上不需要任何二进制,也不用接 MCP 服务器。工具面也压到两个,而不是给每个 CLI 子命令配一个工具 —— 因为每个工具的定义都会随每次请求一起进系统提示。

08数据与来源

  • 作者声明github.comef5261497ba0…

    Gives the agent two tools — `codegraph` and `codegraph_index` — so it can ask **where is this declared**, **who calls it…

  • 作者声明github.comef5261497ba0…

    This plugin ships both halves: a **store** that serves queries from an on-disk graph, and an **indexer** that builds one…

  • 作者声明github.comef5261497ba0…

    dsh plugin --profile <name> add dsh-plugin-codegraph

页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-13。发现错误?提交更正。

🏆

最佳 DeepSeek Harness 插件

从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。

DSH Plugins 是独立的 DeepSeek Harness 插件目录,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。