DesktopConfiguration

Configuration

BioNodulo is configured with a bionodulo.yaml file. To get started, copy the bundled example and edit it for your environment:

cp bionodulo.yaml.example bionodulo.yaml

The config file is looked up in this order: the path in BIONODULO_CONFIG, then bionodulo.yaml, bionodulo.yml, or bionodulo.json in the project root. The project root itself defaults to the current working directory and can be overridden with BIONODULO_ROOT. Relative paths in the config are resolved against the project root.

Full reference

# Directories
project_root: ./bionodulo_workspace
runs_dir: ./runs
cache_dir: ./cache
custom_nodes_dir: ./custom_nodes
data_roots: ["./data"]
 
# External tool paths (leave empty to use PATH)
tool_paths:
  bwa: /usr/bin/bwa
  samtools: /usr/bin/samtools
  fastqc: /usr/bin/fastqc
  # ...any tool name → absolute path
 
# Conda/Mamba configuration
conda:
  executable: micromamba  # conda, mamba, or micromamba
  channels: [bioconda, conda-forge]
 
# Container configuration
containers:
  default_runtime: apptainer  # docker or apptainer
  default_image: null
 
# HPC configuration
hpc:
  enabled: false
  backend: slurm  # slurm, pbs, sge
  partition: normal
  account: null
  walltime: "01:00:00"
  cpus_per_task: 4
  mem_per_cpu: "4G"
  modules: []
  extra_args: ""
 
# API server configuration
api:
  host: "127.0.0.1"
  port: 8000
 
# LLM configuration (AI assistant and AI-powered nodes)
llm:
  provider: openai
  model: gpt-4.1-mini
  base_url: ""
  api_key: ""
  temperature: 0.2
 
# Execution settings
execution:
  stop_on_error: true
  max_parallel_jobs: 4
 
# Secrets passed to nodes/workflows as named credentials
api_secrets: {}

Section by section

Directories

KeyDefaultDescription
project_rootcurrent working directoryBase directory; all other relative paths resolve against it
runs_dirrunsWhere run outputs and logs are stored
cache_dircacheCached node results used by checkpointing/resumption
custom_nodes_dircustom_nodesWhere custom nodes are discovered
data_roots[]Directories for reference data and shared inputs

All of these directories are created automatically on startup if missing.

tool_paths

Explicit absolute paths to tool executables. Tools listed here are used instead of whatever is found on PATH — useful when you have multiple versions installed. Leave a tool unlisted to fall back to PATH.

conda

KeyDefaultDescription
executablemicromambaConda-compatible executable: conda, mamba, or micromamba
channels[bioconda, conda-forge]Channels used when resolving packages

See Managing Environments for how per-workflow environments are built.

containers

KeyDefaultDescription
default_runtimeapptainerContainer runtime: docker or apptainer
default_imagenullFallback image for nodes that don’t declare one

hpc

KeyDefaultDescription
enabledfalseSubmit runs to a scheduler instead of running locally
backendslurmslurm, pbs, or sge
partitionnormalPartition (SLURM) / queue (PBS, SGE)
accountnullAccount or project to charge
walltime01:00:00Default maximum job wall time
cpus_per_task4CPU cores requested per job
mem_per_cpu4GMemory request per CPU
modules[]Environment modules to load in the job script
extra_args""Extra scheduler arguments appended at submit time

The same settings are editable in the app’s HPC panel (Ctrl+5); see HPC Mode.

api

KeyDefaultDescription
host127.0.0.1Interface the local API server binds to
port8000Port the local API server listens on

The server also honors the BIONODULO_HOST and BIONODULO_PORT environment variables (and matching CLI flags), defaulting to 127.0.0.1:8000.

llm

KeyDefaultDescription
provideropenaiLLM provider (openai, anthropic, openrouter, litellm, …)
modelgpt-4.1-miniModel name
base_url""Custom endpoint URL (e.g. a LiteLLM proxy)
api_key""API key; prefer environment variables or api_secrets over committing keys
temperature0.2Sampling temperature

At runtime the provider’s API key can also come from the standard environment variables (OPENAI_API_KEY, ANTHROPIC_API_KEY, OPENROUTER_API_KEY, BIONODULO_LLM_API_KEY, or LITELLM_API_KEY), and the endpoint from BIONODULO_LLM_BASE_URL.

execution

KeyDefaultDescription
stop_on_errortrueStop the run at the first failed node (otherwise independent branches continue)
max_parallel_jobs4How many nodes may execute concurrently

The core engine’s own execution settings — loaded from the same execution: block or from environment overrides — are: max_workers (default 4), cache_enabled (true), cache_ttl_seconds (86400), env_isolation (auto), timeout_seconds (3600), content_hashing (fast, strong, or off), and on_interrupt (manual or auto_resume — whether runs interrupted by a restart are resubmitted automatically).

api_secrets

A name → value map of secrets (API tokens, credentials) made available to workflows. Values from api_secrets are redacted whenever BioNodulo prints or dumps its effective configuration. Don’t commit real secrets to a shared repository — prefer environment variable overrides (below).

Environment variable overrides

Any setting can be overridden with a BIONODULO_-prefixed environment variable. Nested keys use a double underscore:

export BIONODULO_EXECUTION__MAX_WORKERS=8
export BIONODULO_CACHE_DIR=/fast/disk/cache

Values are parsed as booleans (true/false/yes/no/1/0), integers, floats, or JSON (for lists/objects) when they look like those types, and as plain strings otherwise.

VariableDescription
BIONODULO_CONFIGPath to the config file to load
BIONODULO_ROOTProject root directory
BIONODULO_ENV_ISOLATION0/false disables per-workflow environment isolation by default
BIONODULO_HOST / BIONODULO_PORTAPI server bind address and port

Production integration variables

These optional variables wire BioNodulo into external infrastructure. They’re relevant to self-hosted and team deployments rather than single-user desktop use.

VariableDescription
BIONODULO_REDIS_URLRedis instance used for collaboration pub/sub and the distributed run queue
BIONODULO_RATE_LIMIT_REDIS_URLRedis-backed storage for API rate limiting; falls back to BIONODULO_REDIS_URL, then to in-memory
BIONODULO_OIDC_ISSUEROIDC issuer URL for collaboration authentication (e.g. https://clerk.<your-domain>)
BIONODULO_OIDC_AUDIENCEExpected aud claim of collaboration tokens
BIONODULO_OIDC_JWKS_URLJWKS endpoint for verifying token signatures, typically <issuer>/.well-known/jwks.json
BIONODULO_LITELLM_BASE_URLBase URL of a LiteLLM proxy for AI features (default http://localhost:4000/v1 when the litellm provider is used)
LITELLM_API_KEYAPI key for the LiteLLM proxy

Next