CLI tool to manage and develop local Odoo instances
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file odoo_cli_official-0.7.0.tar.gz.
File metadata
- Download URL: odoo_cli_official-0.7.0.tar.gz
- Upload date:
- Size: 297.1 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d3bd58a96ee2fb8cdeff7e1f83734e5f84f311e1b0305cc36ab47095f5fd092
|
|
| MD5 |
b866379137dbfcf3b83d2332240b5870
|
|
| BLAKE2b-256 |
a6a3bad29b79f54caaebed4cdd05ff9db6c0c25f7d51a3789cfcaefd81a940ab
|
File details
Details for the file odoo_cli_official-0.7.0-py3-none-any.whl.
File metadata
- Download URL: odoo_cli_official-0.7.0-py3-none-any.whl
- Upload date:
- Size: 222.1 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
781a579dd18845186ceac51c76768d1ee928c923c41e51c301e67feacfbf2547
|
|
| MD5 |
d98ee41c7989fc7138fc181e2b2237ed
|
|
| BLAKE2b-256 |
d34b93e5cfa863999495349cafbc8f5d267713548ccb77a9c89b085235af593c
|