Configuration
Project-Level Settings
Section titled “Project-Level Settings”Renamify looks for configuration in .renamify/config.toml
:
# Renamify Configuration File[defaults]# Default preview format: "table", "diff", or "json"preview = "diff"
# Whether to rename files by defaultrename_files = true
# Whether to rename directories by defaultrename_dirs = true
# Default unrestricted level# 0 = respect all .gitignore files (default)# 1 = -u (don't respect .gitignore files in the repo)# 2 = -uu (don't respect .gitignore or .ignore files)# 3 = -uuu (don't respect any ignore files, search binary files)unrestricted_level = 0
# Whether to use color output by default# Options: true, false, or omit for auto-detection based on terminal# use_color = true
See .renamify/config.toml.example
for a complete example configuration.
Environment Variables
Section titled “Environment Variables”NO_COLOR
Section titled “NO_COLOR”Disable colored output (respects the NO_COLOR standard):
NO_COLOR=1 renamify plan old new
RENAMIFY_YES
Section titled “RENAMIFY_YES”Equivalent to the -y
flag (assume yes for all prompts):
RENAMIFY_YES=1 renamify plan old new# Same as: renamify -y plan old new
Useful for:
- CI/CD environments
- Automated scripts
- Non-interactive contexts
Auto-Initialization Settings
Section titled “Auto-Initialization Settings”Control how Renamify initializes its workspace:
Command-Line Options
Section titled “Command-Line Options”# Automatically add to .gitignore without promptingrenamify --auto-init=repo plan old new
# Add to local git exclude insteadrenamify --auto-init=local plan old new
# Add to global git excludesrenamify --auto-init=global plan old new
# Disable auto-initialization completelyrenamify --no-auto-init plan old new
Environment Integration
Section titled “Environment Integration”# For CI/CD - assume yes and use repo initializationexport RENAMIFY_YES=1renamify --auto-init=repo plan old new
Workspace Structure
Section titled “Workspace Structure”Renamify creates and manages these directories and files:
.renamify/├── config.toml # Project configuration (optional)├── plan.json # Current active plan├── history.json # Operation history├── renamify.lock # Process lock file (temporary)└── backups/ # Backup directories ├── abc123-timestamp/ │ ├── file1.js # Original file contents │ ├── file2.py │ ├── checksums.json # Integrity verification │ └── operation-info.json # Operation metadata └── def456-timestamp/
Ignore Configuration
Section titled “Ignore Configuration”Repository Level (.gitignore)
Section titled “Repository Level (.gitignore)”Most users should add to their repository’s .gitignore
:
# Renamify workspace.renamify/
Local Level (.git/info/exclude)
Section titled “Local Level (.git/info/exclude)”For personal use without affecting the team:
# Add to .git/info/exclude.renamify/
Global Level
Section titled “Global Level”For all your projects:
# Configure global excludes filegit config --global core.excludesfile ~/.gitignore_global
# Add to ~/.gitignore_globalecho '.renamify/' >> ~/.gitignore_global
Performance Tuning
Section titled “Performance Tuning”Large Codebase Settings
Section titled “Large Codebase Settings”For projects with many files, consider these optimizations:
# Use specific includes to limit scoperenamify plan old new --include "src/**/*.{js,ts}"
# Exclude large directories earlyrenamify plan old new --exclude "node_modules/**,target/**"
# Use unrestricted flags judiciouslyrenamify plan old new -u # Only if you need gitignored files
Memory Considerations
Section titled “Memory Considerations”Very large plans may require significant memory. Monitor usage with:
# Check plan file sizels -lh .renamify/plan.json
# For huge plans, consider splitting the work:renamify plan old new --include "src/module1/**" # First partrenamify applyrenamify plan old new --include "src/module2/**" # Second partrenamify apply
Platform-Specific Settings
Section titled “Platform-Specific Settings”Windows
Section titled “Windows”- Handles path length limitations (260 chars)
- Prevents Windows reserved filenames (CON, PRN, AUX, etc.)
- Supports both
/
and\
path separators
- Detects case-insensitive APFS/HFS+ filesystems
- Uses two-step renames for case-only changes
- Handles Unicode normalization differences
- Generally case-sensitive filesystem support
- Efficient parallel directory traversal
- Memory-mapped file reading for performance
Future Configuration Options
Section titled “Future Configuration Options”Planned configuration features (not yet implemented):
[defaults]# Automatic git operationsauto_commit = falsecommit_message_template = "Renamify: {old} → {new}"
[safety]# Backup retentionbackup_retention_days = 30max_backup_size_mb = 1000
# Conflict handlingconflict_strategy = "ask" # ask, skip, force
[performance]# Parallel processingmax_threads = 0 # 0 = auto-detect
# Memory limitsmax_plan_size_mb = 100