Auto-Detected Projects
You don’t always have to write a runnables.yaml by hand. If a repository contains no runnables.yaml at all, Fileglancer looks for recognized project formats at the repository root and generates a manifest automatically. This means many existing Nextflow pipelines and Pixi projects work as Fileglancer apps with no extra files.
Nextflow Pipelines
Section titled “Nextflow Pipelines”If a directory contains a nextflow_schema.json (and no runnables.yaml), Fileglancer generates a manifest from the Nextflow schema. The generated app:
- Sets
requirementsto["nextflow"]. - Defines a single entry point named “Run pipeline” with the command
nextflow run repo -ansi-log falseandworking_dir: work, so it launches from the job’s work directory. Running there (rather than inside the project checkout) keeps Nextflow’s.nextflow.log,.nextflow/cache, andwork/directory in the per-job work directory instead of the checkout shared by jobs on the same app version.repois a symlink to the checkout, and the directory form lets Nextflow resolve the pipeline’s main script from itsmain.nfor manifest. - Derives the app name from the repository name (e.g.
rnaseqfornf-core/rnaseq), and takes the description from the schema’s top-leveldescription. - Converts each JSON Schema parameter into a Fileglancer parameter, preserving types, defaults, descriptions, required flags,
enumoptions, andhiddenstatus. Generated parameters use Nextflow-safe emission forms: values are joined with=(--input=/data) so a value starting with-stays attached to its parameter, and booleans are emitted explicitly as--flag=true/--flag=falseso unchecking a switch overrides a pipeline default of true. Path parameters only require existence when the schema property sets"exists": true, following the nf-schema convention. - Groups parameters into sections based on the schema’s
definitions/$defs, ordered by the schema’sallOflist. Section titles and descriptions come from each definition’stitle,description, andhelp_text. All sections start expanded. - Surfaces Nextflow-specific options on the launch form’s Environment tab:
- Profiles (
-profile) — comma-separated list of Nextflow profiles (e.g.standard,docker) - Extra Arguments — additional Nextflow CLI arguments (e.g.
-resume,-with-tower), appended to the end of the command without shell quoting
- Profiles (
The -profile flag is emitted before the pipeline parameters, and extra arguments are appended at the end, so the generated command is well-formed:
nextflow run repo -ansi-log false \ -profile standard,docker \ --input=/data/input \ --skip_qc=false \ -resumeThese Nextflow-safe forms are applied when the command is built, so they also fix apps that were added under older Fileglancer versions — no re-add needed (see Command Building).
Most nf-core and Nextflow pipelines that follow the standard schema convention work out of the box — just add the repo URL in Fileglancer.
Pixi Projects
Section titled “Pixi Projects”If a directory contains a pixi.toml, or a pyproject.toml with a [tool.pixi.tasks] table (and no runnables.yaml), Fileglancer generates a manifest from the Pixi configuration. Each Pixi task becomes its own runnable. The generated app:
- Sets
requirementsto["pixi"]. - Uses
pixi run <task_name>as the command for each runnable, with the task name as both theidand display name. - Takes each runnable’s description from the task’s
descriptionfield. - Converts task arguments (
args) into parameters: an arg withchoicesbecomes anenum, an arg with adefaultcarries it over, and an arg with neither is marked required. - Carries over each task’s
envvariables as the runnable’s default environment variables. They are exported in the generated job script and appear on the launch form’s Environment tab, where users can override them. - Prepends
export PATH="$HOME/.pixi/bin:$PATH"as apre_runstep so thepixibinary is on$PATH. - Derives the app name from the Pixi project metadata
name, falling back to the Git repository name, and takes the description from the project metadata. - Collects tasks from both the top-level task table and feature-specific task sections.
Tasks are skipped when they are:
- Hidden — the task name starts with an underscore (
_). - Dependency-only — the task has no
cmd(it only declaresdepends-on).
Example
Section titled “Example”Given this pixi.toml:
[project]name = "demo"description = "A small demo project"
[tasks.greet]cmd = "python greet.py"description = "Print a greeting"args = [ { arg = "message", default = "Hello" }, { arg = "style", choices = ["plain", "fancy"], default = "plain" },]Fileglancer generates an app with a single greet runnable that runs pixi run greet, offering a free-text message parameter and a style dropdown (plain / fancy).