Skip to content

The convt command

One command-line tool for every kind of file

convt is a command-line file converter for images, video, audio, PDFs and Office documents. Every conversion is the same command: the file or folder, then --to and the format. It picks the engine for you (FFmpeg, PDFium, LibreOffice, libheif or resvg) and runs on your computer. The convt command never uploads a file.

It comes with the convt desktop app for macOS, Windows and Linux. A Desktop license is $39 once.

One command for images, video, audio and documents

Run on convt 0.5.0, the current release.

You don't need to remember which tool handles which file, or its flags. These five lines cover a photo, a video, a recording, a Word file and a PDF:

convt photo.png --to webpconvt clip.mov --to mp4 --video-height 720convt memo.wav --to mp3convt report.docx --to pdfconvt notes.pdf --to png --pages 1 --dpi 150
Output, convt 0.5.0
photo.png -> ./photo.webp
clip.mov -> ./clip.mp4
memo.wav -> ./memo.mp3
report.docx -> ./report.pdf
notes.pdf -> ./notes.png

Our 28.8 MB ProRes MOV came out as a 1.0 MB MP4 at 720p. The original file always stays as it was. To see what a file can become, ask convt:

convt targets clip.movconvt formats

convt targets clip.mov listed MP4, WebM, MKV, AVI, GIF, the sound formats (MP3, M4A, WAV, FLAC, AAC, OGG, Opus) and still images. When convt can't go straight from one format to another, it chains up to three steps, such as SVG to PNG to WebP.

Install convt on Mac, Windows or Linux

Mac (Apple silicon): Homebrew puts convt on your PATH. If you install the disk image from the download page instead, the command is /Applications/convt.app/Contents/MacOS/convt.

brew tap opencoredev/convt https://github.com/opencoredev/convtbrew install --cask convt

Windows (x86_64): the installer doesn't add convt to your PATH, so in PowerShell type its full path: & "$env:LOCALAPPDATA\Programs\convt\convt.exe" photo.png --to webp.

Linux (x86_64): a .deb, .rpm, AppImage and tarball are on GitHub releases. The tarball has convt next to the FFmpeg and libraries it uses.

Word, Excel and PowerPoint files need LibreOffice. On Windows, convt pack install documents downloads it once as convt's document pack. On a Mac, install LibreOffice from libreoffice.org into Applications and convt finds it; on Linux, install it from your package manager. Run convt engines to see which engines are ready on your machine.

Convert whole folders

Run on convt 0.5.0, the current release.

Give convt a folder instead of a file. -r takes the subfolders too, and -o writes the results into a separate folder with the same layout:

convt Photos --to webp -r -o webp
Output, convt 0.5.0
Photos/a.png -> webp/a.webp
Photos/2026/b.png -> webp/2026/b.webp
2 converted, 0 failed

convt converts several files at once, one per CPU core unless you set -j. Files already in the target format are skipped. It never overwrites: running the same command again wrote a (1).webp next to a.webp. A folder input converts every file that can become the target, so a folder of mixed files to --to jpg also turns videos and PDFs into images.

Options

Options that don't apply to a file are ignored for it, so one set of options can cover a folder of photos and videos. convt --help prints the same list:

-t, --to
The target format, such as png, mp4, mp3 or pdf.
-o, --out-dir
Where results go. Without it, each lands next to its original.
-r, --recursive
Include subfolders of folder inputs.
-q, --quality
Lossy quality from 1 to 100 for JPEG, HEIC, AVIF and video.
--max-size
Longest edge of image output, in pixels.
--pages, --dpi
Which PDF pages to render (2, 1-3 or 4-) and at what resolution.
--video-height
Maximum video height in pixels. It never enlarges.
--video-codec
h264 (the default) or hevc for MP4, MOV and MKV.
--audio-bitrate
Audio bitrate in kbit/s.
--no-audio
Leave the sound out of video output.
--background
What transparent areas become: white, black, transparent or #rrggbb.
-j, --jobs
How many files at once. Videos always run one at a time.

