Used with my local dev environment.
git clone git@github.com:jmeridth/dotfiles.git ~/dotfiles
cd ~/dotfiles
./setupThis will:
- Symlink config files to your home directory
- Symlink shared agent instructions and Claude config to your home directory
- Install packages via Homebrew (macOS) or apt (Debian)
- Install oh-my-zsh
- Install Claude Code marketplaces and plugins (skipped if
claudeis not installed)
My Claude Code skills no longer live here. They moved to their own marketplace repo, jmeridth/skills, and install as a plugin so they work in every repo without symlinking.
claude plugins marketplace add jmeridth/skills
claude plugins install jmeridth-skills@jmeridthUpdate later with:
claude plugins marketplace update jmeridthconfigs/claude/settings.json is intentionally untracked. Claude Code writes
plugin and marketplace state into it at runtime, so tracking it risks leaking
private marketplace refs into this public repo. Instead:
configs/claude/settings.json.example(tracked) holds the public-safe baseline.scripts/install-claude-plugins.shcopies it tosettings.jsonon fresh machines.- Public marketplaces and plugins are listed in
scripts/install-claude-plugins.shand installed via theclaudeCLI. - Private marketplaces and plugins go in
~/.claude-plugins.local(never committed, lives in$HOMEoutside this repo). The install script sources it if present, soadd_marketplaceandinstall_pluginare available:
# ~/.claude-plugins.local
add_marketplace "some-org/private-marketplace"
install_plugin "some-plugin@some-marketplace"setup # Entry point
scripts/
detect-os.sh # OS and hostname detection
install-packages.sh # Brew/apt package installation
install-tools.sh # oh-my-zsh
install-claude-plugins.sh # Claude Code marketplaces and plugins
link-dotfiles.sh # Symlink configs to ~/
configs/ # Dotfiles and tool configs
AGENTS.md # Shared global agent instructions
Brewfile # Common Homebrew packages
Brewfile.work # Work-specific packages
Brewfile.personal # Personal-specific packages
Cheers, JM