Skip to content

Dbochman/dotfiles

Repository files navigation

Dotfiles

macOS dotfiles with extensive Claude Code customization - shell config, git, Homebrew, plus Claude commands, hooks, skills, and plugins for AI-assisted development.

Install on new machine

git clone git@github.com:Dbochman/dotfiles.git ~/dotfiles
~/dotfiles/install.sh

What's included

Shell & Git

  • .zshrc - Shell config with PATH and aliases
  • .gitconfig - Git user info, LFS, sensible defaults

Codex CLI

  • .codex/config.toml - Codex model and feature settings
  • .local/bin/codex-quick - Fast Codex CLI wrapper (medium reasoning)

Claude Code

  • .claude/CLAUDE.md - Global instructions for all projects
  • .claude/preferences.md - User preferences and working style
  • .claude/settings.json - Hooks config, enabled plugins
  • .claude/skills/ - 14 custom skills (debugging patterns, gotchas)
  • .claude/commands/ - Custom slash commands (rams, ui-skills, etc.)
  • .claude/hooks/ - Pre-tool hooks (no-rm safety, continuous learning)

SSH & Secrets (via 1Password)

  • ssh_config - Uses 1Password SSH Agent by default, with dedicated on-disk keys for a few Tailscale hosts
  • setup-1password.md - Guide for SSH keys and environment variables
  • docs/setup-devcontainer-ssh.md - Devcontainer aliases, connection path, and latency checks

SSH Keys

SSH keys are usually stored in 1Password and served via the SSH Agent. A few host-to-host Tailscale paths use dedicated on-disk keys such as ~/.ssh/id_work_mbp to bypass agent/keychain issues.

The devcontainer aliases are:

ssh devc              # Plain container shell
ssh lpu-kb-container  # Attach directly to the lpu-kb tmux session

See docs/setup-devcontainer-ssh.md for the connection path and troubleshooting notes.

Setup:

  1. Install 1Password desktop app
  2. Settings → Developer → Enable "SSH Agent"
  3. Settings → Developer → Enable "Integrate with 1Password CLI"
  4. Run install.sh (links ~/.ssh/config)

API Keys & Secrets

Secrets are stored in 1Password and accessed via op CLI. Never in dotfiles.

Install CLI:

brew install 1password-cli
op signin

Common references:

# OpenAI
export OPENAI_API_KEY=$(op read "op://Private/OpenAI API Key/password")

# GitHub
export GITHUB_TOKEN=$(op read "op://Private/GitHub Personal Access Token/token")

# Codex
export CODEX_API_KEY=$(op read "op://Private/API Credentials - Codex/credential")

Per-project secrets: See setup-1password.md for direnv integration.

Homebrew Packages

Install all packages from Brewfile:

brew bundle --file=~/dotfiles/Brewfile

To update Brewfile after installing new packages:

brew bundle dump --file=~/dotfiles/Brewfile --force
cd ~/dotfiles && git add Brewfile && git commit -m "Update Brewfile"

Sync Workflow

The sync.sh script manages synchronization between your local Claude Code config and this repo.

Check Status

./sync.sh              # Show what's synced vs local-only

Add Local Items to Repo

# Created a new skill locally? Add it to the repo:
./sync.sh add skill my-new-skill

# Same for commands and hooks:
./sync.sh add command my-command
./sync.sh add hook my-hook

Remove Items (Keep Local)

# Remove from repo but keep your local copy:
./sync.sh remove skill experimental-skill

Sync with Remote

# Pull latest changes and reinstall:
./sync.sh pull

# Push your changes:
./sync.sh push "Add new skill for X"

Undo Last Operation

./sync.sh undo         # Restore from last backup

Validate Configuration

./sync.sh validate     # Check all skills, commands, hooks

Flags

  • -n, --dry-run: Preview changes without making them
  • -f, --force: Replace conflicts without prompting

Adding new dotfiles

  1. Copy the file to ~/dotfiles/
  2. Add a symlink line to install.sh
  3. Commit and push

About

macOS dotfiles with extensive Claude Code customization - shell config, git, Homebrew, plus Claude commands, hooks, skills, and plugins for AI-assisted development.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors