npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pi-odoo-workflow

v1.12.1

Published

Odoo 18/19 module development for pi and Claude Code — auto-detects your modules, finds XML IDs, and scaffolds models, views, wizards, reports, controllers, OWL components, tests and migrations with 15 /odoo-* slash commands. Includes TypeScript extension

Readme

pi-odoo-workflow

Odoo 18/19 development workflow for pi coding agent — stops you from repeating the same Odoo context on every message. The skill tells Claude how to behave automatically: what to check, what to generate, and what to never skip.

pi-odoo-workflow preview

Works with

| Feature | pi | Claude Code | |---|---|---| | Skill automatic behaviors | ✅ | ✅ | | Reference guides (v18-changes.md, etc.) | ✅ | ✅ | | /odoo-* prompt templates | ✅ Native slash commands | ⚠️ Paste content manually | | odoo_scan tool (auto-detects modules) | ✅ Auto-injected | ❌ Not available | | odoo_find_xmlid tool | ✅ Auto-injected | ❌ Not available | | Module context in system prompt | ✅ Automatic | ❌ Not available |

pi: full experience. Claude Code: skill + reference guides only (via npx skills add).


Quickstart

# 1. Install
pi install npm:pi-odoo-workflow

# 2. Open pi inside your Odoo project
cd my-odoo-addons/
pi

# 3. Start planning a feature
/odoo-plan "add priority field to hospital appointments"

# Or scaffold a new module from scratch
/odoo-module my_module

The skill activates automatically. On your first message, Claude will ask for the Odoo version (18 or 19) and the UI language — then remembers both for the session.


What it does

🧠 Skill: workflow-odoo

Loaded automatically when working on Odoo code. Claude will — without being asked:

  • Ask for version once (18 or 19) and remember it for the session
  • Check module structure before and after every change
  • Write tests for every new method or feature
  • Update tests when modifying existing code
  • Check translations — all user-visible strings use _()
  • Explain decisions before writing code, naming alternatives
  • Suggest better patterns when they exist

Reference guides included: | File | Content | |------|---------| | module-structure.md | OCA-compatible directory layout, naming conventions | | v18-changes.md | v17 → v18 breaking changes with before/after code | | v19-changes.md | v18 → v19 breaking changes with before/after code | | testing-patterns.md | @tagged, setUpClass, wizard tests, exception tests | | translations.md | _() usage, .pot generation, common mistakes | | owl-patterns.md | patch(), custom field widgets, services, asset declaration |

⚡ Prompt Templates

Type /command in pi to expand into full instructions:

| Command | What it generates | |---------|------------------| | /odoo-module <name> | Complete module scaffold: dirs, manifest, __init__.py, security CSV, i18n, tests | | /odoo-model <model.name> | Full model: Python + form/list views + security + tests + manifest update | | /odoo-wizard <name> | TransientModel wizard: Python + dialog view + trigger button + tests | | /odoo-report <name> | QWeb PDF report: action + template + paper format + Print menu binding | | /odoo-inherit <view_xml_id> | View inheritance with correct XPath for 9 change types (form, list columns, attributes, header, notebook, hide, group, replace) | | /odoo-cron <name> | Scheduled action: Python method + ir.cron XML + manifest update | | /odoo-test | Scans existing code and generates/updates tests for uncovered methods | | /odoo-review | Pre-commit audit — static analysis: structure, APIs, translations, tests, security — use before every commit ✅/⚠️/❌ | | /odoo-migrate | Migrates module between versions (v17→v18 or v18→v19) | | /odoo-db-migrate <change> | Generates migrations/pre-migration.py and post-migration.py for schema changes (field rename, type change, model merge, XML ID rename) | | /odoo-plan <feature> | Plans a complex feature through structured phases: explore → propose → spec → design → tasks. Use before /odoo-model or /odoo-wizard for large work | | /odoo-qa | Post-spec validation — validates implementation against a spec or plan, requires test evidence, issues APPROVED/REJECTED/PENDING verdict — use when a feature is "done" | | /odoo-debug [error] | Diagnoses tracebacks, access errors, view failures, cron issues, missing XML IDs — guides to root cause with concrete fix steps | | /odoo-controller <name> | HTTP controller with @route endpoints — backend, portal, JSON-RPC, or external API — with security checklist and HttpCase tests | | /odoo-owl <name> | OWL 2 component — field widget, standalone component, or service — with asset declaration and optional tour test |

