odx
Odoo Developer eXtension: one Rust CLI for Odoo projects, driven by a
single [tool.odx] table in pyproject.toml.
odx builds a project's addon repositories from upstream branches plus the pull requests you need, pins and vaults every commit so rebuilds never break, keeps an eye on what upstream merged, ports fixes across Odoo series, migrates addons the OCA way, and lints with project context. It replaces git-aggregator, uvault and a handful of scripts with one fast binary.
Install
$ uv tool install odx-cli # or: pipx install odx-cli
$ cargo install odx-cli
Binary wheels are published for Linux (glibc and musl, x86_64 and aarch64), macOS (Intel and Apple silicon) and Windows; no Rust toolchain needed.
Quick start
$ odx import repos.yaml --write # start from an existing git-aggregator setup
$ odx aggregate # fetch and build every repository
$ odx lock # pin and vault every merged commit
$ odx status # what upstream merged, what changed
$ odx lint --only-changed # odoo-lint with the project's context
What it does
| Area | Commands |
|---|---|
| Aggregate and lock | aggregate, lock, verify, add, drop, import, export |
| Packages and deployment | vendor, build, platform profiles (wheels, vendored source, Odoo.sh) |
| Local development | dev, doctor, auth, sync, cache, daemon |
| Upstream insight | status, suggest, verdict, dashboard, check-deps, upgrade, sniff, stats |
| Porting and migration | port pr/addon/sweep, migrate plan/addon/pr/update/pin/unpin/own |
| Linting | lint, with odoo-lint built in and project rules on top |
Every command supports --json. The full reference, configuration and
compatibility notes are on Read the Docs.
The aggregation engine is also available as a drop-in replacement for
git-aggregator's gitaggregate: odx git-aggregate, or the standalone
git-aggregate-rs package.
Status
Pre-alpha (0.0.x): the configuration and the CLI may still change between
releases. Environment promotion (odx promote, odx env) and the CI bot
(odx bot) are planned.
Packages
| Package | Registry | Purpose |
|---|---|---|
odx-cli |
PyPI, crates.io | the odx command |
git-aggregate-rs |
PyPI, crates.io | the gitaggregate drop-in |
odx-* |
crates.io | the libraries odx is built from; no stable API |
Contributing
Contributions are welcome: see CONTRIBUTING.md for the development setup and the quality gates (clippy pedantic, 100% coverage, MSRV 1.97). This project follows the Contributor Covenant.
License
MIT, see LICENSE. Maintained by Strategic Efficiency B.V. under the getfluvo organization.
Built with Rust & AI-accelerated engineering
Metadata
Release files for odx-cli 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| odx_cli-0.0.6.tar.gz | 631.6 kB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| odx_cli-0.0.6-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| odx_cli-0.0.6-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| odx_cli-0.0.6-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| odx_cli-0.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| odx_cli-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| odx_cli-0.0.6-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| odx_cli-0.0.6-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 64.0 MB
Release files / odx_cli-0.0.6.tar.gz
| Download URL | odx_cli-0.0.6.tar.gz |
|---|---|
| Size | 631.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dffa27ac50f2c88e690059391a07d39208757ab8ba3f9b2fadfde1288da8b8b3
|
|
BLAKE2b-256 checksum How to use checksums |
6c060dc1cbc48138ca04ac56262ad2a6dd22c28e84f7b3f1b0cf9b098c2b253f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / odx_cli-0.0.6-py3-none-win_amd64.whl
| Download URL | odx_cli-0.0.6-py3-none-win_amd64.whl |
|---|---|
| Size | 9.2 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2b90ae53f6cbc8b5627d181d22d7fdd92674a22241a236225dbcdc4b01a46fa2
|
|
BLAKE2b-256 checksum How to use checksums |
6454ce8634fbfa75f638ab74e0ae6931c6e1d4a2a35372f31bc0676f6a5bd811
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / odx_cli-0.0.6-py3-none-musllinux_1_2_x86_64.whl
| Download URL | odx_cli-0.0.6-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 9.8 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
5c8491e3adb385042a5f1305d12bbb4ba7471b46f4c02e196c1783bde56b5979
|
|
BLAKE2b-256 checksum How to use checksums |
96fccc9e66380b7627529404066801329011ea64c09d805edad409998cb34a43
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / odx_cli-0.0.6-py3-none-musllinux_1_2_aarch64.whl
| Download URL | odx_cli-0.0.6-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
b6169b9c446ef6dbc86b1114edd6411f3aa2d65ace3f5244836301ca2bb47178
|
|
BLAKE2b-256 checksum How to use checksums |
f539e8496fa15b0ff2922db0d29f37679c2180937a84cf9f78a0bc57face71aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / odx_cli-0.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | odx_cli-0.0.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 9.7 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
949319fc207ebe1945415471540b275831395ca966ed422ea3f50cfabf79d533
|
|
BLAKE2b-256 checksum How to use checksums |
eeebcc49d227d02ab5c5efae7f23ba5e8191a25a947e618778240af72b21d870
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / odx_cli-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | odx_cli-0.0.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
41e1253ab85f1f5e1086735d3d17abf62e1a267f5233c5c4fe48dfa33d122c37
|
|
BLAKE2b-256 checksum How to use checksums |
9e591ea19f5ab2c395698ee363cdbc6af5aaaaef59a85e86d93202c8a1ed4788
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / odx_cli-0.0.6-py3-none-macosx_11_0_arm64.whl
| Download URL | odx_cli-0.0.6-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 8.0 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
57a8898fb773f9677d687b5cb4228aeea157388f2a9bdafe62d6560c15765deb
|
|
BLAKE2b-256 checksum How to use checksums |
b2777ff5266f0c0d16112c55f3237d4928419e7419b4867386a53b7674b927de
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logRelease files / odx_cli-0.0.6-py3-none-macosx_10_12_x86_64.whl
| Download URL | odx_cli-0.0.6-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 8.5 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
dbd36b5935a2667f2975b04a96d2629f37ea11423a3e7ee83b090068b5ee150c
|
|
BLAKE2b-256 checksum How to use checksums |
3eba4992778ca4344f1b91265c2839b13f8802fd4c5b56ce9b210fb0e4b05fc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logSecurity for odx-cli 0.0.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 8 files in this release have been uploaded with provenance metadata.
Attestation for odx_cli-0.0.6.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.