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.
npx agentmods add agents/viindoo/odoo-mcp-client/odoo-codergit clone --depth 1 https://github.com/Viindoo/odoo-mcp-clientWrote 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.
[](https://agentmods.dev/agents/viindoo/odoo-mcp-client/odoo-coder)<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>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.
| Model | Per session | Once 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 |
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.
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.
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.
- today Changed 75b503079553
- 3d ago First seen · 323 lines · 250 tokens per session scan A 4b49bf99e7c9
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.
Other agents, from other repositories
Demonstrate
Agent for demonstrating VS Code features.
playwright-test-generator
Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.
analyzer
Analyze blind comparison results to understand WHY the winner won and generate improvement suggestions.
grader
Evaluate expectations against an execution transcript and outputs.
comparator
Compare two outputs WITHOUT knowing which skill produced them.
.NET-Notebook-Migration-Agent
Expert .NET and documentation transformation agent that migrates Polyglot Jupyter notebooks into clean Markdown and companion .NET sample code.