Universal file format converter. One binary, 50+ formats, CLI, TUI, Web UI, REST API, and automatic route selection.
convertr wraps pandoc, ffmpeg, LibreOffice, ImageMagick, jq, yq, Tesseract, csvkit, AsciiDoctor, Calibre, pdfcpu, and plugin backends behind one command:
convertr FILE -o OUTIt detects formats, checks installed backends, and picks a conversion route automatically. If no direct route exists, it can chain available tools.
| Category | Formats |
|---|---|
| Documents | MD, DOCX, PDF, ODT, HTML, EPUB, RST, TeX, PPTX |
| Images | JPG, PNG, WebP, SVG, AVIF, HEIC, GIF |
| Video | MP4, MKV, WebM, AVI, MOV |
| Audio | MP3, FLAC, AAC, WAV, OGG |
| Data | JSON, YAML, TOML, CSV, XLSX |
| OCR | image to text through Tesseract |
- One interface for documents, media, data, OCR, and PDF tools.
- Automatic routing over installed backend capabilities.
- Batch conversion with workers, retry policy, and conflict handling.
- Watch mode for converting files as they change.
- Unicode safety controls for Cyrillic PDF output and strict text-layer checks.
- TUI, built in Web UI, REST API, Docker image, and plugin protocol.
go install github.com/Mark1708/convertr/cmd/convertr@latestRequires Go 1.25+.
brew install mark1708/tap/convertrgit clone https://github.com/Mark1708/convertr.git
cd convertr
go build -o ~/.local/bin/convertr ./cmd/convertrInstall common conversion tools:
# macOS
./scripts/install-deps-macos.sh
# Debian or Ubuntu
./scripts/install-deps-linux.shCheck what is available:
convertr version
convertr doctordoctor prints installed tools, versions, paths, and install hints for missing backends.
# Format is inferred from extensions.
convertr report.docx -o report.md
# Target format can be explicit.
convertr notes.md --to pdf -o notes.pdf
# Require Unicode-safe PDF text when Cyrillic is detected.
convertr notes.md --to pdf -o notes.pdf --unicode-mode strict
# Stdin to stdout.
cat data.json | convertr - --from json --to yaml -o -# Convert a directory recursively.
convertr -r ./docs -o ./out --to md --mkdir
# Use 4 workers and retry failed jobs.
convertr -r ./inbox -o ./outbox --to pdf -j 4 --on-error retry --mkdir
# Preview the plan without writing files.
convertr -r ./docs -o ./out --to md --dry-run
# Prefer higher fidelity routes.
convertr source.docx -o out.pdf --route-policy quality
# Reject lossy route edges.
convertr image.png -o out.webp --avoid-lossy
# Limit route length.
convertr source.md -o out.pdf --max-hops 2
# Watch a directory and convert on every change.
convertr watch ./inbox -o ./outbox --to md
# Inspect formats and the conversion graph.
convertr formats
convertr formats --dot | dot -Tsvg > /tmp/formats.svgMore examples are in docs/workflows.md.
The CLI is the default interface for single files, batches, watch mode, PDF tools, backend checks, config, and plugins.
convertr --help
convertr backends list
convertr pdf merge -o bundle.pdf a.pdf b.pdfFull reference: docs/cli.md.
convertr serve
convertr serve --addr 127.0.0.1:8080The browser UI supports uploads, route preview, Unicode safety selection, downloads, backend status, and PDF tools. Use --api-only when you only need the REST API.
- Web UI guide: docs/web-ui.md
- REST API: docs/api.md
convertr tuiUse the terminal UI to inspect backend status, preview routes, adjust route policy and Unicode mode on preview screens, and run an interactive conversion. Guide: docs/tui.md.
Use ghcr.io/mark1708/convertr for the full backend image with CLI, Web UI, and REST API. See docs/docker.md for tags, run commands, volumes, health checks, and image notes.
Create a config file:
convertr config init
convertr config print
convertr config validateDefault path: ~/.config/convertr/config.toml. CLI flags override environment variables, which override the config file, which overrides built in defaults.
Common environment overrides:
CONVERTR_QUALITYCONVERTR_WORKERSCONVERTR_ON_ERRORCONVERTR_ON_CONFLICT
Config fields and backend options are documented in docs/cli.md.
convertr removes missing backend capabilities from the graph at startup. Install tools, then run:
convertr doctor
convertr backends statusExternal plugins are executables named convertr-* in PATH.
convertr plugins list
convertr plugins testBackend details and plugin protocol: docs/cli.md.
VHS demo tapes live in docs/demos. Only the CLI basics GIF is committed. Render the full local gallery with:
make demo- CLI reference
- Web UI guide
- TUI guide
- Workflows
- REST API
- Docker
- Demo gallery
- Remediation audit
- Contributing
- Security
make build
make test
make lintCI also runs go vet, race enabled tests, go build ./..., and govulncheck.
MIT, see LICENSE.
