This release is a pre-release and may not be stable for production use.
ow — Odoo Workspaces
CLI tool that turns interactive prompts into ready-to-code Odoo workspaces using git worktrees.
What it is
ow manages Odoo development workspaces. Each workspace is a directory holding git worktrees for
the Odoo repos you work on, plus generated IDE configs, Python environment, and Odoo config files
— all ready to open and start coding.
Every workspace on the machine shares the same set of bare repos, so you clone Odoo once and fetch updates that are immediately visible to every workspace. Worktrees are cheap (no duplicate working trees), so you can keep multiple feature branches side by side without re-cloning gigabytes of history.
What it solves
- Clone fatigue — Odoo repos are large. Shared bare repos mean one clone, many worktrees.
- Setup boilerplate — the mise fragment,
odoorc,odools.toml,pyrightconfig.json, and the IDE configs are generated every time, from a fixed set of outputs. - Branch juggling — concise
base..featurebranch specs control detached vs attached worktrees;ow rebasekeeps them up to date idempotently, andow switchmoves every repo in a workspace to a branch at once. - Workspace discovery — workspaces live anywhere; an index remembers where, so
ow status myfeaturefinds it by name.
Prerequisites
- mise — manages Python, virtualenvs, and dependencies in generated workspaces
- Odoo system dependencies — see Odoo source install docs (includes wkhtmltopdf, PostgreSQL client libs, etc.)
- SSH — configured for access to Odoo repositories
- Docker or Podman (optional) —
owwrites a compose file for postgres, pgweb and mailpit; see Services
Installation
pipx install odoo-workspaces # recommended
pip install odoo-workspaces # or in an active venv
Quick Start
mkdir my_work && cd my_work
ow init # interactive form: repos and branch specs
mise install
code . # open in your IDE and enjoy
ow # launch the interactive dashboard
There is no global config until you save one: ow runs on built-in defaults, the community remote
included, and the dashboard's global-config editor writes a commented
~/.config/ow/config.toml for you to edit. See Configuration for the
full layout.
Documentation
- Commands — full command reference with flags and workspace resolution
- Interactive Dashboard — TUI for managing workspaces without memorising flags
- Configuration — XDG paths, remotes, typed options, ignore list, branch spec syntax
- Generated files — the fixed outputs, ownership, render and file states
- Services — Docker Compose stack (postgres, pgweb, mailpit)
- Sandboxing AI Coding Assistants — bubblewrap and firejail tasks for Opencode, Claude Code and Pi
- Tab Completion — fish, bash, zsh, powershell
- Migrating to 3.0 — schema 2, removed commands, backups
- Migrating from 1.x to the 2.0 layout — the first step of the move, for a project-scoped 1.x install
Thanks
This is a small personal project I built with AI coding. It scratches a very specific itch I have — managing multiple Odoo worktrees side by side.
If you find it useful, please consider contributing!
Contributions are welcome! If something is broken, confusing, or missing — open an issue. If you have a fix or improvement in mind, PRs are appreciated.
Release files for odoo-workspaces 3.0.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odoo_workspaces-3.0.0a1.tar.gz | 370.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_workspaces-3.0.0a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 547.6 kB
Release files / odoo_workspaces-3.0.0a1.tar.gz
| Download URL | odoo_workspaces-3.0.0a1.tar.gz |
|---|---|
| Size | 370.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ddd5753caff2c8d5a6805803ee7dec9cd30822a05d1d52789ab670697ffba1eb
|
|
BLAKE2b-256 checksum How to use checksums |
6a086f8d6998aa8de219c5196cc9891ff820189cf634bddd41e7739311b5c682
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / odoo_workspaces-3.0.0a1-py3-none-any.whl
| Download URL | odoo_workspaces-3.0.0a1-py3-none-any.whl |
|---|---|
| Size | 177.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d71c53d4b648f7d85deb27d72ff51f46bfa8cf28d03def8ac8ff0772249b3cf
|
|
BLAKE2b-256 checksum How to use checksums |
65835faf03ba61f133e27cf225f0e03e630462f1c025f419a1ee33dc9bb53053
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|