Skip to main content
Cirax

PyPI Platform No network MIT License CI

The universal converter for people who read the privacy policy.
Don't upload. Convert.

Cirax convert page

The convert page: drop files, and the target list is built from what they actually are — each entry shows the engine chain and its loss tag.


Cirax turns your Linux machine into a conversion hub. One command reaches every format — not because Cirax reimplements codecs, but because it routes between the best engines ever written (FFmpeg, libvips, ImageMagick, LibreOffice, Pandoc, Calibre, 7-Zip, qpdf…) and chains them automatically. Files never leave your disk. Ever.

The Problem

  1. Every online converter is a data breach waiting to happen. Your contracts, IDs, medical scans and family photos, uploaded to an anonymous ad-riddled server.
  2. Local tools are islands. ffmpeg alone has a 40-page manual; LibreOffice won't talk to ImageMagick; your HEIC stays HEIC.
  3. Format-pair explosions. 109 formats × 109 formats = 11,881 possible converters. Nobody writes those.

The Product

$ # what used to require three websites and a leap of faith:
$ cirax convert report.docx preview.png
● converting report.docx: application/vnd...document → image/png
  (libreoffice → pdftoppm, lossy)

$ # speech to subtitles, offline:
$ cirax convert talk.mp3 talk.srt

$ # AI-grade OCR — a 1.3B-parameter vision model, fully local:
$ cirax convert scan.png text.txt

Core Features

  • Chain router — a Dijkstra search over a 109-format graph picks the best chain of engines for any pair, ranked by fidelity (lossless beats lossy) and tagged before it runs.
  • 58 engines, one grammar — a declarative YAML registry wraps each engine; adding a format is a stanza, not a pull request.
  • Sandboxed by default — every job runs in a bubblewrap jail: no network, read-only filesystem, writes confined to the workspace.
  • Local AI OCRGLM-OCR (MIT, ~1.3B params) via Ollama: layout-aware text + Markdown, zero cloud.
  • Blender & Piper engines.blend → GLB/FBX/OBJ/STL/PLY headless, and offline text-to-speech (see docs/ENGINES.md)
  • Same-format ops — strip EXIF/GPS, fix line endings, transcode charsets.
  • Watch & serve — convert folders as files land in them, or drive it from a local web UI / plain curl.

Quick Start

Installation

Channel Command
PyPI uv tool install cirax (or pipx install cirax)
curl curl -fsSL https://raw.githubusercontent.com/baselanaya/Cirax/main/install.sh | sh
npm npm i -g @baselanaya/cirax
Windows Cirax-Setup-win64.exe from Releases (desktop app + CLI). Engines: cirax doctor --show-missing prints scoop/winget commands; extra engines in scoop bucket add cirax https://github.com/baselanaya/Cirax
Desktop (Linux) grab the .deb / .rpm / .AppImage from Releases
macOS Cirax-macos.dmg from Releases (experimental — unsigned, right-click → Open)

Cirax itself is tiny — the engines are your system packages. cirax doctor --show-missing prints exactly what to install.

First conversion

cirax doctor              # capability matrix of this machine
cirax plan report.docx    # every reachable target, with routes
cirax convert report.docx preview.png

Desktop app

Drag, drop, convert. The GUI speaks to the same sandboxed pipeline as the CLI and ships in every release artifact.

Engine installation

Domain pacman packages
Images libvips imagemagick libheif libjxl libavif libwebp oxipng pngquant
Video / Audio ffmpeg mkvtoolnix-cli sox opus-tools gifsicle
Office libreoffice-still pandoc
Ebooks calibre
PDF qpdf ghostscript poppler img2pdf ocrmypdf
Archives 7zip zstd unar libisoburn
Data jq go-yq miller duckdb
RAW / Vector darktable inkscape librsvg potrace
3D / Disks / GIS assimp qemu-img gdal
AI ollama + ollama pull glm-ocr

Architecture

flowchart LR
    A[CLI / GUI / Web / Watch] --> B[Job Engine]
    B --> C{Router}
    C --> D[Engine Registry YAML]
    C --> E[Engine 1]
    C --> F[Engine 2]
    C --> G[Engine n]
    E --> H[(bwrap jail)]
    F --> H
    G --> H
    H --> I[Output]

The complete machine-readable format map lives at docs/FORMATS.md (auto-generated from the registry).

Inputs are detected with file(1) + an extension table; the router searches the capability graph up to three hops through pivot formats (PDF, PNG, WAV, JSON…); a job engine runs the chain inside a sandbox with per-engine concurrency, progress parsing and guaranteed cleanup.

Cirax vs. Online Converters

Online converters Cirax
Your files uploaded to someone's server never leave the disk
Format pairs a hand-picked menu the closure of 58 engines (chains)
Fidelity whatever it feels like tagged lossless/lossy before running
OCR / AI extra fee, extra upload GLM-OCR locally, after one ollama pull
Works offline no completely
Sandboxing n/a bubblewrap, no network, per job

Supported Platforms

Platform Status Notes
Linux x86_64 (Arch, Ubuntu, Fedora…) ✅ supported engines via your package manager
AppImage / deb / rpm ✅ released desktop app + CLI in every release
Windows / macOS ❌ not yet engine discovery needs porting

Contributing

Fork → branch (feat/…) → PR. Adding a conversion engine is a YAML stanza — see README section on engines in the docs and the existing specs under src/cirax/data/engines/.

Adding an Engine

Drop a YAML stanza in src/cirax/data/engines/ — inputs, outputs, a command template, optional per-format flags and presets — and the router picks it up. No code.

- engine: mycodec
  binary: mycodec
  package: mycodec
  presets:
    web: {flags: {image/myfmt: "-q 70"}}
  routes:
    - from: [image/png]
      to: [image/myfmt]
      lossless: true
      priority: 90
      command: "mycodec encode {input} {flags} {output}"

Built by Basel Anaya — Maximlabs.co

Don't upload. Convert.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cirax-0.10.2.tar.gz (15.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cirax-0.10.2-py3-none-any.whl (51.5 kB view details)

Uploaded Python 3

File details

Details for the file cirax-0.10.2.tar.gz.

File metadata

  • Download URL: cirax-0.10.2.tar.gz
  • Upload date:
  • Size: 15.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cirax-0.10.2.tar.gz
Algorithm Hash digest
SHA256 f5fc80e1e3630394fe8e8b285cd4ea23a5cbe3cd25ebdb9a0aafd3a7aa7f0aa5
MD5 aa19d37b92fe12955f0be8dfd0141eb8
BLAKE2b-256 1b9bc382d1d494e36efb4334c2cc1d4284ee85ecf052f599780ed270fb8b9fda

See more details on using hashes here.

Provenance

The following attestation bundles were made for cirax-0.10.2.tar.gz:

Publisher: publish.yml on baselanaya/Cirax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cirax-0.10.2-py3-none-any.whl.

File metadata

  • Download URL: cirax-0.10.2-py3-none-any.whl
  • Upload date:
  • Size: 51.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cirax-0.10.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3289808cde2d9c7fbc62cffcd65663f616aa2c48ca62f1bef53230fb8473452f
MD5 ed6f673842dadb34c65cb505dfef574f
BLAKE2b-256 9713e2066ff1b6b214151de3f6b2673d8242f02040df995e04f393707ba8bd7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for cirax-0.10.2-py3-none-any.whl:

Publisher: publish.yml on baselanaya/Cirax

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.10.2 This release

2 files

0.10.1

2 files

0.10.0

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.2

2 files

0.8.1

2 files

0.7.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page