Skip to main content

Odooly, a versatile tool for Odoo

Install with uv:

uv tool install -U odooly

Or with Pip:

pip install -U odooly

As an alternative, uv can invoke Odooly without installing:

uvx odooly --help
uvx odooly https://demo.odoo.com/ -u demo

Documentation and tutorial: https://odooly.readthedocs.io/

Overview

Odooly connects to an Odoo instance through HTTP. It makes it easy to browse the application model, and to perform actions on the server. It is both an interactive shell (with pretty-printing and colors) and a client library.

Key features:

  • provides an API similar to Odoo Model, through Webclient API

  • supports JSON-2 API with Odoo 19 and more recent

  • supports external API JSON-RPC as alternative

  • compatible with Odoo 9 to 21

  • single file odooly.py, no external dependency

  • helpers for search, for data model introspection, etc…

  • simplified syntax for search domain

  • entire API accessible on the Client.env environment

  • can be imported and used as a library: from odooly import Client

  • supports Python 3.8 and more recent

Interactive use

Launch without any configuration. It connects to the Odoo server, local or remote:

~$ odooly https://demo.odoo.com/

Or:

~$ odooly http://127.0.0.1:8069/

Environments can also be declared in odooly.ini:

[DEFAULT]
database = odoo
username = admin

[demo]
server = http://localhost:8069/web
username = demo
password = demo

[demo/jsonrpc]
server = http://localhost:8069/jsonrpc
username = demo
password = demo

[local]
scheme = local
options = -c /path/to/odoo-server.conf --without-demo all

Connect to the Odoo server:

~$ odooly --list
~$ odooly --env demo

This is a sample session:

>>> env['res.users']
<Model 'res.users'>
>>> env['res.users'].search_count()
4
>>> crons = env['ir.cron'].with_context(active_test=False).search([])
>>> crons.read('active name')
[{'active': True, 'id': 5, 'name': 'Calendar: Event Reminder'},
 {'active': False, 'id': 4, 'name': 'Mail: Fetchmail Service'}]
>>> #
>>> env.modules('delivery')
{'uninstalled': ['delivery', 'website_sale_delivery']}
>>> env.upgrade('base')
1 module(s) selected
42 module(s) to process:
  to upgrade    account
  to upgrade    account_chart
  to upgrade    account_tax_include
  to upgrade    base
  ...
>>> #

Metadata

Release files for Odooly 2.6.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Odooly 2.6.9
File Size Uploaded Provenance Actions
odooly-2.6.9.tar.gz 70.8 kB Without provenance Details for odooly-2.6.9.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for Odooly 2.6.9
File Interpreter ABI Platform Actions
odooly-2.6.9-py3-none-any.whl Python 3 none any Details for odooly-2.6.9-py3-none-any.whl

Total release size: 103.9 kB

Release files / odooly-2.6.9.tar.gz

Download URL odooly-2.6.9.tar.gz
Size 70.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b6cff4e7b153f6baf884fc8935f5423de217da76f96d60352ba44b279b921e45
BLAKE2b-256 checksum
How to use checksums
2b126bb164bee6a1a3dd0f936175508f51bbda8607dd856de69ba4d3cd8c3479
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Release files / odooly-2.6.9-py3-none-any.whl

Download URL odooly-2.6.9-py3-none-any.whl
Size 33.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61e4b0ddface09a8cb215d32138a2fac14531a8a68c812afe6abd61b8ac21d4b
BLAKE2b-256 checksum
How to use checksums
1625119eef75842615e53adc0f099ebb98baaee0566c1a97f852cfe9fe679c81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.2

Security for Odooly 2.6.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.6.9 This release

2 release files No provenance

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