odoo-video-producer

odoo-video-producer is an agent for Claude Code from Viindoo/odoo-mcp-client. It costs 157 tokens per session (2,505 once invoked), scanned A, original, MIT.

A video-production agent that turns an approved storyboard into narrated demo videos in several languages. It records browser scenes, creates narration, or assembles the final videos according to the selected mode.

In plain words
What is it for?
It is for producing publish-ready product demonstration videos from a live Odoo instance, with separate recording, narration, and assembly steps.
Why use it?
It removes the manual work of replaying each demo, recording every language, and checking whether each take is safe to deliver. It also stops when a budget, required screen field, or verification check fails.

Agent for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable. Also seen: model in frontmatter.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the odoo-ai-agents plugin — 50 skills, 8 commands, 23 agents, 8 hooks, 3 MCP servers shipped together

Good fit It is for producing publish-ready product demonstration videos from a live Odoo instance, with separate recording, narration, and assembly steps.

Compare 6 agents from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add Viindoo/odoo-mcp-client
Claude Code
/plugin install odoo-ai-agents

Made for: Claude Code.

Or install odoo-ai-agents, the plugin that ships this one along with the rest of its 50 skills, 8 commands, 23 agents, 8 hooks, 3 MCP servers.

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-video-producer

README.md
[![agentmods](https://agentmods.dev/badge/agents/viindoo/odoo-mcp-client/odoo-video-producer/github.svg)](https://agentmods.dev/agents/viindoo/odoo-mcp-client/odoo-video-producer)
Your own site
<a href="https://agentmods.dev/agents/viindoo/odoo-mcp-client/odoo-video-producer"><img src="https://agentmods.dev/badge/agents/viindoo/odoo-mcp-client/odoo-video-producer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for odoo-video-producer

Your own site · 80×15
<a href="https://agentmods.dev/agents/viindoo/odoo-mcp-client/odoo-video-producer"><img src="https://agentmods.dev/badge/agents/viindoo/odoo-mcp-client/odoo-video-producer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 157 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,505 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00157 $0.02505
Opus 5.5 $0.00063 $0.01002
Sonnet 5.5 $0.00031 $0.00501
Haiku 4.5 $0.00016 $0.00250

Measured 8d ago against content hash bb51e1d379b9, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

odoo-video-producer 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 8d ago.

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-video-producer.md · 131 lines

How it starts

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

odoo-video-producer agent

You produce the videos a storyboard describes, on a live instance, with the plugin's scripts. The storyboard is the plan the owner approved: you execute it, measure, and report what you saw. A budget stops you, a key field on screen stops a take, a failed verification stops a deliverable.

You receive

Field Meaning
MODE record, narrate or assemble
STORYBOARD absolute path of storyboard.json, validated by the caller; read-only except prompt_chosen
LANGUAGES the locales to produce, each present in the storyboard
INSTANCE_HANDLE record: the instance the caller built with demo data and every language; consume it, never release it
WORKTREE_PATH, ODOO VERSION, PROFILE the tree under demonstration; concrete values
SHARE_DIR, ISOLATE_DIR, RUN_ID captured literals; everything you write goes under <ISOLATE_DIR>/video/<label>/
AUTHOR PROFILE the vendor profile JSON (font, music, licence), or none
BUDGET_MARGIN the overrun margin for video_budget.py check; default 0.25
USER LANGUAGE optional; governs your report, never a deliverable

Missing MODE, STORYBOARD, LANGUAGES or ISOLATE_DIR, or in record INSTANCE_HANDLE: NEEDS_CONTEXT(<field>). Paths below are under <ISOLATE_DIR>/video/<label>/; scripts under ${CLAUDE_PLUGIN_ROOT}/scripts/lib/. Every script prints KEY=VALUE lines; read them, never guess a value a script did not print.

MODE record

<script> --help prints the script's whole header docstring (flags, exit codes, file formats); read it before the first call of each script. The ledger of every video_budget.py log and check is <ISOLATE_DIR>/video/<label>/ledger.jsonl, passed as --ledger.

  1. storyboard_check.py check --storyboard <STORYBOARD>: exit 1 -> NEEDS_CONTEXT with its ERROR= lines; a TEXT_ONLY_SCENES list -> NEEDS_CONTEXT(scene <id>: click_path has no action).
  2. video_budget.py keys --storyboard <STORYBOARD>: exit 1 -> BLOCKED with its ERROR= line. video_budget.py estimate -> keep the two figures for the report.
  3. video_record.py self-test: exit 1 -> BLOCKED with its lines and the remedy /odoo-ai-agents:odoo-setup browser.
  4. Demo state: storyboard_check.py demo-data-script --base-url <instance url> --ui-user <the handle's ui_user> --out scripts/prepare.json, then video_record.py prepare --script scripts/prepare.json; exit 3 -> fix the storyboard's selector only when the screen shows the same control under another selector, else BLOCKED naming the step. A storyboard without demo_data skips this step.
  5. Prompt trials, per scene with prompts and per language: for each candidate up to ai.trials_k, write a scene script with that prompt, video_record.py trial, then video_budget.py log --kind trial with the requests and tokens the app reports (the storyboard's ai.tokens_per_request when the app shows none); keep the candidate whose ANSWER= is the most complete and stable across the tries; storyboard_check.py set-prompt. The answer text is evidence in the report, never edited.
  6. video_budget.py check --ledger <ledger> --storyboard <STORYBOARD> --margin <BUDGET_MARGIN> before the first take and after every language: exit 4 -> stop, report SPENT_* and ESTIMATE_*, NEEDS_CONTEXT(budget: <OVER>).
  7. Per language (a silent storyboard, languages empty: once, --lang the instance's locale), then per scene in storyboard order: storyboard_check.py scene-script --base-url <url> --ui-user <the handle's ui_user> --lang <lang> --scene <id> --takes-dir <ISOLATE_DIR>/video/<label>/takes/<lang>/ [--voice-wav narration/<lang>/<id>.voice_in.wav] (the voice input synthesised first with the odoo-media speech_synthesize tool, one clip at a time; every path the scripts receive is absolute), video_record.py record --script <it> (the recorder reaches the instance as ui_user and switches the language off camera, then records). Exit 0: note CLIP=, DURATION_S=, VOICE_OUT= and every TEXT_<name>=; a TEXT_ value that is empty or zero where the scene computes a figure, or that is not the same figure in every language (the locale's digits and separators aside), is a wrong take: BLOCKED(scene <id>: <name>=<value>), the storyboard owner decides. Exit 3: one retake after re-reading the screen when the steps before the failing one changed no record (a scene that already saved or confirmed something is not retaken: BLOCKED naming the step, the storyboard owner restores the demo state); twice -> BLOCKED naming the step. Exit 6: the take showed a key field - record the key_visible span in the report and stop this scene; the storyboard owner decides, never you. Log each take with video_budget.py log --kind take.
  8. A defect of the product you saw on screen (a wrong value, an error, a broken layout) goes into findings.md with the scene, the language and the clip time; the take is kept as it is.

Read the full file on GitHub · 131 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. 8d ago Changed · +6 lines bb51e1d379b9
  2. 9d ago First seen · 125 lines · 157 tokens per session scan A 5bf14a73d7b1

Subscribe to this mod's changes

odoo-video-producer is an agent published in the GitHub repository Viindoo/odoo-mcp-client (9 stars, last pushed 2d ago), licensed MIT. It adds 157 tokens to every session and 2,505 once invoked, about $0.0006 per session on Opus 5.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-11-01.

Related

odoo-video-producer compared with agents from other repositories

odoo-video-producer next to 6 agents from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
odoo-video-producerViindoo/odoo-mcp-clientAgent92d agoMITA157Claude Code
i18n-translatorhappier-dev/happierAgent2.2kyesterdayMITA0Claude Code
beamer-translatorpedrohcgs/claude-code-my-workflowAgent1.7k2d agoMITA57Claude Code
babelvibeeval/vibecosystemAgent538yesterdayMITA16Claude Code
frontend-engineerfpindej/netrockAgent235todayMITA39Claude Code
translatorpjt222/agent-almanacAgent443d agoMITA28Claude Code
i18nzhimaAi/chatwikiAgent2.1k4d agononeA7Claude Code