New:Microsoft Teams Notifications Are Now Available in Socket.Learn more →
Get Started

dsh-codebase-chat

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package was removed
Sorry, it seems this package was removed from the registry

dsh-codebase-chat

Multi-language codebase intelligence for DeepSeek Harness and MCP-compatible IDEs: chat, search, audit, refactor, and board-ready reports from local code.

latest
Source
npmnpm
Version
0.28.1
Version published
Maintainers
1
Created
Source

dsh-codebase-chat — Your codebase, fully understood

npm plugin npm mcp license node >= 20 MCP compatible

Website · MCP docs · Roadmap · Changelog · Contributing


Installation

dsh plugin --profile web add dsh-codebase-chat

or as a standalone MCP server / CLI:

npx dsh-codebase-chat-mcp setup

The wizard detects Claude, Cursor, Windsurf, VS Code, Zed, Gemini CLI, Kiro, Cline and Roo Code, asks how you want answers (host model or API key), writes the MCP config, done. No JSON to edit — and no API key: in promptOnly mode your host model does the thinking, or get a fully offline answer with the deterministic report (--no-llm) — no model, no key, no cloud.

Other paths — DeepSeek Harness plugin · CLI · from source · manual config: Reference.

dsh-codebase-chat real MCP session on a 422-file codebase
Real MCP session on a real 422-file codebase — codebase_health finds 324 circular deps, codebase_chat answers with [source: file:line] receipts · PR review (--diff + --watch) · CLI tour · MCP stdio · French mode

Usage

What a real session looks like —

Run on this repository — the exact text the tools return:

$ npx dsh-codebase-chat --project . --health

== STATIC ANALYSIS — dsh-codebase-chat ==
Health score: 52/100 (D) · 33 files analyzed · 65 local imports

● Circular dependencies (0)
  none

● Unused files (candidates) (1)
  lib/client.js

● Unused exports (candidates) (45)
  lib/cache.js:21 — cachePath
  lib/index.js:2952 — normalizeLabels
  lib/index.js:2952 — getProjectName
  …

● Duplicate code blocks (2)
  12 lines × 2 files — lib/index.js, src/project.ts
  6 lines × 2 files — src/indexer.ts, src/retriever.ts

● Complexity hotspots (13)
  lib/index.js — score 418
  src/analysis.ts — score 81
  lib/client.js — score 55
  …
$ npx dsh-codebase-chat --project . --search "health score computation"

--- src/analysis.ts :: formatHealthReportMd (FUNCTION) [source: src/analysis.ts:285-353] ---
--- src/analysis.ts :: analyzeProject       (FUNCTION) [source: src/analysis.ts:149-232] ---
--- src/analysis.ts :: HealthReport         (TYPE)     [source: src/analysis.ts:15-26]   ---


$ npx dsh-codebase-chat --project . --ask "how is the index cached?"


> dsh-codebase-chat · prompt-only mode (no API key)

> Chunks: 81 · Tokens: 59,934 → handed to the host model

> Cite every technical claim with [source: relative/path:line].

codebase_health runs fully offline — deterministic, no LLM, same input → same score. Every answer from codebase_chat arrives with [source: file:line] receipts you can verify in seconds.

Why it wins

Paste into a chatHosted assistantdsh-codebase-chat
Sees your whole repo, not one file❌✅✅
[source: file:line] citations❌~✅
Code stays on your machine❌❌✅
Inside Claude / Cursor / Windsurf❌~✅
Deterministic health score, no LLM❌❌✅
Deterministic report, zero model (--no-llm)❌❌✅
Free — no API key, no account~❌✅

How it works

Pipeline: source → AST index → retrieval → briefing → host model → cited answer, all local-first

/codebase-apply writes safely — dry-run · .dsh-backups/ before overwrite · protected paths · never outside the project.

The 13 tools

UnderstandDecideActExplore
codebase_chatcodebase_intelligencecodebase_refactorcodebase_player
codebase_searchcodebase_auditcodebase_taskscodebase_crea
codebase_explaincodebase_report
codebase_healthcodebase_ceo
codebase_impact

Same engine, three surfaces: MCP tools in your IDE, slash commands in DeepSeek Harness, CLI flags anywhere. Every tool takes lang (fr/en), embed, promptOnly, maxTokens.

Reference

Install — all paths

DeepSeek Harness plugin

dsh plugin --profile web add dsh-codebase-chat

Then restart dsh web → http://127.0.0.1:3080 → Codebase Pro button.

CLI

npx dsh-codebase-chat --project C:\my-app --ask "how is auth handled?"
npx dsh-codebase-chat --project C:\my-app --health   # offline, no LLM
npx dsh-codebase-chat --project C:\my-app --health --diff main   # only what changed
npx dsh-codebase-chat --project C:\my-app --watch    # index stays hot while you code
npx dsh-codebase-chat --project C:\my-app --prompt intelligence   # same banner brief the IDE gets — pipe to any LLM
npx dsh-codebase-chat --project C:\my-app --prompt intelligence --call    # DeepSeek/OpenAI answers directly (API key)
npx dsh-codebase-chat --project C:\my-app --prompt intelligence --no-llm  # deterministic report — zero model, zero key
npx dsh-codebase-chat --project C:\my-app --prompt intelligence --no-llm  # deterministic report — zero LLM, zero key

From source

git clone https://github.com/shinzarou-eng/dsh-codebase-chat.git
cd dsh-codebase-chat && pnpm install && pnpm build

