README.md

September 3, 2026 · View on GitHub

DSH

DSH IntelliJ Integration

DSH integration for IntelliJ Platform IDEs, including IntelliJ IDEA and PyCharm.

JetBrains Plugin Version License IntelliJ Platform 2024.3+

English | 简体中文

An independent community project. Issues welcome.

For VS Code, please see dsh-vsc-integration.

Features

Chat right in the IDE

The DSH tool window embeds the full chat surface via JCEF: sessions, history, tool cards, the context composer, focus mode, and runtime status.

Editor-aware prompts

Select code and right-click: DSH: Ask About Selection, or explain / fix / review / document the selection from the DSH popup group. The selection is captured at send time inside an untrusted <ide_context> block, capped by the configured byte limit.

Managed local Runtime

The plugin runs pnpm dlx @deepseek-ai/dsh web --no-open by default, falls back to an installed dsh or npx, and probes localhost until the server is ready. Start / stop / restart actions are available from the Tools menu, and DSH: Open Web UI opens the same session in a browser.

Safe credential handling

API keys are stored in IntelliJ's Password Safe and injected only into a newly started Runtime process — never written to project XML, prompts, or logs. DSH: Diagnose Environment and DSH: Open Runtime Logs help when something goes wrong.

Data use and privacy

The plugin does not collect telemetry. Prompts and editor selections that you explicitly attach are sent through the local DSH Runtime to the model provider configured by you. That provider's terms and privacy policy apply to the requests it processes. API keys remain in IntelliJ Password Safe and are passed only to a newly started local Runtime process.

Support

Report bugs and request features through the GitHub issue tracker.

Architecture and runtime

The host side is plain IntelliJ project services talking to the Harness Web RPC endpoint over loopback. The wire boundary stays typed as JSON, so new Harness projections remain forward compatible; event streams are projected through a short-interval history/catalog refresh, which keeps reconnects and older Harness versions predictable.

graph TD
    A[IntelliJ Project Services] <-->|RPC via Loopback Port| B[Local Harness Runtime]
    A <-->|JCEF Bridge| C[React Webview UI]
    A -->|Password Safe| D[API Key Injection]

Configuration

Open Settings | Tools | DeepSeek Harness.

SettingDefaultWhat it does
Command / Argspnpm dlx @deepseek-ai/dsh web --no-openHow the Runtime is launched; point it at an installed dsh or a local checkout instead.
Server URL / Port"" / 0Connect to an already running dsh web Runtime instead of launching one.
Auto starttrueStart or connect to the Runtime when the project opens.
Runtime version0.1.1-rc.2Locked version of the managed Runtime.
npm registryhttps://registry.npmmirror.comRegistry mirror used as a download fallback.
Timeouts30s startup, 600s requestHow long to wait for startup and individual RPC calls.
Context bytes120000Maximum UTF-8 bytes of <ide_context> included per prompt.
API key envDEEPSEEK_API_KEYEnvironment variable the stored key is injected as.

Build from source

./gradlew verifyPlugin   # structure and compatibility checks
./gradlew buildPlugin    # produce the installable zip

License

MIT