wdl-lsp-tools
wdl-lsp-tools provides two small language servers for WDL (Workflow Description Language) files. They were written for the Zed WDL extension, which downloads them automatically, but they speak plain LSP (Language Server Protocol) over stdin/stdout and can be used with any editor. Both use only the Python standard library and need Python 3.8 or newer.
wdl-command-lint
wdl-command-lint runs ShellCheck on the bash in each WDL command block and Ruff on the Python heredocs inside them, and reports the results as diagnostics on the WDL file. WDL placeholders (~{...}) are replaced with code of the same length before linting, so positions map straight back onto the WDL file without placeholder false positives.
It is configured with environment variables:
| Variable | Description |
|---|---|
SHELLCHECK_BIN |
Path to shellcheck. Unset turns ShellCheck off. |
SHELLCHECK_EXCLUDE |
Comma-separated ShellCheck codes to ignore, e.g. SC2086,SC2034. |
SHELLCHECK_SEVERITY |
Minimum severity: error, warning, info, or style. |
RUFF_BIN |
Path to ruff. Unset turns Ruff off. |
RUFF_IGNORE |
Comma-separated Ruff rules to ignore. |
With neither tool set, the server starts but reports nothing.
sprocket-filtered
sprocket-filtered runs Sprocket as a language server and drops diagnostics whose message matches a regular expression (by default, Sprocket's type mismatch: ... errors). All arguments are passed to Sprocket unchanged, e.g. sprocket-filtered analyzer --stdio. It also sends pull-diagnostic requests to Sprocket one at a time, because Sprocket (0.28 through 0.32 at least) stops answering requests once more are in flight than the machine has CPU cores.
| Variable | Description |
|---|---|
SPROCKET_BIN |
Path to sprocket (default: sprocket on PATH). |
SPROCKET_HIDE_DIAGNOSTICS |
Regular expression for the messages to drop (default: ^type mismatch). |
Installation
Install from PyPI with uv tool install wdl-lsp-tools or pipx install wdl-lsp-tools, which puts both commands on your PATH. Each GitHub release also includes wdl-lsp-tools.pyz, a single-file zipapp that runs either command without installing anything:
python3 wdl-lsp-tools.pyz wdl-command-lint
python3 wdl-lsp-tools.pyz sprocket-filtered analyzer --stdio
Releasing
Releases are built and published by GitHub Actions when a version tag is pushed. Update __version__ in src/wdl_lsp_tools/__init__.py, then tag the commit with the same version (e.g. v0.1.0) and push the tag.
License
BSD-3-Clause. See LICENSE.
Metadata
Release files for wdl-lsp-tools 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| wdl_lsp_tools-0.1.0.tar.gz | 10.7 kB | With provenance | Details for wdl_lsp_tools-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| wdl_lsp_tools-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for wdl_lsp_tools-0.1.0-py3-none-any.whl |
Total release size: 23.0 kB
Release files / wdl_lsp_tools-0.1.0.tar.gz
| Download URL | wdl_lsp_tools-0.1.0.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b1c94d6f16f839dfcba5e0dbd0874448fb0ce4739b2f4327b4cb4aac0f5c4d9
|
|
BLAKE2b-256 checksum How to use checksums |
4114c732f64a826a23ee7245c124071d3336a5681f2966ff61dc5fa9e348e0d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.
Transparency logRelease files / wdl_lsp_tools-0.1.0-py3-none-any.whl
| Download URL | wdl_lsp_tools-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2f50ce2e32ad85d59f2fca7e602676c8fede8969bc175478a902b55e98b9b9ea
|
|
BLAKE2b-256 checksum How to use checksums |
f4966354150e2c5758b71288699c49c269705a3623a18e012f7b24d6a05fd2b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.
Transparency logSecurity for wdl-lsp-tools 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for wdl_lsp_tools-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 5, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.