hideDot

A blazing fast dotFiles manager written in Go

Features

๐Ÿš€

Fast Symlink Management

Quickly manage and organize all your symlinks with blazing speed.

๐Ÿ”™

Automatic Backups

Files are automatically backed up before being overwritten for safety.

๐Ÿ“‹

Status Command

Check symlink health with OK, MISSING, BROKEN, and MISMATCH states.

๐Ÿท๏ธ

Profiles

Different configurations for different machines or environments.

๐Ÿ“

Templates

Use variables like hostname, OS, arch in your configuration.

๐Ÿช

Hooks

Run custom commands before and after link/shell operations.

๐Ÿ”„

Git Repository Cloning

Easily clone and manage your Git repositories in one place.

๐Ÿ› ๏ธ

Shell Commands

Run shell commands with stdin support for creating files.

๐Ÿงช

Dry-Run Mode

Preview changes before applying them with a comprehensive dry-run mode.

Getting Started

1Installation

Install hideDot using Homebrew:

brew tap youhide/homebrew-youhide
brew install hidedot

2Create Configuration

Scaffold a starter config with hidedot init, or create a hidedot.conf.yaml by hand:

- defaults:
    link:
      relink: true
      force: true
      backup: true  # Automatic backups (on unless set to false)

  profile: personal  # Optional: for multi-machine setups

  # Create directories
  create:
    - ~/.config
    - ~/.local/bin

  # Manage symlinks
  link:
    ~/.config/nvim: ~/.mydotfiles/nvim
    ~/.zshrc: ~/.mydotfiles/zsh/zshrc

  # Clone git repositories
  git:
    ~/.oh-my-zsh:
      url: https://github.com/ohmyzsh/ohmyzsh.git
      description: "Oh My Zsh"

  # Run shell commands
  shell:
    - [touch ~/.hushlogin, Create hushlogin]

  # Hooks for custom actions
  hooks:
    pre_link:
      - echo "Starting link process..."
    post_link:
      - echo "Links created successfully!"

3Link Your Dotfiles

Run hideDot to create the symlinks:

# Scaffold a starter config
hidedot init

# Adopt existing files: moves them in, symlinks them back
# and adds them to your config
hidedot adopt ~/.zshrc ~/.config/nvim

# Create symlinks (default command)
hidedot

# Or with a custom config
hidedot --config path/to/hidedot.conf.yaml

# Preview changes first
hidedot --dry-run

# Check status of symlinks
hidedot status

# Remove symlinks and restore backups
hidedot unlink --restore

Commands

Options

Frequently Asked Questions

What is hideDot?

hideDot is a blazing-fast dotfiles manager written in Go. It manages symlinks, automatic backups, profiles, templates, and hooks from a single YAML configuration file.

How do I install hideDot?

Install hideDot with Homebrew: run brew tap youhide/homebrew-youhide followed by brew install hidedot.

Which operating systems does hideDot support?

hideDot runs on macOS, Linux, and Windows. Template variables let you adapt configuration per hostname, OS, and architecture.

Does hideDot back up my files?

Yes. hideDot automatically backs up any file before overwriting it. You can restore backups with hidedot unlink --restore and manage them with hidedot backup create and hidedot backup list.

Is hideDot free and open source?

Yes. hideDot is free and open source, released under the GNU General Public License v3.0 (GPL-3.0).