Skip to main content

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)

Source distribution for odoo-cli-official 0.7.0
File Size Uploaded
odoo_cli_official-0.7.0.tar.gz 297.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for odoo-cli-official 0.7.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page