oxo-call — Model-intelligent orchestration for CLI bioinformatics
Description: Describe your bioinformatics task in plain language. oxo-call fetches tool documentation, grounds it with a built-in skill, and asks your LLM backend to generate the exact flags you need.

🦀 Rust 2024 🧬 Bioinformatics 🤖 LLM-powered ⚡ WebAssembly

# Model-intelligent
orchestration for
CLI bioinformatics

Describe your task in plain language — oxo-call fetches the tool's documentation, grounds the request with a built-in skill, and asks your LLM backend to generate the exact flags you need.

Get started Documentation Try the demo GitHub →
bash — oxo-call
$

// architecture
💬
Natural Language
Describe your task
📚
Docs Layer
--help · cache · remote URL · local files
🎯
Skill System
built-in → community → user
🤖
LLM Backend
Copilot · OpenAI · Ollama
⚙️
Command
run · dry-run · --ask

// features

## Everything you need to stop
remembering flags

oxo-call wraps the full command-generation workflow — from fetching live documentation to grounding the LLM with expert skills — into a single two-word command.

🧠

### LLM-powered parameter generation

Describe what you want in plain English. The model generates the right flags, grounded in the actual tool documentation.

📚

### Automatic documentation fetching

Grabs `--help` output and optionally fetches remote docs or man pages. Works even if the tool isn't installed locally.

🔍

### Dry-run mode

Preview the exact command that would be executed before committing. Never accidentally overwrite files again.

🎯

### Built-in skill system

Expert knowledge for 100+ bioinformatics tools baked in as `.toml` skill files — concepts, pitfalls, and worked examples.

🔗

### Native workflow engine

Run `.oxo.toml` pipelines natively — DAG parallelism, wildcard expansion, output caching. Export to Snakemake or Nextflow for HPC compatibility.

🔧

### Flexible LLM backends

GitHub Copilot (default), OpenAI, Anthropic, or a local Ollama instance — switch with one config key.

📜

### Command history

Every run is logged as JSONL with exit code, timestamp, and generated command. Filter by tool for quick lookup.

🗂️

### Auto documentation cache

Tool help is fetched and cached automatically on first use. Enrich with remote URLs, local files, or directories via `oxo-call docs add`.

⚡

### WebAssembly / WASI

Ships a `wasm32-wasip1` binary for portable execution in WASI runtimes like Wasmtime without native installation.

// interactive demo

## See it in action

Click an example to watch oxo-call ground the task in documentation, load the matching skill, and produce the exact command arguments.

JS simulation · powered by the same prompt logic as the WASI binary
oxo-call dry-run

// built-in skills

## Expert knowledge for 100+ tools

Each built-in skill encodes domain-specific concepts, common pitfalls, and worked examples so the LLM is guided beyond a raw `--help` dump.

samtools
SAM/BAM/CRAM manipulation
bwa
Burrows-Wheeler short-read aligner
bcftools
VCF/BCF variant calling & filtering
bedtools
Genomic interval arithmetic
gatk
Genome Analysis Toolkit
minimap2
Long-read / splice-aware aligner
fastp
Adapter trimming & QC
bowtie2
Fast short-read aligner
seqkit
FASTA/Q toolkit
star
RNA-seq spliced aligner

// workflow engine

## Native Rust pipeline execution —
Snakemake & Nextflow as export formats

`oxo-call workflow` runs bioinformatics pipelines directly with a lightweight built-in engine. No Snakemake, Nextflow, or Conda needed. Export to either format for HPC environments that require them.

⚙️

### Native Rust engine

Run `.oxo.toml` workflows directly — no Snakemake or Nextflow required. DAG-based parallelism, wildcard expansion, output caching.

🔬

### RNA-seq

fastp QC → STAR alignment → featureCounts quantification → MultiQC report. Run natively or export to Snakemake/Nextflow DSL2.

🧬

### Whole-Genome Sequencing

fastp → BWA-MEM2 → GATK MarkDuplicates → BQSR → HaplotypeCaller GVCF. GATK best-practices out of the box.

🔓

### ATAC-seq

fastp → Bowtie2 → Picard deduplication → blacklist filtering → MACS3 peak calling. Ready for downstream footprinting.

🌍

### Shotgun Metagenomics

fastp → host read removal (Bowtie2) → Kraken2 classification → Bracken species abundance estimation.

✨

### LLM-generated custom workflows

Describe any pipeline in plain language and get a complete, runnable `.oxo.toml`. One prompt → one deployable workflow.

🔄

### Snakemake & Nextflow export

Every template can be exported with `workflow export --to snakemake` or `--to nextflow` for HPC environments.

