odoo-cli
A CLI tool to manage and develop local Odoo instances: one workspace, git
worktrees for multitasking across versions, shared venvs, derived database
names, and automatic port allocation — with the filesystem, the database, and
odoo/odoo/release.py as the only sources of truth. The full design lives in
specs/ (requirements.md, architecture.md, usecase.md).
Install
uv tool install odoo-cli-official # installs the `odoo` executable
Runtime is the Python standard library plus a vendored click (Python 3.10+); nothing else.
Quick start
odoo init # workspace at ~/odoo, latest stable, empty db
odoo module install crm
odoo start # foreground; Ctrl-C to stop
The workspace looks like:
~/.config/odoo/odoo.conf <- the only config file (Odoo's own format/location)
~/odoo/
.repositories/ <- shared bare clones (presence = enabled)
.venvs/19.0/ <- one venv per detected Odoo version
.run/19.0/19.0/ports <- allocated ports per (worktree, database)
19.0/ <- a worktree: odoo/, documentation/, ...
Daily commands
| Command | Description |
|---|---|
odoo start [-d DB] [--new-port] [--prod] |
Start the server (foreground) |
odoo where [--json] |
Show the resolved context + exact odoo-bin command |
odoo update [modules] |
Update modules (default: all installed) |
odoo module install <modules> |
Install modules (creates the db if needed) |
odoo test <module|installed|all> [-t tag] |
Run tests in {db}-test |
odoo shell [-c CODE] |
Odoo Python REPL / one-shot execution |
odoo db reset |
Drop + recreate, reinstalling the db's module set |
odoo config get/set/list |
Edit the shared odoo.conf |
odoo repo enable <enterprise|themes|upgrade> |
Enable an optional repo |
odoo repo add <name> <url> |
Clone a custom addon repository |
odoo worktree create <name> [source] [--linked --addon REPO] |
New worktree |
odoo venv |
Rebuild the venv for the current worktree |
Commands infer their target from the current directory (or -w/-d); the
database defaults to the worktree name.
Development
# any Python >= 3.10 (a bare `python` may resolve to an older interpreter)
python3 -m unittest discover # unit + cli + integration (fast, no network)
ODOO_CLI_E2E=1 ODOO_CLI_E2E_ODOO_REPO=~/src/odoo \
python3 -m unittest discover tests/e2e -v # real-Odoo flows (slow, opt-in)
ODOO_CLI_DOCKER_E2E=1 \
python3 -m unittest tests.integration.test_postgres_install_environments -v
Architecture, layering rules, and the testing strategy are documented in
specs/architecture.md.
Metadata
Release files for odoo-cli-official 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odoo_cli_official-0.7.0.tar.gz | 297.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_cli_official-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 519.1 kB
Release files / odoo_cli_official-0.7.0.tar.gz
| Download URL | odoo_cli_official-0.7.0.tar.gz |
|---|---|
| Size | 297.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6d3bd58a96ee2fb8cdeff7e1f83734e5f84f311e1b0305cc36ab47095f5fd092
|
|
BLAKE2b-256 checksum How to use checksums |
a6a3bad29b79f54caaebed4cdd05ff9db6c0c25f7d51a3789cfcaefd81a940ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / odoo_cli_official-0.7.0-py3-none-any.whl
| Download URL | odoo_cli_official-0.7.0-py3-none-any.whl |
|---|---|
| Size | 222.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
781a579dd18845186ceac51c76768d1ee928c923c41e51c301e67feacfbf2547
|
|
BLAKE2b-256 checksum How to use checksums |
d34b93e5cfa863999495349cafbc8f5d267713548ccb77a9c89b085235af593c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.22 {"installer":{"name":"uv","version":"0.11.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|