Skip to content

A Go-based CLI tool for managing dotfiles across multiple machines with interactive setup, platform detection, and dependency management.

License

Notifications You must be signed in to change notification settings

nvandessel/go4dot

Repository files navigation

go4dot 🐹

A powerful, cross-platform CLI tool for managing dotfiles with style.

CI codecov Go Report Card Go Version Release License: MIT

✨ Features

  • 🔍 Platform Detection - Automatically detect OS, distro, and package manager
  • 📦 Dependency Management - Check for and install required tools
  • 🎨 Interactive Setup - Beautiful TUI with prompts and progress indicators
  • 🔧 Machine-Specific Config - Prompt for values that differ per machine
  • 🔗 Stow Management - Safely symlink configs with conflict detection
  • 🌐 External Dependencies - Clone plugin managers, themes, etc. from GitHub
  • 🏥 Health Checking - Doctor command to validate installation
  • 🌍 Universal - Works with ANY dotfiles repo with a .go4dot.yaml config

🚀 Quick Start

Installation

One-line install (Linux/macOS):

curl -fsSL https://raw.githubusercontent.com/nvandessel/go4dot/main/scripts/install.sh | bash

See the Installation Guide for other methods.

Usage

  1. Clone your dotfiles:

    git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
    cd ~/dotfiles
  2. Install:

    g4d

📚 Documentation

🏗️ Building from Source

git clone https://github.com/nvandessel/go4dot.git
cd go4dot
make build
./bin/g4d version

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❤️ and Go

About

A Go-based CLI tool for managing dotfiles across multiple machines with interactive setup, platform detection, and dependency management.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages