dsh-codegraph-project:让 DSH 按会话复用本机 CodeGraph 索引

前言

在 Codex、Claude Code 或 Cursor 里已经接好 CodeGraph 时,换到 DeepSeek Harness(DSH)往往还要再配一套服务,或者为不同仓库反复改全局路径。多项目并行时,更容易出现「当前会话其实在 A 仓库,工具却还在查 B」的错位。

下面介绍社区插件 dsh-codegraph-project(维护者 daimingxing):它不替你重装 CodeGraph,也不强制重建已有索引,而是按 DSH 会话的工作目录 找到对应项目的 .codegraph/ 索引,把本机 CodeGraph 的 MCP 工具挂到当前会话上。分类上属于 DSH 生态里的联网 / MCP 类工具接入。

这是什么

dsh-codegraph-project 是 npm 包 dsh-codegraph-project(当前资料中的版本为 0.1.1,MIT 许可证)。一句话定位:Per-project CodeGraph MCP tools for DeepSeek Harness: each session queries the repo it is actually working in——每个会话查询它实际正在工作的仓库。

它与上游 CodeGraph 的关系是「桥接」:DSH 通过插件启动或连接本机已安装的 codegraph CLI(默认参数 serve --mcp),工具名前缀一般为 mcp__codegraph__(可通过配置改 serverName)。插件不会自动执行 codegraph init,卸载时也不会删除 CodeGraph 或项目索引,只释放自己管理的连接和进程。

核心功能

复用已有 CodeGraph 与索引

若本机已安装 CodeGraph,且目标仓库已经 codegraph init 过,安装本插件后 无需为 DSH 单独再装一份 CodeGraph,也不必为接入插件重建索引。其他智能体里原有的 CodeGraph 配置不会被本插件改写。

按会话路由到对应项目

可以同时打开多个项目的 DSH 会话:会话 A 使用项目 A 的索引,会话 B 使用项目 B 的索引,无需在全局配置里来回切换固定项目路径。插件从会话目录向上查找包含 .db 的 .codegraph/ 目录,不跨过 .git 仓库边界,也不会把家目录或文件系统根目录当成项目。

无索引则不注册工具

当前工作目录对应的项目若没有有效索引,插件 不会 向模型暴露 CodeGraph 工具。索引需你在项目内自行维护(codegraph init 及 CodeGraph 自身的更新流程)。

会话内可感知环境变化

切换项目或新建索引后,可稍等几秒再发消息;若本轮工具列表已生成,变化会在后续消息中体现(默认可通过 watchIntervalMs 控制重新检查间隔)。

安装与启用

安装前请知悉:DSH 插件在 当前 DSH 进程权限 下运行,安装前应阅读源码与许可证(MIT),并确认你信任维护者与 npm 包内容。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系。

1. 准备 CodeGraph 与项目索引

已有 CodeGraph 且目标项目已有索引时,可跳过本节,直接从安装插件开始。

codegraph --version

若尚未安装 CodeGraph,可先执行:

npm install -g @colbymchenry/codegraph

安装后重启 DSH,确保能解析到 codegraph 命令。仅在项目还没有索引时,进入项目目录初始化:

Set-Location 'D:\path\to\your-project'
codegraph init

将路径换成你的项目根目录;每个要使用的项目各执行一次。已有 .codegraph/ 索引的不必仅为本插件重新初始化。

2. 安装本插件

桌面端: 打开侧栏 Plugins(插件) 页面,在安装入口输入 npm 包名并完成安装:

dsh-codegraph-project

命令行: 安装到你实际使用的 profile(示例为 web,请换成你的 profile 名称)。桌面端不要用 CLI 修改 desktop profile。

dsh plugin --profile web add dsh-codegraph-project

3. 在 DSH 中打开目标项目会话

在 DSH 中打开 目标项目 的工作区或会话,即可开始对话。默认配置下不需要再手动添加独立的 CodeGraph MCP 服务或写死项目路径。

升级插件时,桌面端在 Plugins 页面更新;CLI 可安装最新 npm 版本(同样替换 profile 名):

dsh plugin --profile web add dsh-codegraph-project@latest

安装插件新版本 不会 自动升级 CodeGraph;CodeGraph 版本由你自行管理。资料中记录的验证环境为 DSH 0.2.1-rc.2 + CodeGraph 1.6.2,其他组合需自行验证。

典型用法

插件向模型提供 CodeGraph 相关 MCP 工具,你在对话里直接提代码分析问题即可。明确要求使用 CodeGraph,便于确认是否已接入:

请先用 CodeGraph 查一下登录请求从入口到数据库的调用链,再解释关键步骤。
请用 CodeGraph 查一下哪些地方调用了 createOrder,修改它可能影响哪些功能?

具体能查询什么,取决于本机 CodeGraph 暴露的工具能力;模型会根据问题选择是否调用。

适用场景与注意

适合谁: 已在本机使用 CodeGraph 做调用链、影响面分析;需要在 DSH 里 多仓库并行,且希望每个会话只查自己当前仓库索引的开发者。

使用注意:

  1. 查的是 会话当前工作目录 对应的项目;在问题里提到另一个路径,不等于切换了会话工作目录。
  2. 必须先 codegraph init(或已有有效索引);插件不会代建索引。
  3. 若安装后看不到 CodeGraph 工具,依次检查:工作目录是否在目标仓库内、索引是否完整、codegraph --version 是否可用、中途建索引后是否需重发消息;可查看 DSH 日志中含 codegraph-project 的条目。
  4. 需要覆盖启动路径或超时时,可在 profile 的插件配置中设置,例如 cordis.patch.yml 中的 codegraphBin、codegraphArgs、toolCallTimeoutMs 等(详见仓库 README「进阶配置」)。

停用或卸载本插件不会影响其他 AI 工具里的 CodeGraph 配置;但 CodeGraph 自身的建索引、更新与工具行为仍由 CodeGraph 决定,并非只读。

结尾

dsh-codegraph-project 的价值在于:把 DSH 接到你已经跑起来的 CodeGraph 上,并按会话绑定仓库索引,减少重复安装和全局路径切换。若你正在 DSH 里做跨文件、跨模块的代码理解,可以先确认本机 CodeGraph 与项目索引就绪,再按上文安装包名或 CLI 命令启用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