A powerful browser-based batch file renaming tool.
Regex, rule chains, live preview — all processed locally for total privacy.
Live Demo · Report Bug · Request Feature
English | 简体中文
- 100% Local Processing — Files never leave your device. All operations run in-browser via File System Access API.
- Rule Chains — Combine multiple rename rules (Find & Replace, Regex, Sequence, Case/Style, Custom JS) in sequence.
- Live Preview — See changes instantly as you configure rules. Conflicts are detected before execution.
- Metadata Support — Extract EXIF data from images and audio tags from music files for smart renaming.
- TV Show Scraper — Auto-match video files with show/episode info from TMDb (requires internet and a TMDb API key).
- Export Scripts — Generate bash or PowerShell scripts for offline execution.
- Undo Support — Built-in undo in the UI, plus exportable undo scripts for command-line rollback.
- Works Offline — No internet needed after initial page load. (Note: TV show scraping requires internet and a TMDb API key)
- Multi-language — English and Chinese supported.
- Node.js >= 20 (see
.nvmrc) - pnpm
# Clone the repository
git clone https://github.com/chenz24/rename.tools.git
cd rename.tools
# Install dependencies
pnpm install
# Copy environment variables
cp .env.example .env.local
# Start development server
pnpm devOpen http://localhost:3000 to see the app.
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack) |
| UI | React 19, Tailwind CSS 4, shadcn/ui |
| State | Zustand |
| Drag & Drop | @dnd-kit |
| Metadata | exifr, music-metadata-browser |
| i18n | next-intl |
| Linting | Biome |
| Language | TypeScript |
- Import Files — Drag & drop files/folders or use the file picker
- Add Rules — Build a rule chain with multiple rename operations
- Preview — Review changes in real-time with conflict detection
- Execute — Rename files directly on your device
| Rule | Description |
|---|---|
| Find & Replace | Text replacement with case sensitivity and position options |
| Regex Replace | Full regex support with capture groups and backreferences |
| Add/Insert | Insert text at start, end, or specific position |
| Sequence | Auto-numbering with custom start, step, and padding |
| Case/Style | UPPERCASE, lowercase, Title Case, kebab-case, etc. |
| Remove/Cleanup | Remove characters by count, range, or type (digits, symbols, etc.) |
| Custom JS | Write your own transform function |
Use variables in Insert rules:
{name}— Original filename{n}— Sequence number{date},{time},{datetime}— Current date/time{exifDate},{exifCamera}— EXIF metadata{mediaArtist},{mediaTitle},{mediaAlbum}— Audio tags
| Browser | Direct Rename | Export Scripts |
|---|---|---|
| Chrome / Edge / Brave / Arc | ✅ | ✅ |
| Firefox / Safari | ❌ | ✅ |
Direct renaming requires the File System Access API (Chromium-based browsers). Other browsers can use sample test mode or export scripts.
| Command | Description |
|---|---|
pnpm dev |
Start dev server with Turbopack |
pnpm build |
Build for production |
pnpm start |
Start production server |
pnpm lint |
Lint with Biome |
pnpm format |
Format with Biome |
pnpm check |
Lint + format (auto-fix) |
Rename.Tools is built with a privacy-first architecture:
- No uploads — Files are accessed via browser APIs, never transmitted
- No server processing — All rename logic runs client-side
- No data retention — Close the tab and everything is gone
- No accounts — No sign-up, no tracking, no analytics on your files
Is Rename.Tools really free? Yes, completely free and open source. There are no premium tiers, no trials, and no hidden fees.
Do my files get uploaded to a server? No. Rename.Tools runs entirely in your browser. Your files are accessed through the File System Access API and never leave your device.
What browsers are supported? Rename.Tools works best in Chromium-based browsers (Chrome, Edge, Brave, Arc). Firefox and Safari can use sample test mode or export scripts.
Can I undo a rename operation? Yes. Rename.Tools provides a built-in undo button in the interface to reverse your last rename operation. You can also export an undo script for command-line reversal if needed.
How many files can it handle? Rename.Tools can handle thousands of files in a single batch. Performance depends on your browser and device capabilities.
Does it work completely offline? Most features work offline after initial page load. However, the TV show scraping feature requires internet access and a TMDb API key to query the TMDb API.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the AGPL-3.0 License — see the LICENSE file for details.
- shadcn/ui for the beautiful components
- TMDb for TV show data API
- All contributors who help improve this project
Made with ❤️ by chenz24
