Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odoo_cli_official-0.7.0.tar.gz (297.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odoo_cli_official-0.7.0-py3-none-any.whl (222.1 kB view details)

Uploaded Python 3

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

Hashes for odoo_cli_official-0.7.0.tar.gz
Algorithm Hash digest
SHA256 6d3bd58a96ee2fb8cdeff7e1f83734e5f84f311e1b0305cc36ab47095f5fd092
MD5 b866379137dbfcf3b83d2332240b5870
BLAKE2b-256 a6a3bad29b79f54caaebed4cdd05ff9db6c0c25f7d51a3789cfcaefd81a940ab

See more details on using hashes here.

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

Hashes for odoo_cli_official-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 781a579dd18845186ceac51c76768d1ee928c923c41e51c301e67feacfbf2547
MD5 d98ee41c7989fc7138fc181e2b2237ed
BLAKE2b-256 d34b93e5cfa863999495349cafbc8f5d267713548ccb77a9c89b085235af593c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page