Skip to main content
New FeatureMarch 18, 20268 min read

AI Coding Tools Are Now Built Into Your Odoo Dev Environment

Claude Code, Gemini CLI, and OpenAI Codex — pre-installed in a project-level dev terminal that already has your addon source code mounted. No setup, no copy-paste, no context switching. Your AI assistant finally sees your actual Odoo project.

The Problem — Copy-Paste Coding

Every Odoo developer using AI tools today runs the same loop: open ChatGPT or Claude in a browser tab, paste a chunk of Python, describe what the model should be looking at, wait for a response, copy the output back into your editor, run it, hit an error because the AI did not know about your _inherit chain or your custom field names, then start over.

The AI never sees your project structure. It does not know that your sale_order_extension module overrides _compute_amount in three places. It cannot read your __manifest__.py to understand dependencies. It has no access to the running container or the ORM. You are the bottleneck, manually shuttling context between two disconnected worlds.

What We Built

A project-level dev sidecar container. It runs alongside your Odoo environments on the same server, managed by OEC.sh. Inside it:

  • Claude Code (Anthropic)

    Agentic coding assistant. Reads your entire project, proposes multi-file edits, runs shell commands, and iterates on errors autonomously.

  • Gemini CLI (Google)

    Code understanding and generation from Google’s Gemini models. Strong at explaining complex ORM logic and generating test scaffolding.

  • OpenAI Codex

    Code completion and generation from OpenAI. Handles quick fixes, boilerplate generation, and targeted refactors.

Your addon code is already mounted at /workspace/{env-name}/. The AI tools can read every file in your project, follow import chains, inspect __manifest__.py dependencies, and write changes that Odoo picks up immediately. No upload step. No copy-paste.

How to Enable It

Three clicks and about 30 seconds:

1

Open Project Settings

Navigate to your project in the OEC.sh dashboard. Click Settings, then Developer Tools.

2

Toggle "AI Dev Mode"

Flip the switch. OEC.sh provisions the dev sidecar container on your server. Takes about 30 seconds.

3

Click "Open Dev Terminal"

A browser-based terminal opens with all three AI tools ready. Your code is already at /workspace/.

When the terminal opens, you will see this welcome banner:

  OEC.sh Dev Terminal — Project: my-erp
  ─────────────────────────────────────
  Available tools:
    claude    Claude Code (Anthropic)
    gemini    Gemini CLI (Google)
    codex     OpenAI Codex

  Quick start:
    claude "Explain the sale.order flow in this project"
    gemini "Generate unit tests for models/stock_move.py"
    codex  "Add a discount field to purchase.order.line"

  Workspace: /workspace/
  Docs: https://doc.oec.sh/product/developer-tools

Your Code Is Already There

The dev sidecar mounts every environment's addon source code into a unified workspace. You do not need to clone, download, or configure anything:

/workspace/
├── production/
│   └── my-custom-addon/
│       ├── __manifest__.py
│       ├── models/
│       ├── views/
│       └── security/
├── staging/
│   └── my-custom-addon/
│       ├── __manifest__.py
│       ├── models/
│       ├── views/
│       └── security/
└── dev/
    └── my-custom-addon/
        ├── __manifest__.py
        ├── models/
        ├── views/
        └── security/

Changes you make inside the terminal are written directly to the mounted volume. Odoo picks them up on the next request (or immediately if you are running in --dev=reload mode). No upload step, no deploy step, no waiting.

What You Can Do

Each tool runs as a CLI command inside the terminal. Here are real workflows Odoo developers are using:

Code review and test generation

$ claude "Review my sale.order extension and suggest test cases"

Analyzing /workspace/staging/my-custom-addon/models/sale_order.py...

Found 3 overrides of _compute_amount with conditional logic.
Suggested test cases:
  1. Test discount computation when qty > 100
  2. Test tax recalculation after manual price override
  3. Test multi-currency rounding in _compute_amount
  ...

Understand unfamiliar code

$ gemini "What does the _compute_margin method actually do?
         Walk me through it step by step."

Reading /workspace/staging/my-custom-addon/models/sale_order.py...

