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.8.2.tar.gz (15.0 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.8.2-py3-none-any.whl (49.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for cirax-0.8.2.tar.gz
Algorithm Hash digest
SHA256 86c9d3f7d6efeab365e911ef2d341d5dc382744c34387824974420832f7df363
MD5 d2119a357351e917bca674501eb2e3ea
BLAKE2b-256 33de60a1db2aa5521bbf3532b7782c614a1a7b4efcb13f4cdeff7f69b83ee6f2

See more details on using hashes here.

Provenance

The following attestation bundles were made for cirax-0.8.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.8.2-py3-none-any.whl.

File metadata

  • Download URL: cirax-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 49.3 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.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 052ec5aec881c43667b390e4bf54df0445761f7cb5f14079d8d046fb450bf894
MD5 2f3473d7c7fc7b114e9f27362add4736
BLAKE2b-256 00826722b95bd9a47ea6bfca34ab13690c1fee55fc1842a8acdab868ce32f2d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for cirax-0.8.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

0.10.2

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

This release

0.8.2 This release

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