django-language-server
July 25, 2026 ยท View on GitHub
A language server for the Django web framework.
Caution
This project is in early stages. All Most features are incomplete and missing.
Features
- Completions - Template tag and filter autocompletion with snippets

- Diagnostics - Real-time error checking and validation

- Command-line checks - Validate template files and directories with
djls check - Go to definition - Jump to template, block, and registered Python definitions
- Template navigation for
{% extends %}and{% include %} - Template Library, Tag, Filter, and selective-load symbol navigation
- Exact source highlighting in editors that support definition links
- Block definitions across template inheritance
- Variable definitions
- Template navigation for
- Find references - See where templates and inherited blocks are used
- Template references for
{% extends %}and{% include %} - Block references across template inheritance
- Variable references
- Template references for
- Document links - Click through resolved template references and template libraries
- Template names in
{% extends %}and{% include %} - Template libraries in
{% load %}
- Template names in
- Folding ranges - Fold Django template regions

- Hover - View documentation for Django template tags, filters, libraries, and template references

- Code actions - Quick fixes for unloaded tags or filters and mismatched closing block names
- Formatting - Opt-in LSP document formatting through
djangofmt - Rename - Refactor names across files
- Document symbols - Outline view of template structure
- Workspace symbols - Search across all project templates
- Signature help - Parameter hints while typing
Getting Started
Set up your editor's LSP client to run the server:
- VS Code - Install the extension from the marketplace
- Neovim - Configure with
vim.lsp.config() - Sublime Text - Set up with LSP package
- Zed - Install the extension
See all client configurations.
Most editors can use uvx --from django-language-server djls serve to run the server on-demand without installing it. Alternatively, install it globally first:
uv tool install django-language-server
# or: pipx install django-language-server
See the Installation guide for Homebrew, pip, standalone binaries, and source builds. The djls CLI can also check templates without an editor.
Once configured, open any Django template file in your project to get:
- Template tag and filter completions with snippets
- Real-time syntax validation and diagnostics
- Hover documentation for template tags, filters, libraries, and template references
- Navigation to templates, inherited blocks, and Python definitions for Template Libraries, Tags, and Filters
- Reference search across template inheritance blocks
- Clickable links for
{% extends %},{% include %}, and{% load %}names - Quick fixes for unloaded template tags/filters and mismatched
{% endblock %}names - Folding for Django template regions
- Outline symbols for template structure
- Opt-in LSP document formatting through
djangofmt
Documentation
Visit djls.joshthomas.dev for full documentation including installation guides, configuration options, and editor setup instructions.
Contributing
See the contributor guide for development setup, testing, snapshots, and code-quality workflows.
License
django-language-server is licensed under the Apache License, Version 2.0. See the LICENSE file for more information.
django-language-server is not associated with the Django Software Foundation.
Django is a registered trademark of the Django Software Foundation.