🔌 Extensions (pi only)

Two TypeScript extensions that run automatically when you open pi in a directory with Odoo modules — no commands needed:

🐍 Odoo Context Injector (odoo-context.ts)

  1. Detects all __manifest__.py files
  2. Extracts module name, version, dependencies, models, inherited models, and view XML IDs
  3. Notifies you: "🐍 Odoo: my_module (v19.0.1.0.0)"
  4. Injects that context into Claude's system prompt automatically

Claude then knows exactly which models exist, which views can be inherited, and which XML IDs are available — without you having to explain anything.

Tool available to Claude: odoo_scan — returns the full module structure on demand.

🔍 Odoo XML-ID Finder (odoo-xmlid.ts)

Tool available to Claude: odoo_find_xmlid — finds the exact XML ID for any view, action, or record.

Searches in order:

  1. Local Odoo source (if found at ~/odoo, ~/src/odoo, etc.) — instant grep
  2. GitHub API (odoo/odoo repository) — fallback with direct raw file links

Install

pi (full experience)

All features: skill + prompt templates + extensions + auto-injected context.

# From npm
pi install npm:pi-odoo-workflow

# From GitHub
pi install git:github.com/EdgarNaranjo/agent-skills

# Try without installing (-e loads the package for this session only, no persistent install)
pi -e git:github.com/EdgarNaranjo/agent-skills

Claude Code (skill only)

The skill works in Claude Code via the Agent Skills standard. You get the automatic behaviors and all reference guides. You do not get the /odoo-* slash commands (pi-specific syntax) or the odoo_scan / odoo_find_xmlid tools (pi extensions).

npx skills add EdgarNaranjo/agent-skills -g -y

What makes this different

Every other Odoo skill for AI agents is a reference — it tells Claude how Odoo works. This skill tells Claude how to behave: what to do automatically, what to check, what to generate, and why.

The prompt templates are unique — no other Odoo skill package has /slash commands.


Works well alongside


FAQ

Q: When do I use /odoo-review vs /odoo-qa? /odoo-review is a pre-commit static audit — run it any time to catch code issues (wrong patterns, missing tests, security gaps). /odoo-qa is a post-feature gate — run it when you think a feature is complete, provide your test output, and get a formal APPROVED/REJECTED verdict against a spec.

Q: Does this work without Odoo source code installed locally? Yes. The odoo_find_xmlid tool falls back to the GitHub API when local source isn't found. Only the odoo_scan extension requires a local Odoo module directory.

Q: Can I use this with Claude Code instead of pi? Yes, but only the skill and reference guides work. The /odoo-* slash commands and the auto-context injection (odoo_scan, odoo_find_xmlid) are pi-only. See the "Works with" table at the top.

Q: The skill keeps asking me the Odoo version. How do I stop it? Answer once at the start of the session. The skill remembers it. If using prompts like /odoo-model directly, include the version in your first message: "v19, add model hospital.appointment".

Q: How do I migrate an existing module from v18 to v19?

  1. Run /odoo-migrate — migrates the code (APIs, XML tags, Python patterns)
  2. Run /odoo-db-migrate for each schema change (renamed fields, model renames)
  3. Run /odoo-test to check test coverage
  4. Run /odoo-qa with your migration plan as the spec

License

LGPL-3.0-or-later — same license as Odoo Community modules.


Links