odoo-technical-plugins
v2.4.2
Published
Interactive installer for Odoo technical plugins (Claude Code, Codex, Cursor).
Maintainers
Readme
Odoo Technical Plugins
A collection of technical plugins for Odoo development, installed into AI coding agents (Claude Code, Codex, Cursor) with a single npx command.
Each plugin is self-contained under plugins/; the npx installer copies the right config into the agent you pick.
Plugins
| Plugin | Description | Docs |
|--------|-------------|------|
| odoo-technical-rules | General, vendor-neutral Odoo coding rules (naming, manifest, views, Python/ORM, security, commits, stable policy). VI + EN. | README · Install |
| odoo-test-lint | Make Python & JS pass Odoo's official linters (test_lint pylint checks + ESLint): SQL-injection, lazy translations, OWL static props/template, no private fields. Verifies via Odoo's own test_lint (odoo-bin -i test_lint). | README |
More plugins will be added here over time.
Install
Run the interactive installer from your project:
npx odoo-technical-plugins@latestThe
@latesttag bypasses npx's cache so you always get the newest rules.
It asks which plugin(s) and which agent(s) (multi-select with space) plus the scope, then writes the rules into each agent's always-on instructions file (loaded at the start of every session) as a marker-wrapped block that leaves the rest of the file untouched:
| Agent | Project | Global |
|-------|---------|--------|
| Codex | AGENTS.md | ~/.codex/AGENTS.md |
| Cursor | AGENTS.md | ~/.cursor/rules/<plugin>.mdc |
| Claude Code | CLAUDE.md | ~/.claude/CLAUDE.md |
AGENTS.md is the cross-tool standard read by Codex and Cursor; Claude Code uses CLAUDE.md (it doesn't read AGENTS.md natively). So a project needs just two files. Non-interactive too:
npx odoo-technical-plugins --agent all # this project
npx odoo-technical-plugins --agent codex --global
npx odoo-technical-plugins --agent claude --plugin odoo-test-lint --venv /opt/odoo/venvInstalling
odoo-test-lintinto a project also asks for the Python of your Odoo env (so the agent can run Odoo's officialtest_lintwith it) and saves it to.odoo-lint.json. Pass--venv <dir>(or--python <path>) to set it non-interactively; the interactive installer defaults to your system python.
Pinned to the GitHub source instead of npm?
npx github:JocelynVN/odoo-technical-pluginsworks the same (use--before flags).
It's a full lifecycle manager — installs are tracked in a manifest so you can refresh or remove them cleanly:
npx odoo-technical-plugins status # what's installed (project + global)
npx odoo-technical-plugins@latest update # refresh to the latest rules
npx odoo-technical-plugins uninstall # remove cleanlyThe odoo-test-lint plugin makes the agent verify code with Odoo's official
test_lint run through odoo-bin (the authentic SQL-injection / gettext /
unlink-override checks + eslint, exactly as Odoo CI does) — see that
plugin's README.
Customizing: the installed rules sit in a
<!-- BEGIN/END <plugin> -->block thatupdateoverwrites — keep team tweaks outside that block (elsewhere in yourAGENTS.md/CLAUDE.md), or they'll be replaced on the next update.
Repository layout
plugins.json # registry the npx installer reads
bin/cli.js # interactive npx installer (install/update/uninstall/status)
package.json # makes `npx odoo-technical-plugins` work
plugins/
odoo-technical-rules/ # plugin #1 (self-contained)
skills/<plugin>/SKILL.md # the rules body, written into AGENTS.md / CLAUDE.md
rules/ # full ruleset (en + vi) + reference material
README.md
INSTALL.md
odoo-test-lint/ # plugin #2
skills/<plugin>/SKILL.md
rules/odoo-test-lint.md # checks reference + how to run test_lint via odoo-bin
README.mdThe SKILL.md body is the source of the rules text; the installer wraps it in a
marker block inside each agent's instructions file.
Adding a new plugin
- Create
plugins/<your-plugin>/skills/<your-plugin>/SKILL.md(withname+descriptionfrontmatter; the body is the rules that get installed). - Add an entry to
plugins.json→plugins[](name,source,description). - Add a row to the Plugins table above.
It then appears automatically in npx odoo-technical-plugins and is managed by status/update/uninstall.
