19prince/claude-odoo-builder/new-odoo-project
Claude Code and agent skill by 19prince/claude-odoo-builder
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install 19prince/claude-odoo-builder/new-odoo-projectSKILL.md
Skill: new-odoo-project
TRIGGER: User invokes /new-odoo-project to scaffold a new Odoo website builder project.
Objective
Scaffold a new Odoo website builder project directory, copy all bundled tools and workflows from the skill's templates/ directory, create a configured .env template, and orient the user for their first session.
Prerequisites
Before running this skill, ensure the following are in place:
- Python 3.8+ installed and available as
python3 - Python packages — install from the bundled requirements file:
``bash pip install -r {skill_dir}/templates/requirements.txt ` This installs requests and python-dotenv`, the only third-party dependencies.
- An Odoo instance with admin or API access (URL, database name, and login email)
- Claude Code — this skill is designed for Claude Code's skill system
Step 1 — Gather technical information (ask all at once)
Ask the user for the following in a single message. Do not proceed until you have answers:
- Project parent directory — the folder where the project subdirectory should be created (e.g.
~/projectsor~/Odoo) - Client / project name — used for folder naming and memory. The project will be created at
{parent_dir}/{slugified-client-name}/(e.g.~/Odoo/client-acme/) - Odoo URL — e.g.
https://mysite.odoo.com - Odoo DB name — e.g.
mysite-main-12345 - Odoo login email
- Is this a production-only server, or is there a separate staging instance?
- If staging + production: collect both URLs and DB names (but NOT passwords)
- If production only: note that changes go live immediately — extra caution required
- GitHub repo linked to the Odoo.sh project — e.g.
https://github.com/org/repo. This is the repository Odoo.sh watches for deployments. Custom modules are added here as submodules. If the project is not hosted on Odoo.sh, answer "N/A".
Do NOT ask for any passwords. Tell the user: "I'll leave the password fields blank in .env — fill those in yourself before running any tools."
Do NOT ask about brand, fonts, or design yet — those come after the project is set up.
Step 2 — Create the project directory
Derive {project_dir} by slugifying the client name (lowercase, replace spaces with hyphens) and appending it to the parent directory: {parent_dir}/{slugified-client-name}.
For example, if parent is ~/Odoo and client name is "Demo Video", then {project_dir} = ~/Odoo/demo-video.
Step 3 — Copy tools from skill templates
Copy all .py files from the skill's bundled templates. The skill's base directory is provided when invoked — use it to locate templates/tools/:
The migrate_to_production.py template ships pre-cleaned with empty META_UPDATES, CSS_VIEW_KEYS, and PAGE_URLS lists, and a clean main() with commented examples. No post-copy cleanup is needed.
Step 4 — Copy workflows from skill templates
Workflows are generic and apply to any Odoo project without modification.
Step 4b — Create .gitignore
Write .gitignore to the project root to prevent committing secrets and temporary files:
Step 5 — Create .env
Write .env to the project root. Leave all password fields blank.
For a staging + production setup:
For a production-only setup:
Step 6 — Create CLAUDE.md
Write CLAUDE.md to the project root using this template:
Step 7 — Verify setup
Run a connection test:
⚠️ Odoo Online SaaS quirk:search_readonwebsiteandwebsite.pagemay return empty even when records exist. If you see "0 pages found" on a site that has pages, this is expected — see the note on homepage routing below.
If authentication error: remind the user to fill in ODOO_PASSWORD in .env.
If connection error: ask the user to double-check ODOO_URL and ODOO_DB.
Homepage routing on Odoo Online: The page at / is not a normal website.page record. It is rendered by ir.ui.view key website.homepage (typically ID 585 or similar). To update the homepage, write directly to that view — do NOT use push_page.py --create --url /, which creates a duplicate unpublished page that is never served. To find the right view ID: c._execute_kw('website.page', 'search_read', [[['url','=','/']]], {'fields':['id','name','view_id','is_published']}).
Step 8 — Verify the WYSIWYG editor and snippet blocks
This step must be done by the user in a browser. Instruct them to:
- Log into the Odoo backend and open the website editor on any page (click Edit in the top bar)
- Look at the right-hand Blocks panel — confirm snippet thumbnails load with no orange ! warning icons
- Drag any block (e.g. a Text block) onto the page — confirm it drops and renders without errors
- Click an existing text element — confirm the formatting toolbar appears
- Click an existing image — confirm the image toolbar appears
If snippet blocks show orange ! icons (all or most of them):
Root cause: No theme is linked to the website (theme_id = False). This causes Odoo's snippet rendering to fail.
Fix — install and link `theme_clean`:
After running, ask the user to hard-refresh the editor page (Cmd+Shift+R) and confirm the orange icons are gone.
Important: After installing theme_clean, re-push any existing custom_code_head CSS — the theme installation may reset the field.
If the editor toolbar appears but JS errors occur in the console, check custom_code_head for any <script> tags — JS in custom_code_head breaks the editor widget panel. Remove all <script> blocks and use CSS-only approaches instead.
Step 9 — Gather branding information
Now that the project is set up and connected, ask the user for branding details in a single message:
- Brand colors — primary, secondary, background (or "TBD")
- Brand fonts — or "TBD"
- Design direction — e.g. dark theme, light theme, minimal, bold (or "TBD")
- Logo — do they have a logo file, or is it text-only? (or "TBD")
Once answered (even if all "TBD"), update CLAUDE.md with the values:
- Replace
{brand_colors},{brand_fonts},{design_direction}placeholders with the actual answers
Step 10 — Save to memory
Create a memory file for this project. Determine the memory path from the project directory path by converting it to the Claude project slug format (replace / with -, strip leading -).
Memory file location: ~/.claude/projects/{slugified_project_dir}/memory/MEMORY.md
Include:
- Client name and project directory
- Odoo URL and DB
- Brand colors, fonts, and design direction (even if TBD)
- Logo notes if provided
- Production URL and DB if provided
- Note if production-only (no staging)
Step 11 — Output summary
Print a clean summary:
Notes
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/new-odoo-project/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/19prince/claude-odoo-builder/new-odoo-project)