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
- 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
- 02
Open a session in the workspace you want indexed — the plugin starts a background build for a workspace that has no index yet
- 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
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 promptExplicit 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 implicitlyWatcher 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 rebuildsEighteen 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 nothingHuman 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.
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.
07Related DSH workflows
archify
by tt-a1i
Turn any idea, plan, or codebase into a beautiful interactive diagram. An agent skill for Claude Code, Codex, and more.
openviking
by volcengine
Self-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.
aitoearn
by yikart
Let's use AI to Earn!
learn-harness-engineering
by walkinglabs
Harness engineering beginner tutorial, from 0 to 1
08Data and sources
Gives the agent two tools — `codegraph` and `codegraph_index` — so it can ask **where is this declared**, **who calls it…
This plugin ships both halves: a **store** that serves queries from an on-disk graph, and an **indexer** that builds one…
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.
