Transmute

Universal file converter that runs entirely on your machine. No uploads, no servers, 100% private.

Transmute — Universal File Converter

Transmute converts files between 70+ formats — images, documents, audio, video, data, fonts, and spreadsheets. Use it as a web app in your browser or as a CLI tool in your terminal.

Features

  • 70+ formats supported — Images, documents, audio, video, data, fonts, spreadsheets
  • 100% client-side — Files never leave your machine
  • Web app — Beautiful browser-based interface at transmute.ing
  • CLI tool — Full-featured terminal interface for power users
  • Batch conversion — Convert multiple files at once
  • Smart defaults — Automatically suggests the best output format
  • Open source — Inspect the code, contribute, or fork

Quick Start

Web App (Browser)

Visit transmute.ing — just open in your browser and start converting. No installation needed.

CLI (Terminal)

# Install
curl -fsSL https://raw.githubusercontent.com/noauf/Transmute/main/install.sh | bash

# Convert a single file
transmute photo.png

# Convert to a specific format
transmute photo.png -t webp

# Batch convert with glob
transmute *.png
transmute ./photos/

# Custom output directory
transmute *.pdf -d ./converted/

Format Support

Category Formats
Images PNG, JPG, JPEG, GIF, BMP, TIFF, WebP, AVIF, ICO, PSD, HEIC, HEIF, RAW (CR2, NEF, ARW, DNG)
Documents PDF, DOCX, DOC, TXT, HTML, MD, RTF, ODT, EPUB, MOBI, CSV, TSV
Audio MP3, WAV, FLAC, OGG, AAC, M4A, WMA, OPUS
Video MP4, WebM, AVI, MOV, MKV, GIF
Data JSON, XML, YAML, TOML, CSV, TSV, SQL
Fonts TTF, OTF, WOFF, WOFF2
Spreadsheets XLSX, XLS, CSV, ODS

Installation

CLI Installation

The installer detects your OS and architecture:

curl -fsSL https://raw.githubusercontent.com/noauf/Transmute/main/install.sh | bash

Or manually:

  1. Download the latest release for your platform from GitHub Releases
  2. Extract the archive
  3. Move transmute to your PATH (e.g., /usr/local/bin/)

Requirements:

  • macOS, Linux, or Windows
  • For audio/video: FFmpeg (auto-installed on first use)

Web App

No installation needed — just visit transmute.ing.

To run locally:

# Clone the repo
git clone https://github.com/noauf/Transmute.git
cd Transmute

# Install dependencies
npm install

# Run development server
npm run dev

Open http://localhost:3000 to use the app.

CLI Keybindings

When running the TUI:

Key Action
↑/↓ or j/k Navigate files
←/→ or h/l Change target format
space Toggle file selection
a Select/deselect all
p Preview file
d Remove file from list
x Delete converted output
c or enter Start conversion
? Show help
q Quit

Development

Project Structure

Transmute/
├── src/                    # Next.js web app
│   ├── app/               # App router pages
│   ├── components/        # React components
│   ├── hooks/             # Custom hooks
│   ├── lib/               # Utilities
│   └── types/             # TypeScript types
├── cli/                   # Go CLI tool
│   ├── cmd/               # CLI commands
│   └── internal/          # Core logic
│       ├── converter/     # File conversion
│       ├── detect/        # Format detection
│       ├── ffmpeg/        # FFmpeg manager
│       ├── theme/         # TUI styling
│       └── tui/           # Bubble Tea TUI
└── public/                # Static assets

Tech Stack

  • Web App: Next.js 14, TypeScript, Tailwind CSS, Framer Motion
  • CLI: Go 1.25, Bubble Tea, Lip Gloss
  • Conversion: FFmpeg, pdf.js, pdf-lib,libvips, and more

Building the CLI

cd cli
go build -o transmute .

License

MIT — see LICENSE for details.

Contributing

Contributions are welcome! Here's how to help:

  1. Report bugs — Open an issue with details
  2. Suggest features — We'd love to hear your ideas
  3. Add formats — Check the converter package for where to add new format routes
  4. Improve the UI — The web app needs your design skills

Made with love. Runs on your machine.

S
Description
No description provided
Readme 29 MiB
Languages
TypeScript 68.2%
Go 28.6%
Shell 1.1%
CSS 1%
PowerShell 0.9%
Other 0.2%