This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a sophisticated personal dotfiles repository built around dotdrop - a powerful dotfiles management system. The repository uses a modular, cross-platform approach to manage development environments across different hosts and operating systems.
- Entry Point:
./dotdrop.sh- Wrapper script for dotdrop execution with auto-updates - Configuration:
config.yaml- Central dotdrop configuration defining dotfiles, profiles, and deployment rules - Installation:
scripts/install-deps.sh- Comprehensive dependency installation for development environment - Dotfiles:
dotfiles/- All managed configuration files organized by category - Dotdrop:
dotdrop/- Git submodule pointing to https://github.com/deadc0de6/dotdrop
config.yaml- Dotdrop configuration with profilearmonge-laptopmanaging 20+ dotfilesdotdrop.sh- Main execution wrapper with profile pre-configurationscripts/install-deps.sh- Cross-platform dependency installer (macOS/Fedora)dotfiles/config/nvim/- Sophisticated Neovim configuration (see its own CLAUDE.md)
# Deploy all dotfiles to current system
./dotdrop.sh install
# Compare local files with stored dotfiles
./dotdrop.sh compare
# Import new dotfiles into repository
./dotdrop.sh import <file_path>
# Update stored dotfiles with local changes
./dotdrop.sh update <file_path>
# List available dotfiles and profiles
./dotdrop.sh files
./dotdrop.sh profiles# Install all development dependencies
./scripts/install-deps.sh
# Install specific components only
./scripts/install-deps.sh rust python nodejs
# Preview what would be installed (dry run)
./scripts/install-deps.sh --dry-run
# Force reinstall of components
./scripts/install-deps.sh --force
# Install with verbose logging
./scripts/install-deps.sh --verbose
# List available components
./scripts/install-deps.sh --listThe repository uses a single profile architecture:
- Profile:
armonge-laptop(configured in dotdrop.sh) - Absolute symlinks for real-time config updates
- Modular dotfiles organized by function (shell, git, nvim, etc.)
- Template support for host-specific configurations
Package Management:
- Python: uv (modern pip replacement)
- Node.js: nvm (version management)
- Rust: rustup (official toolchain)
- System: Homebrew (macOS), dnf (Fedora)
Core Tools:
- Shell: Bash with Starship prompt
- Editor: Neovim with LSP and AI integration
- Terminal: WezTerm
- CLI: bat, fzf, ripgrep, eza, fd, delta
macOS Support:
- Homebrew package management
- Native app installations (WezTerm, fonts)
- Platform-specific configurations
Linux Support (Fedora):
- dnf package management
- Build essentials for compilation
- Platform-specific tool alternatives
- Place file in desired location
- Import:
./dotdrop.sh import ~/.newconfig - Verify: Check
config.yamlfor new entry - Test:
./dotdrop.sh compareto verify
- Edit directly (files are symlinked)
- Update repository:
./dotdrop.sh update <dotfile> - Verify changes:
./dotdrop.sh compare
- Clone repository:
git clone <repo> dotfiles - Install dependencies:
./scripts/install-deps.sh - Deploy dotfiles:
./dotdrop.sh install - Verify setup:
./dotdrop.sh compare
- Uses absolute symlinks for immediate config updates
- Changes to dotfiles are reflected instantly
- No need to "sync" changes during development
The install script supports granular component selection:
all- Complete development environmentpackages- OS-specific package installationrust- Rust toolchain and cargo toolspython- Python with uv package managernodejs- Node.js with nvmfonts- JetBrains Mono Nerd Fontstarship- Modern shell prompt
The Neovim configuration is highly sophisticated with its own architecture:
- LSP support for 10+ languages
- AI integration with Copilot
- Modern plugin stack with Lazy.nvim
- Performance optimized with lazy loading
Refer to dotfiles/config/nvim/CLAUDE.md for detailed Neovim guidance.