Un plugin que convierte a Claude en un agente de consultas para cualquier instancia de Odoo. Facturacion, suscripciones, pagos, contactos, stock, contabilidad y mas, todo desde el chat.
Si usas Odoo como ERP y trabajas con Claude Code o Cowork, este plugin te permite consultar tu Odoo en lenguaje natural:
- "Dame las facturas del mes pasado"
- "Cuantas suscripciones activas hay"
- "Buscar al cliente Garcia"
- "Cuanto stock hay del producto X"
- "Mostrame los pagos recibidos esta semana"
- "Cual es el plan de cuentas"
Claude lee los datos de Odoo, los interpreta y te responde de forma clara. Sin necesidad de navegar por Odoo ni armar filtros manuales.
Tu pregunta --> Claude --> CLI (XML-RPC) --> Tu Odoo
|
Contextos de conocimiento
(paginacion, quirks de Odoo, etc.)
- El plugin incluye un CLI en TypeScript que se conecta a Odoo via XML-RPC
- Un agente que sabe como usar el CLI y tiene conocimiento de la estructura de Odoo
- Contextos de conocimiento que le ensenan a Claude las particularidades de Odoo (paginacion, campos calculados, tipos de datos, etc.)
- Claude Code o Cowork (Pro, Max, Team o Enterprise)
- Node.js 18+ instalado en tu maquina
- Acceso a una instancia de Odoo 17+ con API Key
/plugin marketplace add frangramirez/odoo-agent
/plugin install odoo-agent
Luego configura tus credenciales:
/odoo-agent:setup
El setup te pedira:
- URL de tu Odoo (ej:
https://mi-empresa.odoo.com) - Nombre de la base de datos
- Tu email de usuario
- Una API Key (el setup te explica como generarla)
- Inicia sesion en Odoo
- Menu superior derecho > My Profile
- Seccion Account Security
- API Keys > New API Key
- Copia la key (solo se muestra una vez)
El agente usa 13 comandos internos para consultar Odoo:
| Comando | Que consulta | Modelo Odoo |
|---|---|---|
contacts |
Clientes, proveedores, contactos | res.partner |
invoices |
Facturas, notas de credito | account.move |
products |
Catalogo de productos | product.product |
stock |
Inventario por ubicacion | stock.quant |
subscriptions |
Suscripciones activas/bajas | sale.order |
payments |
Pagos recibidos y realizados | account.payment |
account-lines |
Lineas de asientos contables | account.move.line |
bank-journals |
Diarios bancarios | account.journal |
bank-statements |
Extractos bancarios | account.bank.statement.line |
chart-of-accounts |
Plan de cuentas | account.account |
search |
Busqueda en cualquier modelo | (cualquiera) |
fields |
Campos disponibles de un modelo | (cualquiera) |
write |
Actualizar registros | (cualquiera) |
No necesitas memorizar estos comandos. Solo hacele preguntas a Claude en lenguaje natural.
Si preferis usar el CLI desde la terminal:
# Buscar un contacto
node ~/.claude/tools/odoo-cli/dist/cli.js contacts '{"name":"Garcia"}'
# Facturas del mes
node ~/.claude/tools/odoo-cli/dist/cli.js invoices '{"state":"posted","date_from":"2026-01-01","date_to":"2026-01-31"}'
# Suscripciones activas
node ~/.claude/tools/odoo-cli/dist/cli.js subscriptions '{"active":true}'
# Ver ayuda
node ~/.claude/tools/odoo-cli/dist/cli.js help- Odoo 17, 18, SaaS - Testeado con Odoo 18.2 (SaaS)
- Claude Code - Terminal (macOS, Linux, Windows)
- Cowork - Desktop (Windows, macOS)
- Campos custom - El comando
fieldsdescubre camposx_studio_*y cualquier personalizacion
- Tus credenciales se guardan localmente en
~/.claude/tools/odoo-cli/.env - Nunca se envian a Anthropic ni a terceros
- La conexion es directa entre tu maquina y tu instancia de Odoo via HTTPS/XML-RPC
- El plugin no incluye ninguna credencial hardcodeada
odoo-agent/
├── .claude-plugin/ # Metadata del plugin
├── agents/odoo.md # Agente con instrucciones para Claude
├── skills/setup/ # Skill de configuracion inicial
├── hooks/ # Deteccion automatica de estado
├── cli/ # CLI TypeScript (XML-RPC)
│ └── src/commands/ # 13 comandos
└── context/ # Conocimiento de Odoo
└── odoo/context/
├── 0-core/ # Fundamentos, paginacion, quirks
├── 1-finance/ # Facturacion, metricas
├── 2-products/ # Catalogo, suscripciones, stock
└── 3-crm/ # Contactos
- La API de Odoo retorna maximo 100 resultados por consulta. El agente sabe paginar automaticamente
- Campos calculados como
total_invoicedocreditno se pueden usar en filtros de busqueda - En Odoo 18+, algunos campos cambiaron (ej:
analytic_account_id->analytic_distribution) - El comando
writemodifica datos reales. Claude siempre pide confirmacion antes de usarlo
Issues y PRs son bienvenidos. Si encontras incompatibilidades con tu version de Odoo, abri un issue con:
- Version de Odoo
- Comando que falla
- Error que ves
MIT
Creado por @frangramirez