jupyterlab-lsp
Coding assistance for JupyterLab with Language Server Protocol
What it is and what it does
jupyterlab-lsp is a JupyterLab extension that brings Language Server Protocol support to the notebook and file editor, enabling IDE-like code intelligence without running a kernel. It provides hover tooltips with function signatures and documentation, real-time diagnostics with color-coded severity, jump-to-definition and reference navigation, automatic completion triggered by language-specific characters, and symbol renaming across files. The extension merges static-analysis completions from LSP servers with runtime suggestions from a running kernel when available, falling back to LSP-only completions if the kernel is slow to respond.
The package depends on jupyter_lsp and jupyterlab. Language servers themselves are installed separately and configured through JupyterLab's Advanced Settings editor. It supports Python, R, bash, TypeScript, and other languages via their respective LSP implementations. No kernel is required for basic code assistance, making it useful for quick edits and exploration.
Use it for:
- Get IDE-like autocompletion and hover documentation in JupyterLab notebooks without starting a kernel.
- Jump to function and class definitions across your codebase directly from the notebook editor.
- See real-time diagnostics (errors, warnings) as you type, with detailed messages on hover.
- Rename variables, functions, and symbols consistently across multiple files in a project.
- Merge static-analysis completions with runtime kernel suggestions for richer code hints in notebooks.
- Work with multiple programming languages in a single JupyterLab environment.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds Language Server Protocol (LSP) integration to JupyterLab, enabling code intelligence features like autocompletion, diagnostics, jump-to-definition, and hover documentation across multiple programming languages.
Yes. The extension is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. It significantly enhances JupyterLab's code-editing experience by adding IDE-like features. Install it if you use JupyterLab 4.1+ and want better code intelligence; the main requirement is installing language servers separately for each language you want to use.
Install
jupyterlab-lsp on PyPI
pip
pip install jupyterlab-lspuv
uv add jupyterlab-lsppoetry
poetry add jupyterlab-lspInstalling jupyterlab-lsp
Before you install
Low friction install as a pure Python wheel. Actively maintained with recent releases; the repository shows 2000 stars and current activity. Requires JupyterLab >=4.1.0,<5.0.0a0 and Python 3.9+ at runtime.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute this extension freely with minimal restrictions. No licensing concerns for most development workflows.
Quickstart
pip install jupyterlab-lsp
# Restart JupyterLab and hover over code to see tooltips and completions
Requires JupyterLab >=4.1.0,<5.0.0a0 and Python 3.9+. Language servers for your target languages must be installed separately.
Verify before relying
- Which language servers are supported and how to install them for each language.
- Performance impact of running LSP alongside kernel completions in notebooks with large codebases.
- Compatibility with custom JupyterLab themes or other extensions that modify the editor.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — jupyter_lsp, jupyterlab |
| Maintenance | actively maintained — 134 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 143,031/month — #11,187 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jupyterlab_lsp-5.3.0-py3-none-any.whl
Keywords: Interactive, Language Server, LSP, JupyterLab, JupyterLab4
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
jupyter-lspBridges Language Server Protocol servers to…
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
python-lsp-serverImplements the Language Server Protocol for…
permissive · top 5,000 on PyPI
jedi-language-serverA Language Server Protocol implementation for…
permissive · top 15,000 on PyPI
ruff-lspProvides a Language Server Protocol bridge to…
permissive · top 15,000 on PyPI
python-lsp-ruffIntegrates ruff's linting, formatting, and…
permissive · top 15,000 on PyPI
leanclientInteract with a Lean 4 language server running…
permissive · top 5,000 on PyPI
pylsp-mypyIntegrates mypy static type checking into the…
permissive · top 15,000 on PyPI
python-language-serverImplements the Language Server Protocol for…
unclear · top 15,000 on PyPI