ruff-lsp
A Language Server Protocol implementation for Ruff.
What it is and what it does
ruff-lsp is a Language Server Protocol implementation that bridges Ruff, a fast Python linter and formatter written in Rust, to any editor supporting LSP. It surfaces Ruff's diagnostics directly in your editor and provides code actions to fix violations automatically, organize imports isort-style, and format code Black-compatibly. The package depends on lsprotocol, pygls, ruff, packaging, and typing-extensions to function.
However, the package is now deprecated. Ruff itself ships with a built-in language server (`ruff server`) as of v0.4.5, marked stable in v0.5.3, which provides the same feature set with superior performance and requires no separate installation. The maintainers recommend migrating to the native server rather than continuing with ruff-lsp, and the repository is archived with no active maintenance.
Use it for:
- Integrate Ruff linting into Neovim alongside other language servers like Pyright for diagnostics and code actions.
- Use Ruff for formatting and import organization in Sublime Text via the LSP and LSP-ruff packages.
- Enable Ruff diagnostics in Emacs or other LSP-capable editors without running Ruff as a separate CLI tool.
- Provide auto-fix actions for common violations (unused imports, formatting) directly in your editor's UI.
- Run Jupyter Notebook linting and formatting through Ruff via LSP in compatible notebook editors.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a Language Server Protocol bridge to Ruff, enabling linting, formatting, and import organization in LSP-compatible editors like Neovim, Sublime Text, and Emacs.
No. The package is abandoned and explicitly deprecated by its maintainers in favor of the native `ruff server` command, which is now stable and built into Ruff v0.5.3+. If you need LSP integration for Ruff, use `ruff server` instead—it offers the same capabilities with better performance and no extra installation step. Install ruff-lsp only if you are locked into an older Ruff version that predates v0.4.5 and cannot upgrade.
Install
ruff-lsp on PyPI
pip
pip install ruff-lspuv
uv add ruff-lsppoetry
poetry add ruff-lspInstalling ruff-lsp
Before you install
Low install friction with five runtime dependencies. However, the package is abandoned as of 550 days since last release; the maintainers have deprecated it in favor of the native `ruff server` command built into Ruff v0.4.5+, which offers the same features with better performance and no separate installation.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it safe from a licensing perspective for most projects.
Quickstart
pip install ruff-lsp
# In Neovim init.lua:
require('lspconfig').ruff_lsp.setup {
init_options = {
settings = {
args = {},
}
}
}
Requires an LSP-compatible editor (Neovim, Sublime Text, Emacs, etc.) and Ruff itself as a runtime dependency; editor-specific LSP client configuration is necessary.
Verify before relying
- Whether the abandoned status and lack of updates since 550 days ago will cause compatibility issues with newer editor versions or Ruff releases.
- Performance characteristics compared to the native `ruff server` alternative that is now stable in Ruff v0.5.3.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — lsprotocol, packaging, pygls, ruff, typing-extensions |
| Maintenance | abandoned — 550 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 114,714/month — #12,282 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ruff_lsp-0.0.62-py3-none-any.whl
Keywords: language-server, language-server-protocol, lsp, python, ruff
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
python-lsp-ruffIntegrates ruff's linting, formatting, and…
permissive · top 15,000 on PyPI
lsprotocolProvides Python object types and converters for…
permissive · top 5,000 on PyPI
jedi-language-serverA Language Server Protocol implementation for…
permissive · top 15,000 on PyPI
jupyterlab-lspAdds Language Server Protocol (LSP) integration…
permissive · top 15,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pyglspygls is a Python framework for building…
permissive · top 5,000 on PyPI
python-lsp-serverImplements the Language Server Protocol for…
permissive · top 5,000 on PyPI
esbonioA Language Server Protocol implementation for…
permissive · top 15,000 on PyPI
leanclientInteract with a Lean 4 language server running…
permissive · top 5,000 on PyPI
jupyter-lspBridges Language Server Protocol servers to…
permissive · top 1,000 on PyPI