Repository layout and file-placement conventions are documented in CLAUDE.md (Architecture â–¸ Stow Package Structure).
-
Install xcode-select (for basically everything…)
xcode-select --install
-
Install Homebrew
/bin/bash -c \ "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" eval "$(/opt/homebrew/bin/brew shellenv)" # to make brew available before we load `~/.zshrc` that has "$PATH" brew update brew install git stow
-
Clone this repository:
[[ -d ~/Repos ]] || mkdir ~/Repos cd ~ && git clone git@github.com:mosheavni/dotfiles.git .dotfiles && cd .dotfiles
-
Install antidote
git clone --depth=1 https://github.com/mattmc3/antidote.git ${ZDOTDIR:-~}/.antidote -
Stow the .dotfiles and reload the shell:
./start.sh source ~/.zshrc
-
Install and update everything (brew, asdf, pip, npm, etc.):
./updates.sh
-
Open Wezterm and start using a real terminal.
-
???
-
PROFIT
Install requires Neovim 0.10+. Always review the code before installing a configuration.
Clone the repository and install the plugins:
git clone git@github.com:mosheavni/dotfiles ~/.config/mosheavni/dotfilesOpen Neovim with this config:
NVIM_APPNAME=mosheavni/dotfiles/nvim/.config/nvim nvim-
Adjust dock and keyboard settings
-
Download and install Docker
-
Change clipy (for snippets) and maccy (for clipboard) shortcuts, and load snippets
-
Mac App Store apps (Magnet, OneNote) install via
brew bundle— sign into the App Store first
Claude Code skills extend the /skill-name slash command system. Skills live in ~/.claude/skills/.
./ai/install-skills.shVerify with npx skills ls -g.
Native macOS notifications for unread GitHub notifications, polled every 60s by a launchd agent. Lives in the automations stow package (.local/bin/gh-notify.sh plus the agent plist).
One-time setup on a new machine (after ./start.sh and ./updates.sh):
gh-notify-setup.shThe script is interactive (uses gum) and idempotent — it installs any missing deps (gh, terminal-notifier, gum), ensures the stow symlinks, checks gh auth + token scope, (re)loads the launchd agent, and fires a test banner. Safe to re-run anytime.
If no banner appears, allow it under System Settings â–¸ Notifications â–¸ terminal-notifier (style: Alerts/Banners).
Manage the agent:
launchctl bootout gui/$(id -u)/com.mosheavni.ghnotify # pause
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.mosheavni.ghnotify.plist # resume
~/.local/bin/gh-notify.sh # run once
tail -f ~/.cache/gh-notify/error.log # debugRun ./updates.sh — it handles brew, asdf, pip, npm, GitHub releases, and build-from-source tools.
rm -rf ~/.local/share/nvim/treesitterThen reopen nvim and run :TSUpdate