{"id":50367436,"url":"https://github.com/vein05/nomnom","last_synced_at":"2026-05-30T05:01:02.815Z","repository":{"id":285629585,"uuid":"946808743","full_name":"Vein05/nomnom","owner":"Vein05","description":"A Go CLI tool for bulk renaming and organizing with genAI. ","archived":false,"fork":false,"pushed_at":"2026-05-30T00:51:37.000Z","size":60796,"stargazers_count":18,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-30T01:18:52.715Z","etag":null,"topics":["ai","cli","deepseek","go","golang","openrouter","organizer","rename"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vein05.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-11T17:53:32.000Z","updated_at":"2026-04-09T06:52:47.000Z","dependencies_parsed_at":"2025-04-17T05:18:59.994Z","dependency_job_id":"ee3aaf30-6c25-4c65-9452-36f827c105cf","html_url":"https://github.com/Vein05/nomnom","commit_stats":null,"previous_names":["vein05/nomnom"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/Vein05/nomnom","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vein05%2Fnomnom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vein05%2Fnomnom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vein05%2Fnomnom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vein05%2Fnomnom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vein05","download_url":"https://codeload.github.com/Vein05/nomnom/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vein05%2Fnomnom/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33680527,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cli","deepseek","go","golang","openrouter","organizer","rename"],"created_at":"2026-05-30T05:01:02.070Z","updated_at":"2026-05-30T05:01:02.785Z","avatar_url":"https://github.com/Vein05.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eNomNom\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://go.dev/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Go-1.24+-00ADD8?logo=go\u0026logoColor=white\" alt=\"Go 1.24+\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/License-MIT-green.svg\" alt=\"MIT License\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/vein05/nomnom/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Platform-macOS%20%7C%20Windows%20%7C%20Linux-black\" alt=\"Platforms\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"banner.png\" alt=\"NomNom banner\" width=\"720\" /\u003e\n\u003c/p\u003e\n\n## Demo\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/Vein05/nomnom-data/refs/heads/main/output.gif\" alt=\"NomNom demo\"\u003e\n\u003c/div\u003e\n\n## What It Does\n\nNomNom 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](https://wails.io) and shares a Go backend with the included CLI.\n\n- **Scan** a directory to preview all files\n- **AI naming** generates rename suggestions using your provider of choice\n- **Preview** every suggestion before applying\n- **Apply** renames in-place or copy to an output directory\n- **Revert** any session from local history\n\n## Install\n\nDownload the latest build for your platform from the [Releases](https://github.com/vein05/nomnom/releases) tab.\n\n| Platform | Asset |\n|----------|-------|\n| macOS (Apple Silicon) | `nomnom-desktop.app` or `nomnom-darwin-arm64.zip` |\n| Windows (x64) | `desktop-amd64.exe` or `nomnom-windows-amd64.zip` |\n| Linux (x64) | `nomnom-linux-amd64.zip` |\n\n### Build from source\n\n```bash\ngit clone https://github.com/vein05/nomnom.git\ncd nomnom\n\n# CLI\ngo build .\n\n# Desktop app\ncd desktop \u0026\u0026 wails build -clean\n```\n\n## AI Providers\n\nNomNom supports three providers, configured through the Settings panel or interactive setup:\n\n| Provider | Setup |\n|----------|-------|\n| **OpenRouter** | API key (`OPENROUTER_API_KEY`) — access to Google Gemini, Qwen, Mistral, and more |\n| **DeepSeek** | API key (`DEEPSEEK_API_KEY`) |\n| **Ollama** | Local instance — no key required |\n\nBuilt-in model suggestions are provided for OpenRouter and DeepSeek. You can also type any model ID your provider supports.\n\n## Supported File Types\n\n| Category | Formats |\n|----------|---------|\n| Images | `png`, `jpg`, `jpeg`, `webp` |\n| Documents | `pdf`, `docx`, `epub`, `pptx`, `xlsx`, `xls` |\n| Text \u0026 Data | `txt`, `md`, `json` |\n| Audio | `mp3`, `ogg`, `flac`, `m4a`, `wav`, `dsf` |\n| Video | `mp4` |\n\nMultimodal 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.\n\n## CLI\n\nThe CLI shares the same backend as the desktop app and is available in the release zips.\n\n```bash\n# Interactive setup\nnomnom setup\n\n# Preview renames\nnomnom -d /path/to/files\n\n# Apply renames\nnomnom -d /path/to/files --dry-run=false\n\n# Revert a session\nnomnom --revert /path/to/.nomnom/logs/changes_\u003ctimestamp\u003e.json\n\n# View analytics\nnomnom analytics -d /path/to/files\n```\n\n## Development\n\n```bash\n# Run the desktop app with hot reload\nmake dev\n\n# Full test suite\nmake test\n\n# Lint\nmake lint\n\n# Build desktop app\nmake desktop\n```\n\n## Repository Layout\n\n- `cmd/`, `internal/` — shared Go backend: scanning, AI calls, file operations, logging, analytics\n- `desktop/` — Wails desktop app with React frontend and its own Go module\n- `data/` — sample fixtures and reference material\n\nThe 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvein05%2Fnomnom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvein05%2Fnomnom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvein05%2Fnomnom/lists"}