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

@tao-thewarat/odex

v0.1.0

Published

A TypeScript CLI for Odoo addon update workflows.

Readme

Odex

Odex is a TypeScript CLI for Odoo development workflows. The current version focuses on one practical job first: updating Odoo modules inside a Docker container with a shorter, repeatable command.

The idea is to start with something useful every day, then grow into a broader Odoo developer tool over time.

Goals

  • Shorten repetitive Odoo update commands
  • Standardize common update flags for local development
  • Make Docker-based Odoo updates easier to run and repeat
  • Keep the CLI scriptable and friendly to future expansion

Current Scope

Right now Odex ships with a single command:

  1. update

This keeps the project small while solving a real pain point first.

Why Odex

  • Short
  • Easy to remember
  • Sounds like a real developer tool
  • Fits the Odoo + CLI use case well
  • Professional enough to grow into a real product name

Tech Stack

Odex uses a small TypeScript stack that fits a lightweight CLI:

  • commander for commands and options
  • execa for running Docker commands
  • zod for validating input and options
  • tsx for running TypeScript during development without rebuilding every time
  • esbuild for bundling the CLI
  • javascript-obfuscator for producing a harder-to-read build output

Why Commander

For the first version, commander is a better fit than a larger framework like oclif because:

  • The main need is parsing arguments and flags
  • The tool primarily builds and runs Dockerized Odoo commands
  • The current scope is still small
  • It is faster to start with and easier to maintain

If Odex grows significantly later, with many commands or a real plugin system, moving to oclif can be considered then.

CLI Direction

Odex should prefer explicit flag-based commands instead of starting with interactive prompts so it is:

  • Easy to repeat
  • Easy to reuse in shell scripts
  • Easy to integrate into CI/CD workflows

Current command style:

odex update sale_management --db dev
odex update sale_management,stock --db dev
odex update sale_management --db dev --container odoo-web
odex update sale_management --db dev --dry-run

Installation

yarn install
yarn build
yarn link

If you use fish shell, make sure Yarn's global bin directory is on your PATH:

fish_add_path $HOME/.yarn/bin
source ~/.config/fish/config.fish

Then you can run:

odex --help

Available Command

update

Updates one or more Odoo modules inside a Docker container by running odoo -d <db> -u <modules>.

Default behavior:

  • Runs through docker exec -it
  • Uses container name odoo if --container is not provided
  • Includes --stop-after-init by default
  • Includes --no-http by default
  • Supports comma-separated module names
  • Supports --dry-run to preview the generated command

Examples:

odex update sale_management --db dev
odex update sale_management,stock --db dev
odex update sale_management --db dev --container odoo-web
odex update sale_management --db dev --dry-run
odex update sale_management --db dev --no-stop-after-init

Generated command example:

docker exec -it odoo odoo -d dev -u sale_management --stop-after-init --no-http

Development

yarn dev update sale_management --db dev --dry-run
yarn typecheck
yarn build

Build outputs:

  • dist/odex.js main runnable CLI build
  • dist/odex.obf.js obfuscated build output

Project Structure

src/
  main.ts
  commands/
    update.ts
  lib/
    run-odoo.ts

File responsibilities:

  • src/main.ts CLI entry point and command registration
  • src/commands/update.ts update command definition and option parsing
  • src/lib/run-odoo.ts Docker command building and execution logic

Roadmap

Near-term ideas:

  • scan
  • update changed
  • update all
  • odex docker-update <module> -d <db> -s <service>
  • odex update changed
  • odex logs grep RPC_ERROR
  • odex addon new <module_name>
  • odex validate manifest
  • odex xpath find "<expr>"

Summary

Odex is a TypeScript CLI for Odoo development, currently centered on a Docker-based update command. It keeps the first version small and practical, while leaving room to expand into a fuller Odoo developer workflow tool later.