Skip to content

MakerRepo CLI

CLI in development

The makerrepo-cli is still in active development. Command names, options, and behavior may change in future releases.

makerrepo-cli is a command-line tool that lets you do almost everything you could do with MakerRepo locally, without creating a MakerRepo.com account. Build models, collect artifacts, run generators, and run your full Manufacturing as Code workflow from your own machine.

What you can do with the CLI

The goal is to keep the whole workflow open-source. Even if one day you decide not to use MakerRepo.com anymore, you can still use makerrepo-cli to do the same things you did before. Your workflow is not locked to the platform. With makerrepo-cli you can:

  • Build your CAD models from code (e.g. Build123D).
  • Collect and work with artifacts and generators locally.
  • Run your full build and artifact workflow without depending on MakerRepo.com.

If you do use MakerRepo.com, you push your code and the platform’s CI builds and hosts artifacts for viewing and sharing. But the CLI is designed so that almost everything that matters can be done locally and open-source.

Installation and usage

You can get the makerrepo-cli command in any of these ways:

Method Command
uv (install globally) uv tool install makerrepo-cli
uv (add to project) uv add makerrepo-cli
uvx (run without installing) uvx makerrepo-cli or uvx mr

With uv tool install, the makerrepo-cli command is available on your PATH. With uv add, use uv run makerrepo-cli from the project directory (or ensure the project's virtualenv is activated). uvx fetches and runs the latest CLI on demand—no install required.

All commands below assume you run them from the repository root (where your Python packages/modules with @artifact and @customizable live). The CLI scans the current directory for artifacts and generators.

Usage

The CLI is available as either makerrepo-cli or the shorter alias mr. To see available commands and global options, run:

mr --help

Global options

Option Description
-l, --log-level Log level (e.g. DEBUG, INFO, WARNING). Default: from LOG_LEVEL env or INFO.
--build123d-log-level Log level for the build123d library. Default: from BUILD123D_LOG_LEVEL env or WARNING.
--log-format Logging format (used when rich log is disabled).
--disable-rich-log Use plain text logging instead of rich.
--version Show version and exit.

Shell completion

You can enable tab completion for bash, zsh, or fish:

# Add to your shell config (e.g. .bashrc, .zshrc, config.fish):
eval "$(mr completion bash)"   # bash
eval "$(mr completion zsh)"   # zsh
eval "$(mr completion fish)"  # fish

Artifacts (CLI)

Use mr artifacts ... to list, view, export, and snapshot artifacts discovered from the current repository. Artifacts come from @artifact-decorated functions in your Python packages and modules.

For details and examples, see the dedicated page:


Generators (CLI)

Use mr generators ... to list, view, export, and snapshot generator output using JSON payloads. Generators come from @customizable-decorated functions in your code.

For details and examples, see the dedicated page:


Reference

  • Source: LaunchPlatform/makerrepo-cli
  • Artifacts are collected from the repo via @artifact-decorated functions; generators from @customizable-decorated functions. Both are discovered by scanning Python packages and modules under the current working directory.