Case-Aware
Replaces snake_case, camelCase, PascalCase, kebab-case, etc.
Smart search & replace for code and files with
case-aware replacements
and built-in undo/redo.
Released as a CLI tool, MCP Server, and VS Code / Cursor Extension
Case-Aware
Replaces snake_case, camelCase, PascalCase, kebab-case, etc.
Content & Files
Renames both file contents and files/directories in a single operation.
Safe & Atomic
Plan then apply atomically with full undo/redo. No partial states.
Rust Performance
Fast, memory-safe, cross-platform with >90% test coverage.
Renamify is a tool that understands different naming conventions and can rename both file contents and the files themselves in a single atomic operation. It’s designed for developers (and AI agents) who need to rename terms safely and efficiently.
Traditional find-and-replace tools work at the text level, but don’t understand code conventions. If you want to rename getUserName
to fetchUserProfile
, you need to handle:
getUserName
(camelCase)get_user_name
(snake_case)GetUserName
(PascalCase)GET_USER_NAME
(SCREAMING_SNAKE_CASE)get-user-name.js
user-name/
Renamify handles all of these automatically in a single operation.
The Renamify MCP Server enables AI agents to:
# Quick install to ~/.local/bin (no sudo)curl -fsSL https://docspring.github.io/renamify/install.sh | bash
See the installation guide for system-wide installation and more options.
Rename getUserName
to fetchUserProfile
across your entire codebase:
renamify rename getUserName fetchUserProfile
This automatically handles:
getUserName
→ fetchUserProfile
get_user_name
→ fetch_user_profile
GetUserName
→ FetchUserProfile
GET_USER_NAME
→ FETCH_USER_PROFILE
getUserName.js
→ fetchUserProfile.js
You can also specify specific paths:
renamify rename getUserName fetchUserProfile src/ tests/
(The other kind of self-hosting.)
While IDEs have had context-aware search and replace capabilities for decades, the landscape has changed dramatically:
AI Development Era: With AI assistants like Claude and Cursor, many developers now code outside traditional IDEs. These AI tools need programmatic access to powerful search & replace features.
Cross-Platform Consistency: IDE refactoring features vary between editors and may not handle all case styles or file renames consistently.
Automation-Friendly: Renamify can be used in scripts, CI/CD pipelines, and integrated with AI agents via MCP (Model Context Protocol).
Beyond IDE Boundaries: Renamify works across your entire codebase including documentation, configuration files, and scripts that IDEs might not understand.
Undo/Redo History: Unlike IDE operations, Renamify maintains a persistent history that survives editor restarts.
Productivity has skyrocketed in the new era of AI development, but AI agents are still missing a lot of tooling to make them more effective. Renamify helps fill one of these gaps.
VS Code introduced case-preserving find and replace, which is great for simple cases. Renamify goes much further:
HTTPSConnection
, XMLParser
, URLRouter
The MCP (Model Context Protocol) server is optimized for AI agents:
However, if the MCP server doesn’t work for your setup, you can always instruct your AI assistant to use the CLI directly by running shell commands. Both approaches give you the same powerful refactoring capabilities.
No problem! Renamify is primarily a command-line tool. If your AI assistant can run shell commands, it can use Renamify directly:
# AI agents can run these commands directlyrenamify rename oldName newNamerenamify plan oldName newName --preview tablerenamify applyrenamify undo
The MCP server is just a convenience wrapper that makes it easier for AI tools to use Renamify, but it’s not required.
Renamify has built-in intelligence for common acronyms:
HTTPSConnection
→ HTTPS
+ Connection
parseURL
→ parseWebAddress
(if renaming URL to WebAddress)XMLParser
in PascalCase becomes xml_parser
in snake_case--include-acronyms
, --exclude-acronyms
, or --no-acronyms
flagsYes! Renamify has multiple safety features:
.gitignore
and can create safety commitsWe recommend creating a git commit before major refactoring operations for extra safety.
Renamify respects the same ignore rules as ripgrep:
.gitignore
- Git’s ignore patterns.ignore
- Generic ignore file.rgignore
- Ripgrep-specific patterns.rnignore
- Renamify-specific patternsIt also ignores:
-uuu
flag)-u
flag)node_modules/
, target/
, dist/
, etc.)Use -u
, -uu
, or -uuu
flags to override ignore rules progressively.
Yes! Renamify is fully cross-platform and works on:
All features work consistently across platforms, including proper handling of Windows path separators and long path names.
Renamify maintains a complete history:
# Undo the last operationrenamify undo
# Or undo a specific operation by IDrenamify undo <id>
# View history to find the right operationrenamify history
# Redo if you change your mindrenamify redo
The history is persistent and survives terminal sessions.
Yes! Renamify properly tokenizes and transforms complex identifiers:
getUserAccountDetails
→ fetchCustomerAccountDetails
get_user_account_details
→ fetch_customer_account_details
user-account-service.js
→ customer-account-service.js
UserAccountDTO
→ CustomerAccountDTO
It understands word boundaries, compound words, and mixed-case patterns.
Atomic operations ensure your codebase is never in a broken state:
This is especially important when renaming across hundreds of files.
Renamify is built on the ripgrep engine and is extremely fast:
It can handle codebases with thousands of files in seconds.
Yes! Renamify works with any text files:
Use --preview
to verify changes make sense for your file types.
Renamify is developed and maintained by DocSpring, a company that builds developer tools and PDF API services. It’s open source under the MIT license.