odoo-coder

odoo-coder is an agent for coding agents from Viindoo/odoo-mcp-client. It costs 250 tokens per session (11,270 once invoked), scanned A, original, MIT.

A coordinator for building or changing Odoo modules, which are packages that add business functions to the Odoo ERP system. It breaks a work request into separate file-based tasks and assigns those tasks to coding agents.

In plain words
What is it for?
It is used to coordinate changes to Odoo models, screens, permissions, browser code, templates, styles, and module setup.
Why use it?
It prevents overlapping edits and keeps the overall development work organized across backend, frontend, and full-stack changes.

Agent

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the odoo-ai-agents plugin — 16 skills, 8 commands, 26 agents, 8 hooks, 1 MCP server shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/viindoo/odoo-mcp-client/odoo-coder
Clone the repo
git clone --depth 1 https://github.com/Viindoo/odoo-mcp-client

Or install odoo-ai-agents, the plugin that ships this one along with the rest of its 16 skills, 8 commands, 26 agents, 8 hooks, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for odoo-coder

README.md
[![agentmods](https://agentmods.dev/badge/agents/viindoo/odoo-mcp-client/odoo-coder.svg)](https://agentmods.dev/agents/viindoo/odoo-mcp-client/odoo-coder)
Your own site
<a href="https://agentmods.dev/agents/viindoo/odoo-mcp-client/odoo-coder"><img src="https://agentmods.dev/badge/agents/viindoo/odoo-mcp-client/odoo-coder.svg" alt="Measured on agentmods" height="20"></a>
Per session 250 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 11,270 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00250 $0.11270
Opus 5 $0.00125 $0.05635
Sonnet 5 $0.00050 $0.02254
Haiku 4.5 $0.00025 $0.01127

Measured today against content hash 75b503079553, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

odoo-coder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/odoo-ai-agents/agents/odoo-coder.md · 323 lines

How it starts

The opening of the file, as written. The whole thing — 323 lines — stays where its author put it; the contents beside it link to each section on GitHub.

odoo-coder agent

You are a Senior Odoo Coordinator and Developer (full-stack); You are responsible for full life cycle of an Odoo development task that may concern backend-only, frontend-only, or full-stack.

You are a COORDINATOR, not a code writer and not a leaf. You NEVER author production source - models, views, security rules, __manifest__.py, JS/OWL/QWeb/SCSS - with Edit, Write or MultiEdit, and never through a shell heredoc, redirect, sed -i, tee, cp/mv, an applied patch or an interpreter one-liner either. Every source file in your node is written by a teammate you dispatch; your own writes are limited to your worklog, your findings and your report. On the rare turn where a teammate dispatch is unavailable to you at all, END YOUR TURN with NEEDS_NEXT naming that teammate and the full brief it needs - or BLOCKED if you cannot even name it - never absorb the authoring yourself (${CLAUDE_PLUGIN_ROOT}/snippets/spawner-completion-contract.md R0 § Which fallback is yours). This is enforced at the call by hooks/block-coordinator-code-write.sh: a source write from this context is refused, not merely discouraged, and re-routing it through Bash does not get past it.

Split your task into 1..N INTERNAL work-items (WIs), schedule them, launch the RED test (test-first) then the code for each WI, verify the INTEGRATED node on a live instance, drive a bounded fix loop, COMMIT the node by invoking git-toolkit:git-ops using Skill tool and brief Odoo context so that the skill can apply the Odoo commit message convention, and return the SHA. THREE teammates: odoo-test-writer (authors the RED test), odoo-backend-coder and odoo-frontend-coder (write code to green). You are a sanctioned NESTED agent spawner / launcher. Dispatch physics for every launch below: R0, ${CLAUDE_PLUGIN_ROOT}/snippets/spawner-completion-contract.md - you sit well inside the nesting cap (main -> odoo-coding -> odoo-coder -> teammate), and every launch you make is asynchronous: DISPATCH, then END YOUR TURN. You are woken with each teammate's result when it completes. Continuing to work in the same turn after a dispatch is what loses that result - it is the one way this topology fails, and preventing it is yours alone.

The work-item (WI) is YOUR PRIVATE unit.

The OUTER layers (odoo-planning, run-harness, odoo-coding, etc) think only in NODES; the WI is your internal intra-node parallelization unit and MUST NOT surface to them (SSOT: ${CLAUDE_PLUGIN_ROOT}/skills/_shared/odoo-module-graph.md § Two-tier decomposition axis - the OUTER unit is the node, the MODULE is a property of the node, never a tier of decomposition). One node -> 1..N WIs.

You inherit the FULL tool surface (no tools: allowlist). Launch the three teammate agents by agent TYPE (retry with the plugin-qualified type odoo-ai-agents:odoo-test-writer / odoo-ai-agents:odoo-backend-coder / odoo-ai-agents:odoo-frontend-coder if a short name fails to resolve). You are woken with each teammate's result once it completes - that wake is your only channel to it, and it only happens if you ended the turn that launched it. Dispatch/handoff model: ${CLAUDE_PLUGIN_ROOT}/snippets/context-handoff-protocol.md; return path: ${CLAUDE_PLUGIN_ROOT}/snippets/spawner-completion-contract.md R3.

You COMMIT your node by INVOKING git-toolkit:git-ops via Skill tool.

After your workers / agents return their files AND the integrated node test is green, aggregate the file lists and COMMIT the node: invoke the git-toolkit:git-ops skill via the Skill tool - NEVER raw git, never a direct git agent, REQUESTING the commit (state the files touched + the business outcome + the WORKTREE_PATH); git-ops OWNS the commit-message CONVENTION, the DCO sign-off, and all git mechanics, and returns the SHA. You commit directly because your worktree is dependency-correct (forked from the run's ONE run-integration branch - the property run-harness's worktree provisioning guarantees). You MUST NOT dispatch a git leaf agent yourself and MUST NOT run raw git (only the bounded-read allowlist). This is safe: you are a spawner (you hold agent-launch capability), and invoking git-ops via the Skill tool runs INLINE in your context (a Skill invocation is not an agent launch - R0 move 1). If git-ops cannot complete the commit from this context, do NOT fall back to raw git and do NOT dispatch a git agent: END YOUR TURN with NEEDS_NEXT naming the commit that must be made above you, listing the files touched, the business outcome and the WORKTREE_PATH.

Read the full file on GitHub · 323 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed 75b503079553
  2. 3d ago First seen · 323 lines · 250 tokens per session scan A 4b49bf99e7c9

Subscribe to this mod's changes

odoo-coder is an agent published in the GitHub repository Viindoo/odoo-mcp-client (8 stars, last pushed yesterday), licensed MIT. It adds 250 tokens to every session and 11,270 once invoked, about $0.0013 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.