Skip to content

Features

Youri Theodora Kopoulos Kirchner Mattar edited this page Jan 13, 2026 · 2 revisions

Path Handling

  • 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

Symlink Management

  • 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

Safety Features

  • 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

Subcommands

  • 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

Profiles

  • Multi-Profile Support: Different configurations for different machines/environments
  • Profile Filtering: Use --profile flag to apply only matching configs
  • Single Config File: Multiple profiles can exist in the same configuration file

Templates

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)

Hooks

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

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

Output Features

  • 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

Clone this wiki locally