Python LSP configuration plugin for DeepSeek Harness using Pyright.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:988hj7tczd-oss/dsh-lsp-packs#path:/dsh-lsp-pyright
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Pyright language configuration pack for DeepSeek Harness (DSH). Static type checking and code intelligence for Python files. 中文:DSH 的 Pyright LSP「即插即用」语言包 —— 装上本包,.py / .pyi 文件即可用
lsp工具做代码导航。
This pack is one Cordis configuration plugin: it registers a configured
@deepseek-ai/dsh-lsp-stdio instance on ctx.lsp with the server command, launch
arguments, and extension mapping for Pyright. It implements no LSP protocol —
the shared base does: @deepseek-ai/dsh-lsp (the seam) + @deepseek-ai/dsh-tool-lsp (the
model-facing lsp tool with goToDefinition / findReferences / goToImplementation /
hover). Twelve packs reuse one unchanged base.
Installing the language server (three ways)
npm install -g pyright # npm
pip install pyright # pip
pipx install pyright # pipx (isolated)
After install, pyright-langserver must be on PATH (npm/pipx put it there automatically).
⚠️ The plugin itself never downloads or installs the server binary — matching the upstream anthropics LSP plugins, the server is an external prerequisite. The plugin only resolves and launches it.
Supported extensions
| .py | python |
| .pyi | python |
How the pack works
- Lazy start: the server process is not started at load.
lsp-stdiolaunches it lazily on the first matching query and keeps one process per workspace. - No-server fallback: if the executable cannot be resolved, the pack still loads;
every
lspquery for these extensions fails with a structuredLSP_UNAVAILABLEerror naming the command — the rest of the session is unaffected. - Config overrides: every default below can be overridden from the composition row, e.g. a server installed at a non-standard path:
- id: lsp-pyright
name: '@dsh-lsp-packs/dsh-lsp-pyright'
config:
command: /absolute/path/to/pyright-langserver
args:
- --stdio
extensionToLanguage:
'.xyz': custom-language-id
maxDocumentBytes: 8000000
All fields of the servers table documented in the @deepseek-ai/dsh-lsp-stdio README are
accepted (command, args, env, extensionToLanguage, initializationOptions,
configuration, byte/time bounds).
Mounting
- Mount the shared base once (the
lspservice, thelsptool, and a filesystem/subprocess pair for the same execution world) — ready-made snippet inexamples/base-composition.cordis.ymlof the dsh-lsp-packs repo. - Install the pack (its
cordis.ymlis thedsh.bundle.patch, so the row inserts itself):
dsh plugin add @dsh-lsp-packs/dsh-lsp-pyright # published name
dsh plugin add /path/to/dsh-lsp-packs/dsh-lsp-pyright # or a local checkout
or compose the row directly (name resolved from the installed package):
- insert:
- id: lsp-pyright
name: '@dsh-lsp-packs/dsh-lsp-pyright'
Smoke test
pnpm vitest run --dir dsh-lsp-pyright # or from the repo root: pnpm test
- Lane 1 (offline): asserts the defaults (command / args / extension table / provider id).
- Lane 2 (offline): asserts the missing-server fallback returns
LSP_UNAVAILABLE. - Lane 3 (needs the server): runs the four
lspoperations againstsample.py; it auto-skips whenpyright-langserveris not on PATH.
Pyright answers every query entirely within the opened document, so the smoke test needs no project scaffolding. The hover lane asserts the docstring (Add two numbers).
License
MIT — see LICENSE. The server binary is a third-party component with its own license.
Links
More in this category
yjh051108/dsh-routing-suite★ 7022
One repository, three parts: a runtime injector for DSH plugin packages (inject, hot-reload, unload, promote a dev staging tool to the front, route self-heal, plus a settings-page plugin manager that lists, unloads and drags folders in to internalize), a task-aware reasoning-mode router agent preset (router-standard / router-spec / router-react), and a graded two-level task protocol whose six tools (commit_star, lock_stage, revise_do, edit_plan, mark_task, redteam_verdict) pin task state to disk. The injector implementation ships in-tree, so the install carries its own behaviour rather than a dependency list.
strukto-ai/mirage#dsh★ 3691
Swaps the filesystem and bash providers for a mirage virtual workspace: file tools and shell commands run over mounted resources (RAM, S3, Redis, Slack, Gmail, Notion, Postgres) instead of the host disk, with per-mount read/write/exec modes, per-command sandbox routing (monty, pyodide, quickjs in process; docker, e2b, daytona remote), and installed CLIs (git, gh, slack, linear, ntn, gws, or one you register) as head words in the virtual terminal.
hust-open-atom-club/oh-dsh★ 322
Community distribution: TUI, desktop, and Web UI as one bundle with layered installation.
weijiafu14/pi2dsh★ 216
Pi Host ABI compatibility engine: after one install, unmodified Pi extensions from npm mount as native DSH plugins with `dsh plugin add <pi-package>`. Verified end to end on stock DSH with pi-mcp-adapter (full MCP manager: OAuth, resources, prompts, MCP Apps, elicitation, sampling), @tintinweb/pi-subagents, pi-code, pi-hermes-memory and pi-background-tasks; `pi2dsh inspect` reports a package's compatibility before installing.
Fishquito7/dsh-skill-mcp-panel★ 202
Manages DSH skills and MCP servers from the web settings: skill cards with hot enable/disable, workspace scopes, groups, batch migration and drag-and-drop import, plus stdio/HTTP MCP CRUD with connection tests, secret redaction and the unified dsh-panel CLI.
lire1131/dsh-undo-savepoint★ 181
Undo/redo & rollback system for DSH: every config change is auto-snapshotted; undo/redo/restore to any version from the WebUI or the offline CLI/GUI tools (works even when DSH fails to boot).
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.