Boutiques¶
A Python toolkit for the Boutiques descriptor standard — a JSON format for describing command-line tools (inputs, outputs, container images, etc.) in a structured, language-agnostic way.
This repository hosts both:
- The specification — described in the Specification section, with machine-readable JSON Schema artifacts under Schema JSON.
- The
boshCLI — see the CLI reference.
Two schema versions are supported:
- 0.5 — the original Boutiques specification.
- 0.5+styx — a strict superset of 0.5 adding sub-command hierarchy,
sub-command alternation, and a couple of file-input attributes used by
the Styx ecosystem. Every valid 0.5
descriptor is also a valid 0.5+styx descriptor (only the
schema-versionfield changes).
Install¶
For development:
git clone https://github.com/childmindresearch/boutiques_next
cd boutiques_next
uv sync
uv run bosh --help
Quickstart¶
Validate a descriptor:
Generate a sample invocation:
See the command-line that would run, without running it:
Actually launch the tool (locally, in docker, or in singularity):
URLs work everywhere paths do — including GitHub blob links, which get auto-rewritten to raw:
bosh validate https://github.com/boutiques/boutiques/blob/master/boutiques/schema/examples/fsl_bet/fsl_bet.json
Status¶
Early development. The public Python API is not yet stable; the descriptor spec is. See the roadmap for what's shipped, what's intentionally dropped vs. classic boutiques, and what's open.