odoo-lint
DiscoveredBlazing fast Rust-native linter for Odoo modules
odoo-lint
Blazing fast Rust-native linter for Odoo modules. The command is called odl.
It checks Python files, manifests, XML and CSV data files and translation
(.po) files, with the checks of OCA's pylint-odoo, oca-checks-odoo-module
and oca-checks-po: same names, same messages, same results on their own
test suites. It also warns about files that do not belong in a module, such
as packages or database dumps committed by accident.
Linting all of OCA/sale-workflow 18.0, as OCA's pre-commit hook runs pylint-odoo. See benchmarks.
- ⚡ 250x faster than pylint with pylint-odoo, and still 30x faster on a single core
- ⚖️ Drop-in for pylint-odoo and OCA's pre-commit checks: same codes,
names and messages, 95/95 checks matching on their own test suites (Python,
manifests, XML,
.po), and# pylint: disable=comments keep working - 🔧 Automatic fixes, safe and unsafe as in Ruff, for Python, manifests,
XML and
.pofiles (odl check --fix,--diffto preview) - ⬆️ Upgrade checks: leftovers of older Odoo versions, such as Bootstrap 4 classes that do nothing since Odoo 15.0, with fixes
- 🌍 Translation checks that predict Odoo's loader: why Odoo logs "malformed po file", and why a translation does not show up
- 📦 Installable with pip, uv or pipx: one binary in prebuilt wheels for Linux, macOS and Windows, without Python dependencies
- 🛠️ Configured in
pyproject.toml, including company-specific author rules - 📋 Output for CI: GitHub annotations, GitLab Code Quality, SARIF and JSON
- ✍️ In your editor: a language server (
odl server) with quick fixes, and extensions for VS Code and Zed - 🤖 For AI coding agents: an MCP server, and plugins for Claude Code, DeepSeek Harness and OpenCode that lint every file the agent edits
- 🪝 Git hooks: pre-commit and hk
Installation
uv tool install odoo-linter # or: pipx install odoo-linter
cargo install odoo-lint # from crates.io
The PyPI package is called odoo-linter, because odoo-lint is too similar
to an existing PyPI project. On crates.io it is odoo-lint.
Quick start
odl check path/to/addons # lint a directory
odl rule # list all rules
odl rule C8101 # explain a rule
odl check --fix # apply the safe fixes (--diff to preview)
Rules ported from pylint-odoo keep its codes, names and messages, and
# pylint: disable= comments keep working. Company-specific rules are
configured in your pyproject.toml:
[tool.odoo-lint]
target-version = "17.0"
[tool.odoo-lint.rules.manifest-required-author.mapping]
"acme_*" = "Acme Corp"
For AI coding agents there is an MCP server (odl mcp) and a post-edit hook,
packaged as plugins for Claude Code (/plugin marketplace add bosd/odoo-lint),
DeepSeek Harness and OpenCode.
See the documentation for all commands, configuration options and rules.
Development
uv sync --all-groups # builds odl into .venv via maturin
uv run nox # pre-commit, fmt, clippy, cargo tests, CLI tests, docs
See the development guide.
License
MIT
Comments
Loading…
Similar plugins
by LiuMengxuan04
Oh My DSH (DSH Autopilot): durable, bounded autonomous development for DeepSeek Harness
★ 12
MIT
TypeScript
Aug 15, 2026
dsh plugin --profile web add dsh-autopilotby edge-sky
An OAuth adapter for DSH
★ 6
↓ 184/wk
MIT
TypeScript
Oct 1, 2026
dsh plugin --profile web add @edge-sky/dsh-oauth-adapterRead-only Odoo tools over JSON-RPC: server info, model field introspection, and a restricted search_read limited to an allow list of models whose domain field names may not contain dots, so related-re
★ 0
↓ 116/wk
dsh plugin --profile web add dsh-odooby tokentopo-ai
an heterogeneous multi-agent collaboration skill designed for dsh
★ 7
JavaScript
Aug 19, 2026
dsh plugin --profile web add dsh-octoby sskkde
oh-my-openagent (OmO) core capabilities ported as a DeepSeek Harness plugin: ultrawork, role delegation, rules engine, boulder memory, hooks, Sisyphus main-prompt discipline
★ 0
NOASSERTION
TypeScript
Sep 7, 2026
dsh plugin --profile web add @dsh-external/dsh-oh-my-agentby telagod
dsh-plugin: OMP-style ingress shaping plus optional local /fast-compact for DeepSeek Harness
★ 3
MIT
JavaScript
Sep 11, 2026
dsh plugin --profile web add dsh-ledger-compact