# Transmute

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

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 Web](https://transmute-everything.netlify.app)
- **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 Web](https://transmute-everything.netlify.app)** — just open in your browser and start converting. No installation needed.

### CLI (Terminal)

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

# Start transmute
transmute 
```

## 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:

```bash
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](https://github.com/noauf/Transmute/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 Web](https://transmute-everything.netlify.app).

To run locally:

```bash
# 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](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

```bash
cd cli
go build -o transmute .
```

## License

APACHE 2.0

## 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

## Links

- **Web App:** [Transmute Web](https://transmute-everything.netlify.app)
- **CLI Docs:** See `--help` after installation
- **Issues:** [github.com/noauf/Transmute/issues](https://github.com/noauf/Transmute/issues)
- **Releases:** [github.com/noauf/Transmute/releases](https://github.com/noauf/Transmute/releases)

---

Made with love. Runs on your machine.
