Skip to main content
This guide gets you from zero to a working OdooLS setup — with autocompletion, diagnostics, and go-to-definition active in your Odoo project.
1

Install your IDE extension

Install the OdooLS extension for your editor:

VSCode

Install from the VS Code Marketplace

PyCharm

Install from the JetBrains Plugin Marketplace

Neovim

Configure via nvim-lspconfig

Zed

Install via the Zed extension manager
The VSCode and PyCharm extensions bundle the OdooLS server binary — no separate installation needed. For Neovim and Zed, see Installation to build the binary from source.
2

Create an odools.toml configuration file

Add an odools.toml file at the root of your workspace (or any parent directory). At minimum, point it to your Odoo community source and your addon directories:
odools.toml
[[config]]
odoo_path = "/path/to/odoo"
addons_paths = ["/path/to/your/addons", "$autoDetectAddons"]
python_path = "python3"
Use "$autoDetectAddons" in addons_paths and OdooLS will automatically include the workspace folder as an addon path if it contains valid Odoo modules.
OdooLS searches for odools.toml by walking up the directory tree from the workspace root, so you can place it in a parent directory shared across multiple Odoo projects. See Configuration File for all available settings.
3

Open your Odoo project

Open your addon or workspace folder in your IDE. OdooLS will detect the odools.toml configuration and begin indexing your Odoo codebase.A loading indicator will appear while OdooLS builds its symbol index (VSCode shows this in the status bar; PyCharm 2025.3+ displays a progress bar).
4

Verify it's working

Once indexing is complete, verify OdooLS is active:
  • Hover over an Odoo model class — you should see its name and base models
  • Ctrl+Space inside self.env[" — model name suggestions should appear
  • Open a __manifest__.py — incorrect module dependencies should show as diagnostics
  • Ctrl+Click (or F12) on a field name — go-to-definition should jump to the field declaration

Using parse mode (CI / batch diagnostics)

OdooLS includes a --parse CLI mode that extracts diagnostics from a codebase and writes them to a JSON file — useful for CI pipelines or pre-commit hooks.
odoo_ls_server --parse \
  --community-path /path/to/odoo \
  --addons /path/to/your/addons \
  --python python3 \
  --output diagnostics.json
FlagDescription
--parse / -pRun in parse mode (required)
--community-path / -cPath to the Odoo community source
--addons / -aAddon directory path(s)
--pythonPython executable to use
--output / -oOutput file path (default: output.json)
--parse mode requires --community-path or --addons to be specified. Without at least one of these, there is nothing to analyze.

Next steps

Configuration File

Learn all available odools.toml settings including diagnostic filters and profile inheritance

Features

Explore what OdooLS can complete, validate, and navigate

Diagnostics Reference

Browse all 50+ diagnostic codes with descriptions and fixes

CLI Reference

Full reference for all command-line flags

Build docs developers (and LLMs) love