npx skills add dmmulroy/.dotfilesREADME
Dotfiles
A comprehensive, automated dotfiles management system for macOS development environments. Features a powerful CLI tool for setup, maintenance, and AI-powered development insights.
Overview
This repository contains my personal development environment configuration, managed through a custom CLI tool called dot. It uses GNU Stow for symlink management, Homebrew for package installation, and includes configurations for Fish shell, Neovim, Tmux, Git, and other essential development tools.
Key Features
- š One-command setup - Complete development environment in minutes
- š¤ AI Integration - OpenCode for commit summaries and assistance
- š¦ Resilient Package Management - Continues installation even if packages fail
- š Health Monitoring - Comprehensive environment diagnostics
- š ļø Modular Design - Separate work and personal configurations
Quick Start
# Clone the repository
git clone https://github.com/dmmulroy/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Full setup (installs everything)
./dot init
# Or customize the installation
./dot init --skip-ssh --skip-font
After installation, the dot command will be available globally for ongoing management. Running dot without arguments shows help.
Repository Structure
~/.dotfiles/
āāā dot # Main CLI tool
āāā home/ # Configuration files (stowed to ~)
ā āāā .config/
ā ā āāā fish/ # Fish shell configuration
ā ā āāā git/ # Git configuration
ā ā āāā nvim/ # Neovim configuration
ā ā āāā tmux/ # Tmux configuration
ā ā āāā ...
ā āāā .ideavimrc # IntelliJ IDEA Vim config
āāā packages/
ā āāā bundle # Base Brewfile
ā āāā bundle.work # Work-specific packages
āāā CLAUDE.md # Instructions for AI assistants
āāā README.md # This file
The dot CLI Tool
The dot command is a comprehensive management tool for your dotfiles. It handles everything from initial setup to ongoing maintenance and provides AI-powered insights.
Installation Commands
dot init - Initial Setup
Complete environment setup with all tools and configurations.
# Full installation
dot init
# Skip SSH key generation
dot init --skip-ssh
# Skip font installation
dot init --skip-font
# Skip both SSH and font setup
dot init --skip-ssh --skip-font
What it does:
- Installs Homebrew (if not present)
- Installs packages from Brewfiles
- Creates symlinks with GNU Stow
- Installs Bun runtime
- Installs OpenCode CLI via Homebrew (with native installer/bun/npm fallback)
- Generates SSH key for GitHub (optional)
- Installs MonoLisa font (optional)
- Sets up Fish shell with plugins
Maintenance Commands
dot update - Update Everything
dot update
- Pulls latest dotfiles changes (auto-detects jj vs git)
- Updates Homebrew packages
- Re-stows configuration files
dot doctor - Health Check
dot doctor
Comprehensive diagnostics including:
- ā Homebrew installation
- ā Essential tools (git, nvim, tmux, node, etc.)
- ā OpenCode installation method and functionality
- ā Fish shell configuration
- ā PATH configuration
- ā ļø Broken symlinks detection
- ā ļø Missing dependencies
dot check-packages - Package Status
dot check-packages
Shows which packages are installed vs. missing from your Brewfiles.
dot retry-failed - Retry Failed Installations
dot retry-failed
Attempts to reinstall packages that failed during initial setup.
AI-Powered Features
dot summary - Commit Analysis
Uses OpenCode to generate intelligent summaries of recent git commits.
# Summarize last 3 commits (default)
dot summary
# Summarize specific number of commits
dot summary -n 5
# Include file diffs for detailed analysis
dot summary -d
# Verbose mode with commit details
dot summary -v
# Combine options
dot summary -n 10 -d -v
Example Output:
=> Summary of Recent Changes
Development Focus: Recent work centers on improving the diagnostic navigation
system in Neovim, updating deprecated API calls to use modern vim.diagnostic.jump()
functions. This includes better error handling and user experience improvements.
Technical Patterns: The commits show incremental configuration refinements
with a focus on tooling updates and environment optimization...
Performance & Development Tools
dot benchmark-shell - Fish Shell Performance Benchmarking
# Run 10 benchmarks (default)
dot benchmark-shell
# Run specific number of benchmarks
dot benchmark-shell -r 20
# Show verbose output with individual timings
dot benchmark-shell -v
# Combine options
dot benchmark-shell -r 15 -v
Measures Fish shell startup performance with detailed analysis:
- High-precision timing via Python3 or Perl
- Performance assessment with color-coded results (excellent ā¤50ms, good ā¤100ms, fair ā¤200ms)
- Optimization tips for sl
...