Skip to main content

odoorun

odoorun is a portable command-line launcher for Odoo. It finds an Odoo executable from the current project (or a parent directory), prepares the appropriate addons path, and forwards the remaining arguments unchanged.

It does not require symlinks, shell aliases, a modified .bashrc, or a machine-specific configuration.

Requirements

  • Python 3.10 or newer
  • An Odoo installation or source checkout
  • psql is optional and is used only for database completion/diagnostics

Odoo and PostgreSQL are external dependencies; odoorun does not install or configure them.

Installation

Recommended: install from PyPI

Once published, install it on any supported machine with:

uv tool install odoorun

Or use pip:

python -m pip install odoorun

Install directly from GitHub

uv tool install git+https://github.com/khalid99io/odoorun.git

Install a local checkout (development)

uv tool install .

After changing the checkout, refresh the installed command:

uv tool install --force .

Usage

Run from an Odoo source checkout or any directory below it:

odoorun -d my_database --dev=all

The short command o is optional and is not installed by this package. If desired, add your own alias or shell function:

alias o=odoorun

Virtual-environment projects

For a project directory named my-project, odoorun looks for:

~/venvs/my-project/bin/odoo

When found, it adds --addons=odoo/addons automatically. If the virtual environment has a different name, configure it without editing the package:

export ODOORUN_VENV_NAME=my-project-venv
export ODOORUN_VENV_ROOT="$HOME/venvs"

The tool invokes the venv executable directly; sourcing activate is not required for the launched Odoo process. A subprocess cannot change the parent shell's prompt, so prompt decoration remains a shell responsibility.

Odoo source checkouts

For a checkout containing an executable odoo-bin, the built-in addons directory is passed automatically. Additional addon directories can be listed with -a or --addons-path; relative paths are resolved from the checkout's parent directory:

odoorun -a custom-addons,enterprise -d my_database

Each directory must exist. Missing directories are reported before Odoo starts.

Diagnostics

odoorun doctor
odoorun --help
odoorun --version

Development

uv run python -m unittest discover -s tests -v
uv run python -m compileall -q src tests

Publishing

The source repository is hosted on GitHub:

https://github.com/khalid99io/odoorun

To publish releases on PyPI, create a PyPI account, configure a trusted publisher for this GitHub repository (recommended), build the package, and upload it with twine or a GitHub Actions release workflow. A GitHub account is required for the repository; a separate PyPI account is required to publish the odoorun package name.

Before the first release, update the version in pyproject.toml, add release notes, and verify the package in a clean virtual environment.

Download files

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

Source Distribution

odoorun-0.1.1.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

odoorun-0.1.1-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file odoorun-0.1.1.tar.gz.

File metadata

  • Download URL: odoorun-0.1.1.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for odoorun-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d2c7aec1d264697c4f88e6490f17c9c4bf0c4abd79700eb9b070cb810d282d78
MD5 2ca1b188509bcf7cb5add5ea9dbd3967
BLAKE2b-256 563dc421ebedc47a22f8229b22743bf749a110d9384f9262e609869fe6b1483d

See more details on using hashes here.

Provenance

The following attestation bundles were made for odoorun-0.1.1.tar.gz:

Publisher: release.yml on khalid99io/odoorun

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odoorun-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: odoorun-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for odoorun-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5da37eb6cf537527061eab586292f7530713d3f021283c484565ed400d6768c3
MD5 c0da95e88489f6a552b7dff7e6a818fd
BLAKE2b-256 750a28cbd38ba614346fbb01166a462835c78e00272a4a72d7da18e30d72c2df

See more details on using hashes here.

Provenance

The following attestation bundles were made for odoorun-0.1.1-py3-none-any.whl:

Publisher: release.yml on khalid99io/odoorun

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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