Save your settings as a preset

Run on convt 0.5.0, the current release.

A preset is a small TOML file with a target format and options. Pass its path with -p, or save it in convt's presets folder and use its name. convt presets lists the saved ones.

web.toml
to = "webp"
quality = 80
max_size = 1200
convt photo.png -p web.toml -o web
Output, convt 0.5.0
photo.png -> web/photo.webp

Use it in scripts

Run on convt 0.5.0, the current release.

--json prints one JSON event per line on stdout, so a script or another app can show progress and read the output paths:

convt logo.svg --to webp -o out --json
Output, convt 0.5.0
{"event":"started","index":0,"input":"logo.svg"}
{"event":"progress","index":0,"fraction":0.5}
{"event":"progress","index":0,"fraction":0.75}
{"event":"progress","index":0,"fraction":1.0}
{"event":"done","index":0,"input":"logo.svg","outputs":["out/logo.webp"]}
{"event":"summary","done":1,"failed":0,"cancelled":0}

convt exits with 0 when every file converted and 1 when any failed, such as a file it can't read or a conversion it has no route for. convt formats --json lists every format with its extensions and MIME type. The Raycast extension runs the same command.

Give it to an AI coding agent

Run on convt 0.5.0, the current release.

convt --skill prints a SKILL.md: every command, option and format, and how to check which engines are installed. Save it where your agent reads skills, and the agent can convert files on your machine without uploading them anywhere.

convt --skill > SKILL.md

convt, FFmpeg, ImageMagick, LibreOffice and Pandoc

The tools people usually reach for each cover one kind of file, and they go much deeper than convt does there. convt is the one command across all of them:

ToolWhat it's best atNext to convt
FFmpegVideo and audio, with every codec and filter setting you could wantconvt runs FFmpeg for video and audio, with a short list of options instead of codec flags
ImageMagickImages, plus resizing, cropping, compositing and effectsconvt converts and resizes images; it doesn't edit them
LibreOffice (soffice)Office documents, converted from the command line in headless modeconvt drives LibreOffice for documents, so the command is the same as for a photo
PandocMarkup documents: Markdown, HTML, DOCX, LaTeX and moreconvt doesn't read Markdown or LaTeX; use Pandoc for those

FFmpeg, ImageMagick, LibreOffice and Pandoc are free. If you already know their flags and only work with one kind of file, they may be all you need.

What convt doesn't do yet

As of convt 0.5.0, the current release:

  • It can't shrink a file without changing its format: MP4 to a smaller MP4 or JPEG to a smaller JPEG isn't possible in 0.5.0.
  • HEIC to JPEG drops the photo's EXIF data: the date taken, the camera and the location.
  • It doesn't turn PDFs into Word files, images into SVG, or SVG into PDF.
  • It doesn't edit: no cropping, trimming, filters or merging files.
  • The Mac build needs Apple silicon; there is no Intel Mac build.

Step-by-step guides

Each guide does one job, built-in tools first, with every convt command tested. For Finder's right-click menu, see the Mac file converter page.

Questions

Is convt free?
No. The source code is open (AGPL-3.0), but the signed app and command-line tool are $39 once for a Desktop license. The command-line tool starts a trial the first time it converts a file, so you can try it first.
Does the convt command upload my files?
No. It converts on your computer and makes no network calls, except convt pack install on Windows, which downloads the document pack when you ask for it. convt's paid cloud API is a separate service that does receive files.
Is it a wrapper around FFmpeg?
For video and audio, yes: it runs the FFmpeg that ships with it. Images, SVG, PDFs, HEIC and documents go through other engines, and convt picks the one that fits.
Does it run on a server?
The Linux build runs from a terminal on x86_64, so it works over SSH or in a script. The cloud API is the other option when files should be converted on convt's servers; see the API docs.

Send feedback

A bug, a format you need, anything. It goes straight to the convt team.