Skip to main content

LSP Types

PyPI version Python Tests License: MIT

Typed Python interfaces for the Language Server Protocol, with async sessions and process pooling for Python language servers. Built on Sublime LSP’s generated types. Python 3.12+; one runtime dependency, tomlkit.

🧙 Meet your party

Pixel-art party: Pyright the blue sentinel, Pyrefly the coral artificer, ty the green scout, and Zuban the purple diplomat.
  • 🛡️ Pyright — the sentinel. Broad typing support and configurable execution environments. Choose basedpyright for extra diagnostics, baselines and semantic highlighting.
  • 🔧 Pyrefly — the artificer. Framework-aware analysis with opt-in regex and mock.patch checks.
  • 🏹 ty — the scout. Incremental analysis, explanatory diagnostics and precise type narrowing.
  • 🤝 Zuban — the diplomat. Mypy-compatible configuration and editor inference for untyped code.

🚀 Start a session

pip install "lsp-types[pyrefly]"  # Or [ty] / [zuban]
import asyncio
from pathlib import Path
from tempfile import TemporaryDirectory

from lsp_types import Session
from lsp_types.pyrefly.backend import PyreflyBackend

async def main():
    with TemporaryDirectory() as workspace:
        session = await Session.create(
            PyreflyBackend(),
            base_path=Path(workspace),
            initial_code='answer: int = "oops"',
        )
        try:
            print(await session.get_diagnostics())
            await session.update_code("answer: int = 42")
            print(await session.get_diagnostics())  # []
        finally:
            await session.shutdown()

asyncio.run(main())

Swap in TyBackend, ZubanBackend, or PyrightBackend. For Pyright, install Node.js and npm install -g pyright (or basedpyright) separately. Sessions write backend configuration into base_path; use a dedicated workspace as above. For types alone, import lsp_types; no server is needed.

✨ Features

All four backends support diagnostics, hover, completion, signature help and rename.

Feature Pyright basedpyright Pyrefly ty Zuban
Semantic highlighting ❌ ✅ ✅ ✅ ✅
Completion documentation via resolve ✅ ✅ ❌ ❌ ✅

Pyrefly returns completion items unchanged on resolve; ty does not support the request. ty hover returns the type without the symbol name.

📖 API & lifecycle · 🎨 Semantic tokens · 🧭 Backend guide · 🎮 Browser playground

🛠️ Development

uv sync --all-extras --locked
npm install -g basedpyright
uv run pytest tests
uvx pyright --pythonpath .venv/bin/python
uvx ruff check .
make generate-latest-types

Metadata

Release files for lsp-types 0.25.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lsp-types 0.25.0
File Size Uploaded
lsp_types-0.25.0.tar.gz 87.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lsp-types 0.25.0
File Interpreter ABI Platform
lsp_types-0.25.0-py3-none-any.whl Python 3 none any Details

Total release size: 182.7 kB

Release files / lsp_types-0.25.0.tar.gz

Download URL lsp_types-0.25.0.tar.gz
Size 87.3 kB
Tags Source
SHA-256 checksum
How to use checksums
334a34af279997740a5dd9f986f00d10ca543ee685cd115ef2eefa6423717c41
BLAKE2b-256 checksum
How to use checksums
cbf11bedb2651dfd307b3b9d4773380f2d213801724295aa8417f0a6ea0ce376
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 10, 2026.

Transparency log

Release files / lsp_types-0.25.0-py3-none-any.whl

Download URL lsp_types-0.25.0-py3-none-any.whl
Size 95.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ba1e109d9741da9be49ebed45d1e1878094f9b32c79cd9b4d96ff5c759137c5d
BLAKE2b-256 checksum
How to use checksums
64a00e359c7194607b4869d3677d6ff388136ffa533441524efde481cd324d0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 10, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page