Advanced Usage

Curo provides powerful options and flags to help you target, customize, and compose complex workflows:

Commands

Passing Arguments to Commands (-D)

Use -D (--args) to pass additional arguments to a component’s command. Note: Can only be used with one component at a time.

curo lint -D "--fix" frontend ui

This passes --fix to the lint command when running on the frontend ui component.

Running Top-Level (Global) Commands for a Component (-g, --global)

Use -g/--global to apply the top-level definition of a command to a specific component (even if that component has its own command).

curo --global lint frontend ui

This forces the top-level lint command (from the repo root) to run for frontend ui, instead of any lint command defined in that component’s own curo.toml.

Running Local Commands from a Component Directory (-l, --local)

If you’re inside a component’s folder, use -l to run its commands without typing the full path.

cd src/frontend/ui
curo -l start

This will run the start command for the frontend ui component.

Selecting the Environment (-e, --env)

You can specify which environment’s commands to run. The default is dev

curo -e cicd deploy

Runs the deploy command for the cicd environment (e.g., for CI/CD purposes).

Running Specific Test Types

If you have multiple test commands, you can specify which to run.

curo test unit backend server
curo test functional frontend ui

This will only run the specified type of tests (e.g., unit, functional) for that component. Without specifying the level of testing, the default is to run all defined levels.

Excluding Components (-x, --exclude)

Skip specific components or subcomponents.

curo build -x "frontend lib"

This will build everything except frontend lib.

Running a Command for All Components (-a, --all)

By default, top-level commands shadow component commands. Use -a to run the specified command for every component that defines it.

curo -a install

Runs install for every component with its own install command (not just the top-level).

General

You can use curo find [component] to help navigate through your project. The find command will produce an absolute path to the referenced component.

cd $(curo find frontend lib)
cd $(curo find /) # To go back to the project root

Info

You can view your project structure by running curo info. Add, -v or more vs to see more information.

curo info

public
├── shdx
│   ├── shdx
│   └── installer
├── pydx
├── shaddo
│   ├── cli
│   └── installer
├── curo
│   ├── cli
│   ├── installer
│   └── docs
├── nenya
├── ansible-runner
├── browser-plugins
│   ├── farc
│   ├── confluence
│   ├── gitlub
│   └── productivity
└── cicd-runtime
curo -vv info

public [A collection of open source tools and libraries.]
├── dev
│   ├── install
│   ├── format
│   ├── lint
│   └── generate
├── cicd
│   ├── install
├── shdx
│   ├── shdx
│   │   ├── dev
│   │   │   ├── build
│   │   │   └── generate
│   │   └── cicd
│   │       ├── build
│   │       └── publish
│   └── installer [0.87.0 - A convenient installer to pull a release version …]
│       ├── dev
│       │   ├── build
│       │   ├── generate
│       │   └── run
│       └── cicd
│           ├── build
│           └── publish
├── pydx [A collection of libraries for python that are hel…]
│   └── dev
│       └── test
│           └── unit
├── shaddo [0.5.2 - A cli tool to bundle shell and bash scripts into …]
│   ├── cli [0.5.2 - The actual cli tool]
│   │   ├── dev
│   │   │   ├── build
│   │   │   ├── generate
│   │   │   ├── test
│   │   │   │   └── functional
│   │   │   └── deploy
│   │   └── cicd
│   │       ├── build
│   │       └── publish
│   └── installer [0.5.2 - A convenient installer to pull a release bin of s…]
│       ├── dev
│       │   ├── build
│       │   ├── generate
│       │   └── run
│       └── cicd
│           ├── build
│           └── publish
├── curo [1.0.0 - A command line tool for building projects.]
│   ├── cli [1.0.0 - A command line tool for building projects.]
│   │   ├── dev
│   │   │   ├── build
│   │   │   ├── generate
│   │   │   ├── test
│   │   │   │   ├── unit
│   │   │   │   ├── integration
│   │   │   │   └── functional
│   │   │   └── deploy
│   │   └── cicd
│   │       ├── build
│   │       └── publish
│   ├── installer [1.0.0 - A convenient installer to pull a release bin of c…]
│   │   ├── dev
│   │   │   ├── build
│   │   │   ├── generate
│   │   │   └── run
│   │   └── cicd
│   │       ├── build
│   │       └── publish
│   └── docs [1.0.0 - The documentation website for CURO]
│       ├── dev
│       │   ├── build
│       │   └── run
│       └── cicd
│           ├── build
│           └── deploy
├── nenya [0.44.0 - A js library that enhances mithriljs.]
│   ├── dev
│   │   ├── install
│   │   ├── build
│   │   └── test
│   │       └── unit
│   └── cicd
│       └── build
├── ansible-runner [1.1.0 - A Dockerfile for an image that has a very easy in…]
│   ├── dev
│   │   ├── build
│   │   └── run
│   └── cicd
│       ├── build
│       └── publish
├── browser-plugins [Plugins for browsers, mostly Firefox.]
│   ├── farc [0.2.0 - A browser experience inspired by Arc.]
│   │   ├── dev
│   │   │   ├── build
│   │   │   └── test
│   │   │       └── unit
│   │   └── cicd
│   │       └── build
│   ├── confluence [2.1.0 - Make Confluence look nice.]
│   │   └── cicd
│   │       └── build
│   ├── gitlub [2.1.0 - Style Github and Gitlab readmes and code.]
│   │   └── cicd
│   │       └── build
│   └── productivity [1.2.1 - Removes some unproductive things from websites]
│       └── cicd
│           └── build
└── cicd-runtime [1.2.0 - The image used by the public cicd pipelines for b…]
    ├── dev
    │   ├── build
    │   └── run
    └── cicd
        ├── build
        └── publish