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
Navigation
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