jedi-language-server
A language server for Jedi!
What it is and what it does
Jedi Language Server bridges Jedi, a mature Python static analysis library, to any editor or IDE that speaks the Language Server Protocol. It runs as a separate process and communicates with your editor over LSP, providing code completion, go-to-definition, hover documentation, refactoring operations (extract variable/function), and optional diagnostics. The server understands your project's virtual environment and can analyze both regular Python files and Jupyter notebooks.
The package is designed for developers who want IDE-like features in editors like Vim, Neovim, Emacs, or VS Code without embedding a full IDE. It handles configuration through LSP initialization options, allowing fine-tuning of completion behavior, diagnostic triggers, and symbol search. The maintainers note the project is in maintenance mode and suggest new users consider Zuban, a Rust-based alternative, though jedi-language-server remains actively maintained.
Use it for:
- Enable code completion and go-to-definition in Neovim or Vim using nvim-lspconfig or vim-lsp without installing a heavyweight IDE
- Provide Python language features in Emacs through eglot or lsp-jedi for a lightweight development environment
- Set up Python LSP support in VS Code by switching the language server from Pylance to Jedi for a lighter footprint
- Analyze and provide completions for Jupyter notebooks in compatible editors that support LSP and notebook protocols
- Customize completion filtering and diagnostic behavior per project via LSP initialization options
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Language Server Protocol implementation for Python that provides code completion, navigation, refactoring, and diagnostics to editors and IDEs via the LSP standard, powered by Jedi.
Yes, if you use an LSP-compatible editor and want Python completion and navigation without heavyweight tooling. The package is actively maintained, has no known vulnerabilities, installs cleanly, and supports current Python versions (3.10–3.14). The MIT license is unencumbered. Caveat: the maintainers flag this as maintenance mode and recommend Zuban for new projects, so evaluate whether you need long-term feature development or if stable, mature completion is sufficient.
Install
jedi-language-server on PyPI
pip
pip install jedi-language-serveruv
uv add jedi-language-serverpoetry
poetry add jedi-language-serverInstalling jedi-language-server
Before you install
Low friction installation as a wheel; active maintenance with a recent release 75 days ago and last commit on 2026-06-23. Requires Python 3.10 or later. Six runtime dependencies are all stable, well-maintained packages.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial contexts with minimal obligations.
Quickstart
pip install jedi-language-server
# Then configure in your editor (e.g., Neovim via nvim-lspconfig,
# VS Code by setting python.languageServer to 'Jedi',
# or Emacs via lsp-jedi/eglot)
Requires Python 3.10 or later; editor must support Language Server Protocol; some frameworks (coc-jedi, vscode-python) manage installation automatically.
Verify before relying
- Performance characteristics when handling large codebases or complex type hierarchies compared to alternatives
- Completeness of Jedi's type inference for modern Python typing constructs (PEP 604 unions, TypeVar bounds, etc.)
- Whether the maintenance-mode status affects long-term bug fixes or feature parity with active LSP servers
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — cattrs, docstring-to-markdown, jedi, lsprotocol, pygls, typing-extensions |
| Maintenance | actively maintained — 75 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 88,510/month — #13,722 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jedi_language_server-0.47.0-py3-none-any.whl
Keywords: completion, language-server-protocol, lsp, python, refactoring
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
jediJedi provides static analysis, autocompletion,…
permissive · top 1,000 on PyPI
lsprotocolProvides Python object types and converters for…
permissive · top 5,000 on PyPI
pyglspygls is a Python framework for building…
permissive · top 5,000 on PyPI
zubanZuban is a Rust-based Python language server…
agpl · top 15,000 on PyPI
jupyterlab-lspAdds Language Server Protocol (LSP) integration…
permissive · top 15,000 on PyPI
python-language-serverImplements the Language Server Protocol for…
unclear · top 15,000 on PyPI
ruff-lspProvides a Language Server Protocol bridge to…
permissive · top 15,000 on PyPI
esbonioA Language Server Protocol implementation for…
permissive · top 15,000 on PyPI
pyreflyPyrefly is a fast type checker and language…
permissive · top 5,000 on PyPI
ropeRope is a Python refactoring library that…
copyleft · top 5,000 on PyPI