Skip to main content
Glama
README.md
# odouche

[![CI](https://github.com/avanserv/odouche/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/avanserv/odouche/actions/workflows/ci.yml?query=branch%3Amain)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![pyscn quality](https://img.shields.io/badge/pyscn-A-brightgreen)](https://github.com/ludo-technologies/pyscn)

An unofficial toolkit for working with [Odoo.sh](https://www.odoo.sh) from your development
environment: list branches, watch builds, stream logs, from a script, a terminal or an agent.

> **Unofficial.** This project is not affiliated with, endorsed by, or supported by Odoo S.A.
> Odoo.sh has no public API: odouche talks to what the Odoo.sh web interface uses, which can change
> without notice.
>
> **Pre-alpha.** The library and the `osh` command log in, list projects, branches, builds and
> backups, watch a build, read and follow its logs, start a rebuild and change a branch's or a project's settings, and `osh ssh` opens a shell on a
> build with your own `ssh`: the
> [CLI guide](https://avanserv.github.io/odouche/cli/) has the commands. The MCP server reports
> its session, lists projects, branches and builds, reads one build and its logs and, when you
> allow it, starts a rebuild and changes a branch's or a project's settings.

## Packages

| Package | What it is |
| --- | --- |
| [`odouche`](packages/odouche) | A Python library: the client for Odoo.sh, usable in your own tools. |
| [`odouche-cli`](packages/odouche-cli) | The `osh` command, in the spirit of `gcloud`, `aws` and `scw`. |
| [`odouche-mcp`](packages/odouche-mcp) | A Model Context Protocol server, for development agents. |

The command-line tool and the MCP server are built on the library, and only on its public
interface.

## Credentials

odouche never sees, stores or logs your password or your GitHub token. The
[security model](docs/security.md) says what it does keep, where, and for how long.

## Development

Requires [uv](https://docs.astral.sh/uv/) and `make`.

```bash
make install   # install the workspace and the git hooks
make check     # format, lint, types, dependencies, dead code, tests with coverage, docs
make help      # everything else
```

[CONTRIBUTING.md](CONTRIBUTING.md) has the conventions, and [SECURITY.md](SECURITY.md) how to
report a vulnerability.

## License

[MIT](LICENSE)

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation4/5

The tools are mostly distinct by resource and action: project overview/settings, branches, builds, revisions, mails, logs and session each have clear roles. The build-centric tools (get_build, get_build_revision, list_builds, wait_for_build) are close enough that an agent may need to read descriptions carefully, but they are not truly overlapping.

Naming Consistency5/5

All tool names use consistent snake_case verb_noun or verb_preposition_noun patterns: get_*, list_*, read_*, and wait_for_*. There is no mixing of camelCase or vague standalone verbs.

Tool Count4/5

At 16 tools, the server is slightly above the typical 3-15 well-scoped range but still reasonable for a rich read-only inspection domain. Each tool maps to a coherent project, branch, build, mail, log or session concern rather than feeling padded.

Completeness4/5

The surface covers the main read-only inspection workflows comprehensively: projects, settings, members, audit logs, branches, builds, revisions, history, mails, logs, and polling. The main limitations are Odoo.sh-imposed bounds and the absence of any write or mutation operations, which appears intentional for this server.

Maintenance

ActivityMaintained
ResponsivenessNo issues