Screen.Recording.2026-05-31.at.8.24.32.PM.mov
NomNom is a desktop app that renames your files using AI. Point it at a folder, and it generates clean, consistent names based on file contents - text, images, audio metadata, and more. It's built with Wails and shares a Go backend with the included CLI.
- Scan a directory to preview all files
- AI naming generates rename suggestions using your provider of choice
- Preview every suggestion before applying
- Apply renames in-place or copy to an output directory
- Revert any session from local history (CLI only, desktop coming soon)
Download the .dmg (macOS) or .zip (Windows) from Releases.
| Platform | Asset |
|---|---|
| macOS (Universal) | nomnom-desktop-darwin-universal.dmg |
| Windows (x64) | nomnom-desktop-windows-amd64.zip |
Note: Windows builds are included in releases but have not been tested - I don't have a Windows machine. Contributors with Windows access are very welcome to test, report issues, or submit fixes.
Install via Homebrew (macOS/Linux):
brew tap vein05/tap
brew install nomnomOr download the CLI binary directly from Releases:
| Platform | Asset |
|---|---|
| macOS (Apple Silicon) | nomnom-darwin-arm64.zip |
| macOS (Intel) | nomnom-darwin-amd64.zip |
| Linux (x64) | nomnom-linux-amd64.zip |
| Linux (ARM) | nomnom-linux-arm64.zip |
| Windows (x64) | nomnom-windows-amd64.zip |
git clone https://github.com/vein05/nomnom.git
cd nomnom
# CLI
go build .
# Desktop app
cd desktop && wails build -cleanNomNom supports three providers, configured through the Settings panel or interactive setup:
| Provider | Setup |
|---|---|
| OpenRouter | API key (OPENROUTER_API_KEY) - access to Google Gemini, Qwen, Mistral, and more |
| DeepSeek | API key (DEEPSEEK_API_KEY) |
| Ollama | Local instance - no key required |
Built-in model suggestions are provided for OpenRouter and DeepSeek. You can also type any model ID your provider supports.
| Category | Formats |
|---|---|
| Images | png, jpg, jpeg, webp |
| Documents | pdf, docx, epub, pptx, xlsx, xls |
| Text & Data | txt, md, json |
| Audio | mp3, ogg, flac, m4a, wav, dsf |
| Video | mp4 |
Multimodal models (OpenRouter with Gemini, Qwen, etc.) produce the best results for image renaming. Document extraction uses go-fitz/MuPDF on macOS and Linux with a lightweight fallback on Windows.
The CLI shares the same backend as the desktop app and is available in the release zips.
# Interactive setup
nomnom setup
# Preview renames
nomnom -d /path/to/files
# Apply renames
nomnom -d /path/to/files --dry-run=false
# Revert a session
nomnom --revert /path/to/.nomnom/logs/changes_<timestamp>.json
# View analytics
nomnom analytics -d /path/to/files# Run the desktop app with hot reload
make dev
# Full test suite
make test
# Lint
make lint
# Build desktop app
make desktopcmd/,internal/- shared Go backend: scanning, AI calls, file operations, logging, analyticsdesktop/- Wails desktop app with React frontend and its own Go moduledata/- sample fixtures and reference material
The desktop app uses the same Go service layer as the CLI. File scanning, AI planning, rename execution, logging, and analytics all run through shared backend code.
NomNom was designed and built by humans. Claude Opus was used for code review and auditing during development.