recp: command-line pipelines defined in YAML
recp (short for recipe) runs processes made of multiple command-line steps. A recipe is a .yaml file that lists the steps to run. Each step can have tags, a description, environment variables, a working folder and one or more commands. Commands can be pre-processed with modifiers, so that a single command template is expanded into many commands, e.g. one per file in a folder or one per combination of parameter values.
A recipe can contain many steps, and a subset of them can be selected by name or tag. The --dry-run option prints the commands without running them, and a failed run can be resumed from a given step with --from. Commands of a step can run in parallel, and commands whose outputs already exist can be skipped, which is useful when processing large datasets.
While the commands of a parallel step run, recp shows a table with the status and last output line of each command. Their output is saved, so it can be read later or followed from another terminal:
recp run recipe.yaml --jobs 4 # run up to 4 commands at a time in parallel steps
recp status # status of the commands of the latest run
recp log 3 # output of command 3
recp follow 2 # stream the output of command 2 while it runs
Installation
recp is best installed as a uv tool:
uv tool install recp
It can also be installed with pip:
pip install recp
Quickstart
See the quickstart guide.
Documentation
The recp documentation is available online. You can also build and view it locally by running:
uv run --extra docs mkdocs serve
Cite
If recp contributed to your work, please consider citing it:
@misc{recp,
author = {Esteban Gómez},
title = {recp},
year = 2026,
url = {https://github.com/eagomez2/recp}
}
License
For further details about the license of this package, please see LICENSE.
Metadata
Release files for recp 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| recp-0.4.0.tar.gz | 38.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| recp-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 80.2 kB
Release files / recp-0.4.0.tar.gz
| Download URL | recp-0.4.0.tar.gz |
|---|---|
| Size | 38.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0445fe9a5f5f53d568e859e9602a16f5eceb800c07aec95deac7a85f588ee1c4
|
|
BLAKE2b-256 checksum How to use checksums |
63a515ce20e49eab9a0bf3f99b8b3324abc32be8c698049ed419d8619cb6e992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.5
|
Release files / recp-0.4.0-py3-none-any.whl
| Download URL | recp-0.4.0-py3-none-any.whl |
|---|---|
| Size | 41.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd418919c80d98ba8c4fcfb1cb6b14bb89a36c12de7cfdefa021acc20f631dea
|
|
BLAKE2b-256 checksum How to use checksums |
945946648972426cb2efd5cb323a913e786e5c9f25b8c66c9ea4b87139b16aea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-requests/2.32.5
|