Skip to main content

Structured command runner — a clean alternative to make

Project description

Ordo

A structured command runner — a clean alternative to make.

Ordo reads an ordo.yaml config, groups your commands logically, and runs them with a simple group:command syntax. No more flat Makefiles. No more guessing what commands exist.


Why not make?

make Ordo
Grouped commands
Built-in discovery
Per-command descriptions
Readable config Makefiles YAML
Typo suggestions

Installation

pip install ordo-cli
# or
pipx install ordo-cli

Quick start

Create an ordo.yaml at your project root:

groups:
  dev:
    description: Local development
    commands:
      start:
        description: Start the API server
        run: "uvicorn app.main:app --reload"
      reset:
        description: Reset local database
        run: "python scripts/reset_db.py"

  test:
    description: Test suite
    commands:
      run:
        description: Run all tests
        run: "pytest"
      watch:
        description: Run tests in watch mode
        run: "pytest --watch"

Then:

ordo list          # see all commands
ordo dev:start     # run one
ordo validate      # check your config

CLI reference

ordo list                     List all commands
ordo list --verbose           Also show raw run strings
ordo <group:command>          Execute a command
ordo validate                 Validate ordo.yaml
ordo --version                Print version
ordo --help                   Print help

ordo.yaml reference

groups:
  <group-name>:
    description: string        # optional — shown in ordo list
    commands:
      <command-name>:
        description: string    # optional — shown in ordo list
        run: string            # required — shell command to execute

Naming rules:

  • Group and command names: lowercase letters, numbers, hyphens only
  • No spaces
  • Names must be unique within their scope

All run strings execute via sh -c — pipes, redirects, &&, and env vars all work as expected.


Config discovery

Ordo finds ordo.yaml in this order:

  1. ORDO_CONFIG environment variable
  2. --config CLI flag
  3. ordo.yaml in current directory
  4. Walk up the directory tree until .git is found

You can run ordo from any subdirectory in your repo — it will find the config.


Error behaviour

  • All errors exit with code 1
  • Child process exit codes are forwarded exactly
  • Typos get a fuzzy suggestion: Did you mean: dev:start?
  • Ctrl+C cleanly stops the child process — no zombie processes

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ordo_cli-1.0.1.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ordo_cli-1.0.1-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file ordo_cli-1.0.1.tar.gz.

File metadata

  • Download URL: ordo_cli-1.0.1.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for ordo_cli-1.0.1.tar.gz
Algorithm Hash digest
SHA256 55711adbfe1bc6106421852a3f6d6070de954697cd3f81b1a787fc7cec0891e1
MD5 4722617325cbf5b825ee0102d717e7b3
BLAKE2b-256 9c2ba578ced69988f2ff490b76ae23b54621d6eb453aa27dfc9ec5b6ecfda9f4

See more details on using hashes here.

File details

Details for the file ordo_cli-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ordo_cli-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for ordo_cli-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 591ccf11a06c52cf066531911823081755afa2e1bb7ad2ee0e96d15a024be6aa
MD5 726b24e886ffc1188ae245d106ffc772
BLAKE2b-256 1852534bb45476e7dfc9d48f9f48e6bed05df9e2135416f711185e95b060d3cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page