-
-
Notifications
You must be signed in to change notification settings - Fork 0
Features
Youri Theodora Kopoulos Kirchner Mattar edited this page Jan 13, 2026
·
2 revisions
-
Home Directory Expansion: Automatically expands
~to the user's home directory - Relative Path Support: Source paths are relative to the executable directory
- Absolute Path Support: Both source and target paths can be absolute
- Duplicate Detection: Automatically detects and removes duplicate symlinks
- Parent Directory Creation: Creates parent directories for symlinks if they don't exist
- Relinking Support: Optional automatic replacement of incorrect symlinks
- Force Mode: Optional removal of existing files/directories
- Status Tracking: Monitor symlink health with OK, MISSING, BROKEN, MISMATCH states
-
Dry Run Mode: Preview changes without making them using
--dry-run - Path Verification: Checks for existence and type (file/directory) before operations
- Error Handling: Comprehensive error checking and reporting
- Automatic Backups: Files are backed up before being overwritten (configurable)
- Backup Restoration: Restore original files when unlinking
- link: Create symlinks from config (default command)
- status: Show status of all symlinks with health indicators
- unlink: Remove symlinks with optional backup restoration
- backup create: Manually create backups of all linked files
- backup list: List available backups
- Multi-Profile Support: Different configurations for different machines/environments
-
Profile Filtering: Use
--profileflag to apply only matching configs - Single Config File: Multiple profiles can exist in the same configuration file
Use Go's text/template syntax with built-in variables:
-
{{ .Hostname }}- Machine hostname -
{{ .Username }}- Current user -
{{ .HomeDir }}- Home directory path -
{{ .OS }}- Operating system (darwin, linux, windows) -
{{ .Arch }}- Architecture (amd64, arm64) -
{{ .Date }}- Current date (YYYY-MM-DD)
Execute custom commands at specific points:
- pre_link: Run before creating symlinks
- post_link: Run after creating symlinks
- pre_shell: Run before shell commands
- post_shell: Run after shell commands
-
Array Format: Simple
[command, description]syntax - Map Format: Extended format with stdin support for creating files
- Description Support: Document what each command does
-
Colored Output: Beautiful colored terminal output (disable with
--no-color) -
Verbose Mode: Detailed debug information with
--verbose -
Quiet Mode: Show only errors with
--quiet - Summary Statistics: See count of successful, warning, and error operations
Made with ❤️ in Go. Keep your dotfiles organized!
Licensed under GPL-3.0