Manual MCP config

{
  "mcpServers": {
    "dsh-codebase-chat": {
      "command": "npx",
      "args": ["dsh-codebase-chat-mcp"]
    }
  }
}

Without DEEPSEEK_API_KEY / OPENAI_API_KEY the server runs promptOnly. Set either key for direct-LLM calls — see mcp/README.md.

Slash commands (DeepSeek Harness)
dsh --profile headless '/codebase "how is auth handled?" --project C:\my-app'
dsh --profile headless '/codebase-search "usePetStore" --project C:\my-app'
dsh --profile headless '/codebase-explain "storage.ts" --project C:\my-app'
dsh --profile headless '/codebase-refactor "split this hook" --file storage.ts --project C:\my-app'
dsh --profile headless '/codebase-intel --project C:\my-app'
dsh --profile headless '/codebase-audit --project C:\my-app --lang en'
dsh --profile headless '/codebase-tasks --project C:\my-app'
dsh --profile headless '/codebase-apply-tasks --project C:\my-app'
dsh --profile headless '/codebase-build --project C:\my-app'
dsh --profile headless '/codebase-git --project C:\my-app'
.codebase-chat.json — per-project settings
{
  "lang": "en",
  "maxTokens": 60000,
  "ignoreDirs": ["generated", "fixtures"],
  "ignoreFiles": ["bundle.js"],
  "ignoreGlobs": ["src/vendor/**", "*.snap"],
  "protectedPaths": ["src/locked", "migrations"]
}
KeyEffect
langDefault prompt language (en/fr) — CLI, MCP tools, slash commands
maxTokensContext budget when the caller passes none
ignoreDirs / ignoreFilesExtra names skipped by indexing, codebase_health, file tree
ignoreGlobsGlobs on project-relative paths — ** spans dirs, * one segment
protectedPathsPaths the apply pipeline can never patch
Environment variables
VariableDefaultPurpose
CODEBASE_CACHE_DIROS cache dirWhere the index cache lives
DSH_PROJECT_ALIASES—Extra name=path aliases (;-separated)
DSH_DAKO_PROJECT—Override the built-in dako alias
DSH_PROTECTED_PATHSbuilt-in listExtra paths that can never be patched
DEEPSEEK_API_KEY / OPENAI_API_KEY—Direct-LLM mode only
DEEPSEEK_BASE_URL / OPENAI_BASE_URLhttps://api.deepseek.com/v1Custom endpoint
CODEBASE_MODELdeepseek-chatModel for direct-LLM mode
Plain words — 🇫🇷 inside

Point it at a folder of code. Ask questions like a human — "How does login work?", "What should I fix first?" — in French or English. Every answer cites the exact file and line it came from. Nothing is uploaded anywhere.

Pointez-le vers un dossier de code. Posez vos questions en langage clair. Chaque réponse cite le fichier et la ligne exacts. Rien n'est envoyé sur internet.

TermMeaning
MCP serverA plug format that lets AI assistants use extra tools. Install once — your IDE can "see" your code.
Prompt-onlyThe tool prepares the context; your existing AI writes the answer. No extra key, no extra cost.
DeterministicComputed directly from your code — same input, same result, every time.
Project layout & dev
├── lib/            DeepSeek Harness plugin (index.js) + Codebase Pro UI (client.js)
├── src/            TypeScript engine — indexer, extractor, retriever, tokenizer, context, CLI
├── mcp/            Standalone MCP server package (dsh-codebase-chat-mcp)
├── test/           Vitest suites (extractor, retriever, tasks pipeline)
├── docs/           Landing page (GitHub Pages) + assets
└── dist/           Build output (tsup)
pnpm install && pnpm build && pnpm test && pnpm typecheck
FAQ

Does it send my code to the cloud? Indexing, retrieval, and prompt building all run on your machine. In prompt-only mode the server makes no network calls itself — the assembled context is read by your host model (cloud or local, your choice). For zero-network output end to end, use --no-llm: a deterministic report computed from your code only.

Do I need an API key? No — three ways to get output: the host model (promptOnly, best quality — pipe it to a local model like Ollama for offline answers), a DeepSeek/OpenAI key (--call), or the deterministic report (--no-llm, no model at all). Inside DeepSeek Harness, the plugin uses your configured model.

Which languages are supported? French and English via lang on every tool. Source-side, AST covers JS/TS, Python, Go, Rust, Java, C#, PHP — the rest is indexed line by line.

Is applying patches safe? Yes. Dry-run, backups before overwrite, protected paths, writes stay inside the project.

EADDRINUSE on port 3080?

Get-NetTCPConnection -LocalPort 3080 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }

Then restart dsh --profile web.

Roadmap
Shippedtree-sitter AST (7 languages), deterministic health score + --no-llm report, MCP setup wizard, .codebase-chat.json, --diff scoping, --watch mode
NextGitHub Issues export from TASKS.md, prompt language packs (ES/DE/PT)
PlannedVS Code extension, HTTP/SSE transport, PR review mode, report export
Exploringmulti-repo workspaces, shared team index cache, CI bot

Full detail: ROADMAP.md

If this project helps you — star it on GitHub ⭐

Website · Issues · Support · Security

MIT License — built and maintained by shinzarou-eng

Keywords

deepseek-harness

FAQs

Package last updated on 13 Sep 2026

Related posts