Skip to main content
OdooLS is an LSP server built specifically for the Odoo framework. It provides rich IDE features — autocompletion, diagnostics, go-to-definition, hover, and more — for Python, XML, and manifest files in Odoo projects. OdooLS is implemented in Rust and communicates with IDEs over the standard Language Server Protocol, making it compatible with any LSP-capable editor. IDE-specific extensions bundle the server and provide additional UI improvements.
OdooLS is actively developed and not yet at a stable release. You may encounter crashes or inconsistent results. Report issues and follow development at github.com/odoo/odoo-ls.

Features

OdooLS provides the following IDE capabilities for Odoo projects:

Autocompletion

Context-aware completions for Odoo models, fields, XML IDs, import statements, and relational field keyword arguments such as comodel_name and inverse_name.

Diagnostics

Real-time error detection including missing fields, invalid model references, domain validation errors, broken import statements, and manifest dependency issues.

Go-to-definition

Jump from a model reference, field access, XML ID, import, or __manifest__.py dependency directly to its declaration.

Hover

Inline documentation and type information when hovering over models, fields, functions, import targets, and manifest module dependencies.

Document symbols

Browse all classes, functions, and symbols defined in the current file via your editor’s outline or symbol picker.

Workspace symbols

Search for any class, function, model name, or XML ID across the entire workspace (e.g., Ctrl+T in VS Code). XML IDs are prefixed with xmlid. and model names are quoted.

Supported IDEs

OdooLS integrates with the following editors through dedicated extensions:

VS Code

The primary supported IDE. The extension bundles the server, provides status indicators, and exposes Odoo-specific settings.

PyCharm

A JetBrains plugin integrates OdooLS into PyCharm, with lifecycle management and loading status display (PyCharm 2025.3+).

Neovim

Integration via nvim-lspconfig for Neovim users who prefer a manual setup.

Zed

A light integration for the Zed editor.

Branch model

The repository uses four branches with distinct stability guarantees:
BranchPurpose
masterAll newly merged content. Cutting-edge, may be unstable.
alphaFeatures frozen for the next beta; tested internally.
betaLatest pre-release public version. Available on marketplaces that support pre-release tags.
releaseLatest stable public release. Available on marketplaces.
IDE extensions that support pre-release channels will allow you to opt in to beta builds. Use release for day-to-day development.

License

OdooLS and all related projects are licensed under the LGPLv3.

Build docs developers (and LLMs) love