Back to directory

dsh-plugin-codegraph

In a curated listMaintenance: Active

cc19990113/dsh-plugin-codegraph

Structural code intelligence for DeepSeek Harness (dsh) — gives the agent codegraph and codegraph_index tools to find where a symbol is declared, what calls it, and what a change reaches, from a tree-sitter index it builds itself. Compatible with the codegraph CLI's on-disk format.

View on GitHub
$ dsh plugin --profile <name> add dsh-plugin-codegraph

16

stars

5

forks

TypeScript

Language

MIT

License

2026-08-17

Created

2026-11-09

Last push

MIT-licensed DSH plugin that serves a tree-sitter symbol graph to the agent through two tools, in the `codegraph` CLI's own on-disk format — background indexing, a watcher, a parse cache, `/codegraph` and a settings panel.

DSH integration

Native runtime

Author-claimed

Safety audit

Unaudited

Last verified

2026-11-13

License

MIT

01What can it help you accomplish?

  • Answer structural questions about a codebase from a symbol graph instead of text search

    `codegraph` with ten read-only operations — `search`, `node`, `callers`, `callees`, `impact`, `trace`, `files`, `status`, `explore`, `context` — each answered from a pre-built index

    dsh users whose agent needs to know who calls a symbol and what a change reaches before editing

  • Keep the graph current without babysitting it

    A background build when a session opens in an unindexed workspace, a file watcher for later edits, and incremental re-indexing that reuses each file's cached extraction (991 ms → 45 ms on a 337-file workspace)

    Developers working in large repositories who do not want to re-run an index command by hand

  • See the index state and drive it without spending a model turn

    One line in every system prompt describing files, declarations, relationships and build time, plus `/codegraph status|index|files` and a settings panel with a rebuild button

    People who want to inspect or rebuild the graph themselves instead of asking the agent

02How to install into DeepSeek Harness

Prerequisites

  • A DeepSeek Harness profile to install into — the README uses `dsh plugin --profile <name> add dsh-plugin-codegraph`
  • Nothing else: the store and indexer run in-process, so there is no separate CLI or MCP server to install

