oxo-flow init#
Initialize a new workflow project with a starter .oxoflow file, directory structure, and .gitignore.
Usage#
Arguments#
| Argument | Description |
|---|---|
<NAME> |
Project name (no path separators; also used as the default directory name) |
Options#
| Option | Short | Default | Description |
|---|---|---|---|
--dir |
-d |
./<NAME> |
Output directory (defaults to the project name) |
--verbose |
-v |
— | Enable verbose (debug-level) logging |
--quiet |
— | — | Suppress non-essential output (errors only) |
--no-color |
— | — | Disable colored output |
The global
--jsonflag is not supported by this command — passing it fails fast instead of being silently ignored. Machine-readable output is available from:run,dry-run,validate,lint,test,status,batch,info,schema,license,ai, andprovenance verify.
Examples#
Create a new project#
Create in a specific directory#
Output#
oxo-flow v0.23.2 — Rust-native bioinformatics pipeline engine
✓ Created new project at my-pipeline
my-pipeline/my-pipeline.oxoflow
my-pipeline/envs/example.yaml
my-pipeline/scripts/example.sh
my-pipeline/.gitignore
Next steps: To run your first workflow:
cd my-pipeline
oxo-flow run my-pipeline.oxoflow
All output (including the version banner) goes to stderr; the banner appears
only on an interactive terminal and is suppressed by --quiet.
Generated files#
<name>.oxoflow — Starter workflow file:
[workflow]
name = "my-pipeline"
version = "0.1.0"
description = "A new oxo-flow pipeline"
author = ""
[config]
# Variables defined here are used in shell commands as {config.key}
sample_name = "example"
greeting = "Hello from oxo-flow!"
[defaults]
threads = 1
memory = "1G"
[[rules]]
name = "hello_world"
description = "A minimal rule that writes a greeting"
output = ["results/{config.sample_name}_output.txt"]
# The greeting is passed via the environment, not spliced into the shell —
# an apostrophe or quote in the config value cannot break the command
# (`--arg greeting=...` overrides the default).
envvars = { GREETING = "{config.greeting}" }
shell = "echo \"$GREETING\" > {output[0]}"
envs/example.yaml — Starter conda environment specification.
scripts/example.sh — Starter helper script.
data/ — Pre-populated with an input.txt sample to allow immediate execution.
results/ — Empty directory created for workflow outputs.
.gitignore — Pre-configured with bioinformatics patterns (BAM, VCF, index files, workflow outputs).
Notes#
- The output directory is created if it does not exist
- If the directory already exists, oxo-flow prints a warning and files may be overwritten
- The generated
.gitignoreincludes common bioinformatics file types and oxo-flow internal directories