The _compute_margin method:
  1. Iterates over order lines with product_id set
  2. Pulls standard_price from the product (cost)
  3. Computes margin = price_unit - standard_price
  4. Applies the company currency conversion...

Fix errors directly

$ codex "Fix the TypeError in stock_picking.py line 47"

Reading /workspace/dev/my-custom-addon/models/stock_picking.py...

Line 47: partner_id.name.upper()
Issue: partner_id can be empty recordset when picking
       is created from inventory adjustment.

Fix applied:
  - partner_id.name.upper() if partner_id else "N/A"

Git operations from inside the terminal

$ cd /workspace/staging/my-custom-addon
$ git add models/sale_order.py
$ git commit -m "fix: handle empty partner in margin compute"
$ git push origin staging

Git is pre-installed. Your SSH keys are available. Push changes to trigger deployments through OEC.sh as usual.

Environment Lifecycle Stays Clean

The dev sidecar is decoupled from your Odoo environments. This is a deliberate architectural choice:

  • Destroy a staging environment — the sidecar keeps running. Your AI conversation history is intact.
  • Recreate an environment — the new addon volume is automatically mounted into the existing sidecar.
  • API keys persist in a project-scoped volume. Configure them once, use them across all environments.
  • Dev context does not live inside ephemeral environment containers. It outlives them.

This means you can maintain long-running AI sessions that build up context about your codebase — even as environments come and go underneath.

Architecture

The dev sidecar is a separate Docker container (oecsh/dev-sidecar) running alongside your Odoo containers on the same server. It is intentionally minimal and isolated:

SpecificationValue
Imageoecsh/dev-sidecar
Resources1 GB RAM, 1 CPU core
UserNon-root (uid 1000)
Capabilities--cap-drop ALL (no Linux capabilities)
NetworkIsolated from Odoo containers. Internet access for AI API calls only.
StorageProject-scoped persistent volume for AI config, history, and keys
Addon accessRead-write bind mount of /workspace/{env}/

The sidecar cannot reach your Odoo database, PostgreSQL, or other service containers. It only has access to the addon source code on disk and outbound internet for AI API calls.

Available on Pro Plan

AI Dev Mode is included in the Pro and Agency plans at no extra cost. You bring your own API keys for the AI services you want to use.

PlanPriceAI Dev Mode
Free$0/mo
Starter$19/mo
Pro$39/moIncluded
Agency$199/moIncluded

See full plan details at oec.sh/pricing. API key costs are billed directly by each AI provider (Anthropic, Google, OpenAI) based on your token usage.

Start Building with AI

Get Claude Code, Gemini CLI, and OpenAI Codex inside your Odoo project. Your code is already mounted. No setup required.

Frequently Asked Questions

What AI tools are included in OEC.sh Dev Mode?

OEC.sh Dev Mode includes three AI coding tools pre-installed: Claude Code (Anthropic), Gemini CLI (Google), and OpenAI Codex. All three are available from a single terminal session. You bring your own API keys — OEC.sh does not charge separately for AI usage.

Do I need to pay for Claude Code separately?

Yes. OEC.sh provides the runtime environment with the tools pre-installed, but you need your own API keys for each AI service you want to use. Claude Code requires an Anthropic API key, Gemini CLI requires a Google AI API key, and Codex requires an OpenAI API key. You pay the AI providers directly based on your usage.

Can I use AI Dev Mode on Odoo Community Edition?

Yes. AI Dev Mode works with both Odoo Community and Odoo Enterprise editions. The dev sidecar mounts your addon source code regardless of which Odoo edition you are running. It works with Odoo 16, 17, 18, and 19.

Is my code shared with OEC.sh when using AI tools?

No. When you use Claude Code, Gemini CLI, or Codex inside the dev sidecar, your code is sent directly from the sidecar container to the respective AI provider using your own API key. OEC.sh does not intercept, log, or store the content of your AI conversations or the code snippets you send to these services.

What happens to my AI sessions when I destroy an environment?

Your AI conversation history, API keys, and tool configuration persist in a project-scoped volume that is separate from your Odoo environment containers. Destroying a staging or dev environment does not affect the dev sidecar. Your sessions, history, and configuration remain intact until you explicitly delete the project.