// workflow commands

    # List all built-in templates
    $ oxo-call workflow list

    # Preview the RNA-seq pipeline (no execution)
    $ oxo-call workflow dry-run rnaseq

    # Run a workflow (native engine — no Snakemake/Nextflow needed)
    $ oxo-call workflow run my_rnaseq.toml

    # Export to Snakemake for HPC submission
    $ oxo-call workflow export wgs.toml --to snakemake -o Snakefile

    # Generate a custom ChIP-seq workflow with LLM
    $ oxo-call workflow generate \
        "ChIP-seq H3K27ac: QC → Bowtie2 → MACS3 peaks vs input control" \
        -o chipseq.toml

// install

## Get started in 60 seconds

Install from crates.io (recommended)

    # Install the latest release from crates.io
    cargo install oxo-call

Install from GitHub Releases (pre-built binaries)

    # Download pre-built binary (Linux x86_64 example)
    curl -LO https://github.com/Traitome/oxo-call/releases/latest/download/oxo-call-VERSION-x86_64-unknown-linux-gnu.tar.gz
    tar xzf oxo-call-*-x86_64-unknown-linux-gnu.tar.gz
    sudo mv oxo-call /usr/local/bin/

    # Available for: Linux (x86_64/aarch64), macOS (Intel/Apple Silicon), Windows, WASM

Install from source (git clone)

    # Clone and build from source (latest development version)
    git clone https://github.com/Traitome/oxo-call
    cd oxo-call
    cargo install --path .

Configure your LLM token

    # GitHub Copilot (default — free for Copilot subscribers)
    oxo-call config set llm.api_token YOUR_GITHUB_TOKEN

    # OpenAI
    oxo-call config set llm.provider openai
    oxo-call config set llm.api_token sk-...

    # Local Ollama (no token needed)
    oxo-call config set llm.provider ollama
    oxo-call config set llm.model llama3.2

Your first command

    # Preview — no execution
    oxo-call dry-run samtools "sort input.bam by coordinate and output to sorted.bam"

    # Execute immediately
    oxo-call run bwa "align reads.fastq to reference.fa using 8 threads, output SAM"

    # Confirm before running
    oxo-call run --ask bcftools "call variants from my.bam against ref.fa"

WASI binary (requires wasmtime)

    # Download the .wasm binary from the GitHub Releases page, then:
    wasmtime oxo-call.wasm -- dry-run samtools "sort input.bam by coordinate"

Public academic test license (test use only)

    # Public academic test license — publish for testing only
    {
      "schema": "oxo-call-license-v1",
      "license_id": "6548e181-e352-402a-ab72-4da51f49e7b5",
      "issued_to_org": "Public Academic Test License (any academic user)",
      "license_type": "academic",
      "scope": "org",
      "perpetual": true,
      "issued_at": "2026-03-12",
      "signature": "duKJcISYPdyZkw1PbyVil5zTjvLhAYsmbzRpH0n6eRYJET90p1b0rYiHO0cJ7IGR6NLEJWqkY1wBXUkfvUvECw=="
    }

    # Save it locally (Linux)
    mkdir -p ~/.config/oxo-call && cp docs/public-academic-test-license.oxo.json ~/.config/oxo-call/license.oxo.json

    # Save it locally (macOS)
    mkdir -p ~/Library/Application\ Support/io.traitome.oxo-call && cp docs/public-academic-test-license.oxo.json ~/Library/Application\ Support/io.traitome.oxo-call/license.oxo.json

Test use only. This public academic license is published for evaluation and testing. Academic users should still apply for a formal academic license for real use. Commercial users should contact the maintainer, pay the USD 200 authorization fee, and obtain a formal commercial license.

// benchmarks

## Reproducible omics evaluation —
rigorous, open, and data-driven

All results below are generated by `oxo-bench`, the standalone benchmarking crate included in this repository. Every table is backed by a static CSV file in `docs/` — re-run `cargo run -p oxo-bench -- export-csv` to refresh with your own hardware timings.

Workflow | Tasks (expanded) | Parse (µs) | Expand (µs) | Cycle-free?
--- | --- | --- | --- | ---
Loading bench_workflow.csv…

Parse and expand timings are averaged over 500 runs on a single-core. Source: `docs/bench_workflow.csv` · generated by `cargo run -p oxo-bench -- export-csv`

Scenario ID | Assay | Samples | Read length (bp) | Reads / sample | Error rate | Total reads
--- | --- | --- | --- | --- | --- | ---
Loading bench_scenarios.csv…

All reads are generated deterministically with a fixed seed — re-running `oxo-bench simulate` always produces byte-identical FASTQ files. Source: `docs/bench_scenarios.csv`

Category | Tool | Task description | Required patterns
--- | --- | --- | ---
Loading bench_eval_tasks.csv…

These 12 tasks form the canonical evaluation suite used to measure model accuracy, format-validity rate, and self-consistency. Run `oxo-bench eval-models --list` to explore the full suite. Source: `docs/bench_eval_tasks.csv`