3.3 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Repository Overview
This is a personal dotfiles configuration repository containing shell configurations, editor settings, git configuration, and development tools setup for macOS and Unix systems.
Setup and Installation
The main setup script is init.sh. Run it to symlink configuration files to their proper locations:
./init.sh
This script:
- Creates symlinks from files in this repo to
~/.filename - Backs up existing dotfiles to
~/original-dot-files/ - Excludes certain files (init.sh, Gemfile, Gemfile.lock, zsh/, Brewfile)
Package Management
Install development tools and applications using Homebrew:
brew bundle install
The Brewfile contains essential development tools like:
- CLI tools: gh, jq, ripgrep, terraform, awscli
- Development environments: rbenv, direnv
- Utilities: diff-so-fancy, parallel, llm
Shell Configuration
The zsh configuration is modular and located in:
- Main config:
zshrc - Functions:
zsh/functions/ - Completions:
zsh/completions/ - Device control utilities:
zsh/devicectl.sh
Key features:
- Custom prompt with git integration (
prompt sjs) - Extensive git aliases (a, c, co, d, s, etc.)
- Smart directory navigation with auto-cd
- History management with 2M line buffer
- Ruby/rbenv and Python/pyenv integration
- iOS device control functions via
devicectl.sh
Notable aliases:
cc=claude --dangerously-skip-permissions(Claude Code)be=bundle execdoc=docker-compose
Editor Configurations
Emacs (emacs file)
- Comprehensive Emacs configuration with language-specific modes
- Custom key bindings optimized for macOS
- Support for Ruby, JavaScript, Python, C, Haskell, Lisp
- TextMate-style project navigation
- Custom themes and visual settings
Vim (vimrc file)
- Dark theme with syntax highlighting
- 4-space indentation with smart tabbing
- Folding support with marker-based folds
- Language-specific auto-commands for C, Python, PHP, etc.
- Custom key mappings for buffer navigation
Git Configuration
The gitconfig contains:
- Signed commits with SSH keys
- Enhanced diff output with
diff-so-fancy - Automatic rebase and fast-forward-only pulls
- Advanced merge and diff algorithms
- Pre-commit hook that runs
git diff --check
iOS Development Tools
The zsh/devicectl.sh provides functions for iOS device management:
devicepid <device> <process>- Find process PID on devicedevicekill <device> <process>- Kill process on devicerespring <device>- Restart SpringBoarddevicereboot <device>- Reboot device
File Structure
Key configuration mappings:
zshrc→~/.zshrcvimrc→~/.vimrcemacs→~/.emacsgitconfig→~/.gitconfiggitignore→~/.gitignore(global)irbrc→~/.irbrcgemrc→~/.gemrcackrc→~/.ackrc
Development Workflow
When making changes:
- Edit files directly in this repository
- Test changes by sourcing or reloading configs
- Commit changes with descriptive messages
- The pre-commit hook will check for whitespace issues
The configuration supports both macOS and Linux environments with platform-specific adaptations throughout the shell and editor configs.