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
psqlis 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2c7aec1d264697c4f88e6490f17c9c4bf0c4abd79700eb9b070cb810d282d78
|
|
| MD5 |
2ca1b188509bcf7cb5add5ea9dbd3967
|
|
| BLAKE2b-256 |
563dc421ebedc47a22f8229b22743bf749a110d9384f9262e609869fe6b1483d
|
Provenance
The following attestation bundles were made for odoorun-0.1.1.tar.gz:
Publisher:
release.yml on khalid99io/odoorun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odoorun-0.1.1.tar.gz -
Subject digest:
d2c7aec1d264697c4f88e6490f17c9c4bf0c4abd79700eb9b070cb810d282d78 - Sigstore transparency entry: 2199876244
- Sigstore integration time:
-
Permalink:
khalid99io/odoorun@e4dc02438509d83920885b43a5ab762655205ebd -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/khalid99io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e4dc02438509d83920885b43a5ab762655205ebd -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5da37eb6cf537527061eab586292f7530713d3f021283c484565ed400d6768c3
|
|
| MD5 |
c0da95e88489f6a552b7dff7e6a818fd
|
|
| BLAKE2b-256 |
750a28cbd38ba614346fbb01166a462835c78e00272a4a72d7da18e30d72c2df
|
Provenance
The following attestation bundles were made for odoorun-0.1.1-py3-none-any.whl:
Publisher:
release.yml on khalid99io/odoorun
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odoorun-0.1.1-py3-none-any.whl -
Subject digest:
5da37eb6cf537527061eab586292f7530713d3f021283c484565ed400d6768c3 - Sigstore transparency entry: 2199876283
- Sigstore integration time:
-
Permalink:
khalid99io/odoorun@e4dc02438509d83920885b43a5ab762655205ebd -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/khalid99io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e4dc02438509d83920885b43a5ab762655205ebd -
Trigger Event:
push
-
Statement type: