基于 Pyright 为 DeepSeek Harness 提供 Python 代码导航和语言服务配置。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:988hj7tczd-oss/dsh-lsp-packs#path:/dsh-lsp-pyright
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
该插件的 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.
链接
同类插件
yjh051108/dsh-routing-suite★ 7022
一个仓库三件套:DSH 插件包的运行时注入器(注入、热重载、卸载、开发侧挂区一键转正、路由自愈,外带设置页插件管理:列出、卸载、拖入文件夹内化)、任务感知的思维模式路由 agent 预设(router-standard / router-spec / router-react)、以及分级两级任务协议(commit_star / lock_stage / revise_do / edit_plan / mark_task / redteam_verdict 六个工具,任务状态落盘)。注入器实现直接在库内,安装的是它自己的行为而不是一份依赖清单。
strukto-ai/mirage#dsh★ 3691
把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Slack、Gmail、Notion、Postgres)而非宿主磁盘,支持按挂载点设置读/写/执行模式、按命令选择沙箱(进程内 monty、pyodide、quickjs;远程 docker、e2b、daytona),并可在虚拟终端中安装 CLI(git、gh、slack、linear、ntn、gws,或自行注册的程序树)作为命令头词。
hust-open-atom-club/oh-dsh★ 322
社区发行版:TUI、桌面端与 Web UI 统一体验,分层安装、一步到位。
weijiafu14/pi2dsh★ 216
Pi Host ABI 兼容引擎:装一次之后,npm 上的 Pi 扩展原包经 `dsh plugin add <pi-package>` 直接作为 DSH 原生插件挂载。已在官方 DSH 上端到端验证 pi-mcp-adapter(完整 MCP 管理面:OAuth、resources、prompts、MCP Apps、elicitation、sampling)、@tintinweb/pi-subagents、pi-code、pi-hermes-memory、pi-background-tasks;`pi2dsh inspect` 在安装前报告一个包的兼容情况。
Fishquito7/dsh-skill-mcp-panel★ 202
在 DSH Web 设置中管理技能与 MCP 服务器:技能卡片热启停、工作区作用域、分组、批量迁移与拖拽导入,以及 stdio/HTTP MCP 增删改查、连接测试、密钥脱敏,并附带统一 dsh-panel 命令行。
lire1131/dsh-undo-savepoint★ 181
DSH 撤销/回退系统:配置变更自动存档,一键撤销/恢复/回退到任意版本,支持 WebUI 与离线 CLI/GUI 工具(DSH 启动失败也能救)。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。