Odoo intelligence for your IDE

Your IDE finally
understands Odoo.

Completion, navigation and type checking that read your real Odoo source, across Python, XML views, QWeb and Owl templates, JavaScript and SQL. Odoo-aware suggestions are scoped to the addon you're in: its Odoo version and its depends list.

Available on JetBrains Marketplace · PyCharm 2025.1+ · Odoo 10+

Everywhere Odoo touches your code

None of this is a snippet library. Each feature reads the addon you have open and its real _inherit chain.

models.py

Imports that resolve to real files

odoo.addons is a namespace Odoo builds at runtime, not a real package, so plain Python support can't follow an import into another addon. Odoo DevKit locates the addon on disk and resolves the import, whether it sits in your project, a dependency, or a sibling workspace module.

Odoo DevKit resolving and completing an import from another addon
models.py

A dozen _inherit classes. One model.

Odoo builds one model out of _inherit classes scattered over a dozen addons, and _inherits delegation follows different rules again. DevKit rebuilds that merge, so self.env[...] carries a real, chainable type through ORM calls, and a field from outside your depends is flagged before you run anything.

Odoo DevKit following an ORM chain call to a typed recordset Odoo DevKit flagging a field outside the addon's depends chain Odoo DevKit merging a model's _inherit classes into one completion popup
views.xml

Beyond plain-text XML

To generic XML tooling, a <field name=""> attribute or a domain tuple is just text, so a typo may surface only when the view loads. DevKit resolves the model behind each reference, follows inherit_id and <xpath> through inherited views, and adds gutter navigation to matched nodes in the parent view.

Odoo DevKit completing a field name attribute inside a view's XML A gutter icon on an xpath locator jumping to the matching node in the parent view
xml / csv

One external ID system, many data files

<record>, <template> and a CSV row all declare the same kind of external id. DevKit indexes the three identically, so Go to Symbol, Ctrl+click and Find Usages land on the declaration wherever it lives.

Ctrl+clicking an external id declared in a <record> Ctrl+clicking an external id declared in a <template> Ctrl+clicking an external id declared in a CSV data file Finding an external id by name through Go to Symbol
templates.xml

Templates that know what's in scope

DevKit models the QWeb engine itself: every t-* directive, plus the exact variables Odoo puts in scope for each one, from env and the record's fields down to an earlier t-set. Completion offers only what exists at render time, and Ctrl+click goes to where a variable was declared.

Odoo DevKit completing a QWeb directive and context-variable expression
component.js

The framework on top of JavaScript

Odoo layers its own module system, Owl components, registries, services and hooks over plain JavaScript. DevKit models those Odoo-specific layers so completion and navigation can resolve registry keys, service names and patched class members.

Odoo DevKit completing and highlighting Owl component syntax Odoo DevKit completing an inline Owl template written as a tagged xml template literal Odoo DevKit showing override gutters and member support inside an Odoo JavaScript patch
queries.sqlPro

Raw SQL, still Odoo-aware

SQL inside Odoo cursor calls still belongs to your model layer. DevKit injects PostgreSQL support into the query, completes model-backed tables, relation tables and stored columns within the addon's dependency scope, and links SQL columns back to their Python field declarations.

Odoo DevKit adding PostgreSQL support to an Odoo cursor query, completing Odoo tables and navigating from a SQL column to its Python field
run/debug

Run Odoo, already configured

DevKit finds your Odoo launcher and creates a ready-to-run configuration with the right addon paths and defaults. Run or debug from your code or tests.

Odoo DevKit finding a launcher and creating an Odoo run configuration
problems.log

Inspections with Odoo context

Generic inspections see isolated Python or XML. DevKit sees the addon around it—its Odoo version, dependency graph, model metadata, templates and routes. That context powers relevant warnings across the stack, helping you catch compatibility, correctness and security problems earlier.

Odoo DevKit flagging <tree> as deprecated on an Odoo 18 project Odoo DevKit flagging attrs= as removed on an Odoo 17+ project Odoo DevKit flagging t-esc and t-raw as deprecated in favor of t-out on an Odoo 16+ project Odoo DevKit warning that sudo() bypasses access rights inside a public route Odoo DevKit flagging a t-else with no preceding t-if/t-elif sibling Odoo DevKit flagging a model outside the current addon's dependency chain

Built for large, multi-addon Odoo codebases

The parts of Odoo's ORM that break simpler tools, or make them slow, are the parts Odoo DevKit is designed around.

▸

Multiple Odoo versions, kept separate

Several Odoo versions can sit in one project. Every lookup is scoped to the addon's own version and dependencies, so a v16 model never turns up in v18 completion.

▸

_inherit vs _inherits, handled correctly

SQL columns and ORM fields follow different rules for _inherit and _inherits. DevKit models both, instead of collapsing them into one mechanism.

▸

Stays fast on heavily-extended models

Lookups go through a search index rather than re-reading every file on each keystroke, even for a model extended across dozens of addons.

▸

Tested against Odoo source

Automated tests check behavior against Odoo's own source, version by version.

Available today on PyCharm

The current Marketplace release supports PyCharm 2025.1 or newer (build 251+), in either edition, and Odoo 10+. Requirements for additional IDEs will be listed here as each integration ships.

Odoo DevKit feature availability by PyCharm edition
Capability Community Professional
Python & XML Supported Supported
JavaScript & Owl components Supported with limitations Supported
SQL & CSS completion Not supported Supported

Works with your existing interpreter and project layout. * Community's own JavaScript support is thinner than Professional's, and DevKit's JavaScript and Owl features inherit that limit.

One plan, every current feature

No feature tiers to compare. In the current PyCharm release, SQL and CSS support also requires PyCharm Professional.

Odoo DevKit

Full License

Priced and billed on JetBrains Marketplace, team plans included. See the listing for current pricing.

  • Every feature on this page
  • Updates for the license term
  • 30-day free trial

Install from Settings → Plugins → Marketplace by searching for Odoo DevKit. Installation guide

Good to know

Which IDEs are supported?

PyCharm Community and Professional 2025.1 or newer (build 251+) are supported today. SQL and CSS need Professional, with its bundled plugin enabled. JavaScript and Owl work in both editions, within Community's own more limited JavaScript support.

What about other IDEs?

PyCharm is the first supported IDE, not the limit of Odoo DevKit. Additional IDE integrations are on the roadmap and will be announced individually when they are ready.

Which Odoo versions are supported?

Odoo 10 and up. The active version is detected from your source and manifests, and several versions can share one workspace without clashing.

Does my code ever leave my machine?

Code analysis and indexing run locally inside your IDE. Odoo DevKit does not upload your source code. Your IDE or its marketplace may connect to its own services for licensing and product operation.

Is there a free trial?

Yes, 30 days through JetBrains Marketplace before you activate a license.

How do I get support or report a bug?

Email odonexussoft@gmail.com for support or bug reports. You can also review known reports on the GitHub issue tracker.