Installation steps

  1. 01

    Run `dsh plugin --profile <name> add dsh-plugin-codegraph` — it fetches the package and appends `dsh-plugin-codegraph` to `dsh.profile.bundles`, with no JSON to edit by hand

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

  2. 02

    Open a session in the workspace you want indexed — the plugin starts a background build for a workspace that has no index yet

  3. 03

    Run `codegraph_index` (or `/codegraph index`, or the settings panel's rebuild button) whenever you want an explicit build

Verify the integration

  • `dsh --profile <name> --dump-default-config` shows the four plugins grouped under a `# == dsh-plugin-codegraph` heading — no API key needed
  • `codegraph` with `operation: status` reports the index size and age; with no index it says so and names `codegraph_index` as the fix

03DSH integration and capability boundaries

DSH integrationNative runtime

Native DSH plugin bundle: one `dsh plugin add` mounts four packages — service definition, SQLite store, tree-sitter indexer and the model-facing tools

  • Ten read-only graph operations

    a symbol name, a query, a task description, or a from/to pair→declarations, immediate callers and callees, impact sets, call traces, indexed files, index status, related declarations with source, and task-relevant context

    a line describing the index is injected into every system prompt
  • Explicit indexing with background jobs

    a workspace root→a built graph, or a job id when the workspace is past `backgroundIndexThreshold` files

    large builds are handed to the host's job registry instead of holding a tool call openno query ever triggers indexing implicitly
  • Watcher and incremental parse cache

    filesystem changes inside the watched root→a debounced rebuild that reuses per-file extractions confirmed by mtime and size (or a SHA-256 under `cacheVerify: 'hash'`)

    every in-scope directory is watched through `ctx.fs.watch`, not `node:fs`edges are rebuilt over the whole graph on every runthe plugin's own `.codegraph` writes do not trigger rebuilds
  • Eighteen bundled languages, shared on-disk format

    TypeScript/TSX, JavaScript/JSX, Python, Go, Java, Kotlin, Dart, C/C++, C#, PHP, Rust, Ruby, Zig, Swift, Scala sources→a schema v4 graph at `<projectRoot>/.codegraph/codegraph.db`, readable and writable by the `codegraph` CLI too

    grammars load lazily, so unused languages cost nothing
  • Human entry points and prompt state

    `/codegraph status|index|files <pattern>`, or the settings panel→index state and a rebuild without spending a model turn

    the panel reads only `<root>/.codegraph/status.json` through the plugin's own API endpoints

04Who is it for? When not to use it?

Good for

  • dsh users whose agent needs to know who calls a symbol and what a change reaches before editing
  • Developers working in large repositories who do not want to re-run an index command by hand
  • People who want to inspect or rebuild the graph themselves instead of asking the agent

Not for

  • Indexing is never implicit: a query never triggers a build, so an unindexed workspace answers only through `status` (which names `codegraph_index` as the fix) while every other operation fails loudly.
  • Watching is on by default through the host's filesystem seam, but a backend that cannot watch degrades to explicit indexing, and watching is turned off by default on a WSL2 kernel over a `/mnt/<drive>/...` mount; `watch: false`, `CODEGRAPH_FORCE_WATCH=1` and `CODEGRAPH_NO_WATCH=1` override it.

05Compatibility, maintenance and safety notes

  • Indexing is never implicit: a query never triggers a build, so an unindexed workspace answers only through `status` (which names `codegraph_index` as the fix) while every other operation fails loudly.
  • Watching is on by default through the host's filesystem seam, but a backend that cannot watch degrades to explicit indexing, and watching is turned off by default on a WSL2 kernel over a `/mnt/<drive>/...` mount; `watch: false`, `CODEGRAPH_FORCE_WATCH=1` and `CODEGRAPH_NO_WATCH=1` override it.
  • Exclusion understands only a practical subset of gitignore syntax — no `**`, character classes or per-directory `.gitignore` files — and committed bundles are skipped by a heuristic (a `.min.` segment or an average line over 500 characters) rather than by build-system integration.
  • `context` ranks by identifier-term overlap, so a task that names no symbol ranks poorly; the unresolved tail includes member calls and already-imported names a type-free resolver cannot settle; and dsh itself is in developer preview, so compatibility-breaking changes are expected.
2026-08-172026-11-09v0.6.5

MIT · README evidence only · latest release v0.6.5 (2026-11-09) · safety not audited

06Frequently asked questions

How do I install dsh-plugin-codegraph into DeepSeek Harness?

Run `dsh plugin --profile <name> add dsh-plugin-codegraph`. That one command fetches the package and appends it to `dsh.profile.bundles`, with no JSON to edit by hand. To confirm the four bundled plugins mounted without spending an API key, run `dsh --profile <name> --dump-default-config` and look for the `# == dsh-plugin-codegraph` heading.

Do I have to run an index command before asking questions?

Not for a fresh session: opening a session in a workspace with no index (or an index older than ten minutes) starts a background build, and the watcher keeps it current afterwards. Indexing is still never triggered implicitly by a query — if no index exists, `status` says so and names `codegraph_index` as the fix, while other operations fail loudly rather than pretending the workspace is empty.

Does it work with an index built by the codegraph CLI?

Yes. The plugin reads and writes schema version 4 at `<projectRoot>/.codegraph/codegraph.db`, the same path and format as `@colbymchenry/codegraph`, so an existing CLI index is picked up as-is and you can skip `codegraph_index` entirely. A graph the CLI built over languages this indexer does not parse stays fully queryable.

What does it write into my workspace?

An index at `<projectRoot>/.codegraph/` — the graph database, a status file the settings panel reads, and a per-file parse cache under `.codegraph/cache/`. Watching is on by default through the host's filesystem seam, and the plugin's own `.codegraph` writes are diffed out so they never loop into a rebuild.

How is this different from spawning the codegraph CLI?

There is no second runtime: the store and indexer run in-process, so nothing has to be on `PATH` and no MCP server needs wiring. It also keeps the tool surface at two tools instead of one per CLI subcommand, since every tool's schema rides along in the system prompt on every turn.

08Data and sources

  • Author-claimedgithub.comef5261497ba0…

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

  • Author-claimedgithub.comef5261497ba0…

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

  • Author-claimedgithub.comef5261497ba0…

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

This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-11-13. Found an error? Submit a correction.

🏆

Best DeepSeek Harness Plugins

Twelve plugins worth installing first — picked from the whole catalog, across every category.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.