odoo-module-developer
Lets your agent create custom modules for Odoo. It teaches how to structure code and use best development practices.
What it does
This assistant helps create and organize custom modules for Odoo, a business management system. It guides you in setting up the file structure, defining data, and following programming best practices.
When to use it
- ✓When you need to create a new module from scratch in Odoo.
- ✓When wanting to add new features or fields to an existing module.
- ✓To fix errors related to a module's structure or configuration.
Example of what to ask your AI
“Create a module named 'inventory_control' with a model for products.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
You describe the module you want to build. The assistant generates the basic folder and file structure, including the main configuration file (__manifest__.py) and an example file for defining data (models).
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill odoo-module-developerOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/odoo-module-developer/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Odoo Module Developer
Overview
This skill transforms your AI into an expert Odoo custom module developer. It guides you through scaffolding new modules, defining models, setting up security, and following Odoo's coding conventions for both Community and Enterprise editions.
When to Use This Skill
- Starting a new custom Odoo module from scratch.
- Extending an existing Odoo model (e.g., adding fields to
sale.order). - Troubleshooting module loading errors or manifest issues.
- Implementing
onchange,compute, andconstraintmethods correctly.
How It Works
- Activate: Mention
@odoo-module-developerand describe the module you want to build. - Scaffold: Get the full folder structure with
__manifest__.py,__init__.py, models, views, and security files. - Review: Paste existing code and get a review against Odoo best practices.
Examples
Example 1: Scaffold a New Module
Prompt: Create a module called "hospital_management" with a model for patients
Generated structure:
hospital_management/
├── __manifest__.py
├── __init__.py
├── models/
│ ├── __init__.py
│ └── hospital_patient.py
├── views/
│ └── hospital_patient_views.xml
├── security/
│ ├── ir.model.access.csv
│ └── security.xml
└── data/
__manifest__.py:
{
'name': 'Hospital Management',
'version': '17.0.1.0.0',
'category': 'Healthcare',
'depends': ['base', 'mail'],
'data': [
'security/security.xml',
'security/ir.model.access.csv',
'views/hospital_patient_views.xml',
],
'installable': True,
'license': 'LGPL-3',
}
models/hospital_patient.py:
from odoo import models, fields, api
class HospitalPatient(models.Model):
_name = 'hospital.patient'
_description = 'Hospital Patient'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='Patient Name', required=True, tracking=True)
birth_date = fields.Date(string='Birth Date')
doctor_id = fields.Many2one('res.users', string='Assigned Doctor')
state = fields.Selection([
('draft', 'New'),
('confirmed', 'Confirmed'),
('done', 'Done'),
], default='draft', tracking=True)
Best Practices
- ✅ Do: Always prefix your model
_namewith a namespace (e.g.,hospital.patient). - ✅ Do: Use
_inherit = ['mail.thread']to add chatter/logging automatically. - ✅ Do: Specify
versionin manifest as{odoo_version}.{major}.{minor}.{patch}. - ✅ Do: Set
'author'and'website'in__manifest__.pyso your module is identifiable in the Apps list. - ❌ Don't: Modify core Odoo model files directly — always use
_inherit. - ❌ Don't: Forget to add new models to
ir.model.access.csvor users will get access errors. - ❌ Don't: Use spaces or uppercase in folder names — Odoo requires snake_case module names.
Limitations
- Does not cover OWL JavaScript components or frontend widget development — use
@odoo-xml-views-builderfor view XML. - The manifest example targets Odoo 17; verify the exact version and supported module/view syntax. Older Odoo releases also use module manifests; do not infer a nonexistent manifest cutoff.
- Does not cover multi-company or multi-website configuration; those require additional model fields (
company_id,website_id). - Does not generate automated test files — use
@odoo-automated-testsfor that.
The displayed tree is a scaffold, not a complete installable module: supply imports, XML views, named groups, ACLs and record rules before claiming it works. Avoid default broad patient-data access; chatter/tracking can disclose sensitive values, so select fields and followers deliberately. Test installation, multi-record compute/constraints and unauthorized access in a disposable database, never through an unrequested production module upgrade.
FAQ
What is an Odoo module?
A module is a code package that adds functionality to the Odoo system, such as sales, inventory, accounting management, etc.
What is the __manifest__.py file?
It's an essential configuration file for any Odoo module. It contains information like the module's name, version, dependencies, and which data files it uses.
What does 'model inheritance' mean?
It's a technique to extend or modify the functionality of an existing model (data table) in Odoo without altering the original code. You can add new fields, methods, or rules.
Details
Original description by the author
Expert guide for creating custom Odoo modules. Covers __manifest__.py, model inheritance, ORM patterns, and module structure best practices.
Popularity
- GitHub stars
- 48k
- Ranking position
- #3730
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
api-connector-builder
Has your agent build new API connections following the existing pattern. Use when you need to add one more integration without creating a new way of doing things.
affaan-m/ECC
api-design
Helps your agent design REST APIs following best practices. It's useful for defining how APIs communicate, how errors are shown, and how to organize data.
affaan-m/ECC
backend-patterns
Helps your agent with server-side architecture patterns and database optimization. It's useful for building or reviewing code that runs on the server.
affaan-m/ECC