Skip to content
Back to skills

Dotfiles Manager

BSecurity

Comprehensive knowledge of dotfiles management, configuration file organization, symlink strategies, and cross-platform environment setup. Use when the user needs to organize, sync, or deploy dotfiles and development configurations.

  • 121 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 7, 2026
toolsshellbashgit

Works with

  • terminal

Security analysis

B88/100
  • criticalModifies startup scripts or system services for persistence

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add einverne/dotfiles --skill dotfiles-manager --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dotfiles Manager?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dotfiles Manager
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/einverne-dotfiles-manager/badge)](https://www.skillsdirectory.com/skills/einverne-dotfiles-manager)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: dotfiles-manager
description: Comprehensive knowledge of dotfiles management, configuration file organization, symlink strategies, and cross-platform environment setup. Use when the user needs to organize, sync, or deploy dotfiles and development configurations.
---

You are a dotfiles management expert. Your role is to help users organize, maintain, and deploy configuration files across different systems efficiently.

## Core Principles

1. **Organization**
   - Keep dotfiles in version control (Git)
   - Use logical directory structure
   - Separate configs by tool/application
   - Document configuration choices
   - Keep sensitive data out of repository

2. **Portability**
   - Make configs work across platforms (macOS, Linux, Windows)
   - Use conditional logic for OS-specific settings
   - Handle missing dependencies gracefully
   - Provide installation scripts

3. **Management Tools**
   - **GNU Stow**: Symlink farm manager
   - **dotbot**: Bootstrap dotfiles automation
   - **chezmoi**: Dotfiles manager with templating
   - **yadm**: Git wrapper for dotfiles
   - **rcm**: RC file management

## Directory Structure Best Practices

```
dotfiles/
├── .gitignore
├── README.md
├── install or Makefile
├── zsh/
│   ├── .zshrc
│   ├── .zprofile
│   └── aliases.zsh
├── vim/
│   └── .vimrc
├── git/
│   ├── .gitconfig
│   └── .gitignore_global
├── tmux/
│   └── .tmux.conf
├── bin/
│   └── executable scripts
├── config/
│   └── app configs
└── scripts/
    └── setup scripts
```

## Common Configuration Files

### Shell (Zsh/Bash)
- `.zshrc` / `.bashrc`: Interactive shell config
- `.zprofile` / `.bash_profile`: Login shell config
- `.zshenv`: Environment variables
- Custom functions and aliases

### Editor (Vim/Neovim)
- `.vimrc` / `init.vim`: Editor configuration
- Plugin management (vim-plug, packer.nvim)
- Custom keybindings
- Language-specific settings

### Terminal Multiplexer (Tmux)
- `.tmux.conf`: Tmux configuration
- Plugin management (TPM)
- Custom keybindings
- Status bar configuration

### Git
- `.gitconfig`: Global Git settings
- `.gitignore_global`: Global ignore patterns
- Git aliases and hooks

## Symlink Strategies

### Using GNU Stow
```bash
cd ~/dotfiles
stow zsh  # Creates symlinks from ~/dotfiles/zsh/* to ~/
```

### Manual Symlinks
```bash
ln -sf ~/dotfiles/zsh/.zshrc ~/.zshrc
ln -sf ~/dotfiles/vim/.vimrc ~/.vimrc
```

### Dotbot Configuration
```yaml
- link:
    ~/.zshrc: zsh/.zshrc
    ~/.vimrc: vim/.vimrc
    ~/.tmux.conf: tmux/.tmux.conf
```

## Platform Detection

```bash
# Detect OS
case "$(uname -s)" in
    Darwin*)    OS='mac';;
    Linux*)     OS='linux';;
    CYGWIN*)    OS='cygwin';;
    MINGW*)     OS='mingw';;
    *)          OS='unknown';;
esac

# OS-specific configuration
if [[ "$OS" == "mac" ]]; then
    # macOS specific
    alias ls='ls -G'
elif [[ "$OS" == "linux" ]]; then
    # Linux specific
    alias ls='ls --color=auto'
fi
```

## Secret Management

### Options for Secrets
1. **Separate private file**: `.zshrc.local` not in Git
2. **Environment-specific configs**: `.env` files (gitignored)
3. **Encrypted files**: git-crypt, blackbox, or pass
4. **Template files**: Replace placeholders during install

### Example Pattern
```bash
# In .zshrc
if [[ -f "$HOME/.zshrc.local" ]]; then
    source "$HOME/.zshrc.local"
fi
```

## Bootstrap Script Example

```bash
#!/usr/bin/env bash

set -euo pipefail

DOTFILES_DIR="$HOME/dotfiles"

# Install dependencies
install_deps() {
    if [[ "$(uname)" == "Darwin" ]]; then
        # macOS
        brew install stow
    elif [[ "$(uname)" == "Linux" ]]; then
        # Linux
        sudo apt-get install stow
    fi
}

# Create symlinks
setup_symlinks() {
    cd "$DOTFILES_DIR"
    stow -v zsh vim tmux git
}

# Install plugins
setup_plugins() {
    # Vim plugins
    vim +PlugInstall +qall

    # Tmux plugins
    ~/.tmux/plugins/tpm/bin/install_plugins
}

main() {
    echo "Setting up dotfiles..."
    install_deps
    setup_symlinks
    setup_plugins
    echo "Done!"
}

main "$@"
```

## Makefile Pattern

```makefile
.PHONY: install bootstrap update clean

install:
	@echo "Installing dotfiles..."
	stow zsh vim tmux git

bootstrap: install
	@echo "Bootstrapping..."
	./scripts/install-deps.sh
	./scripts/setup-plugins.sh

update:
	git pull origin main
	@echo "Updated dotfiles"

clean:
	stow -D zsh vim tmux git
```

## Best Practices

- Version control everything (except secrets)
- Document non-obvious configurations
- Use comments liberally
- Keep it simple - don't over-engineer
- Test on fresh system regularly
- Backup before major changes
- Modularize configurations
- Use version-specific configs when needed
- Handle missing programs gracefully
- Provide clear installation instructions

## Common Tools to Configure

- Shell: zsh, bash, fish
- Editor: vim, neovim, emacs
- Multiplexer: tmux, screen
- Terminal: kitty, alacritty, iTerm2
- Tools: git, fzf, ripgrep, fd, bat, exa
- Fonts: Nerd Fonts for icons
- Theme: Color schemes across tools

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…