Before you start
- A Mac with an Apple chip on macOS 15 or later is what this guide is written for. Older Macs and Intel Macs may work, but Homebrew does not support them and installs can be slow or fail.
- A Mac account that is an Administrator (System Settings, Users & Groups shows it).
- A Claude subscription (Pro or Max).
- A free GitHub account, with access to this repository. Accept the invitation from the email GitHub sent, or at https://github.com/notifications.
Working in the Terminal window
- Open it with Cmd+Space, type Terminal, and press Enter. If you tick wezterm in step 6, open WezTerm instead.
- Paste a command with Cmd+V and press Enter to run it.
- Run one block at a time. A command is finished when the line ending in
%(or❯) comes back. - When Terminal asks for your Mac password, type it. Nothing shows as you type; press Enter when you are done.
- Ctrl+C stops a command that is stuck.
- Your files are where you expect them: your resume in Downloads is
~/Downloads/resume.pdf, where~means your home folder. - Once Claude is installed (step 3), you can ask it to run any command in this guide instead of pasting it, except the ones that ask for your password. Claude can't type a password, so run those yourself.
Setup
- Terminal
Homebrew is the tool that installs the other tools. Paste the command from https://brew.sh, which is:
Terminal/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"It asks for your Mac password and waits for you to press Return (Enter); it may ask for the password again later. It may install Apple's Command Line Tools first, a large download that can take a while. macOS may also ask whether Terminal can reach folders such as Downloads; choose Allow. When it finishes, it prints a "Next steps" section with lines to run so that Terminal can find
brew(on a Mac with an Apple chip, they start withechoandeval). Copy and run the lines it prints, one at a time. Check with:Terminalbrew --version - Terminal
Obsidian keeps your notes. Chrome turns a resume into a PDF.
Terminalbrew install git gh jq brew install --cask obsidian google-chromeIf Obsidian or Chrome is already installed, brew says so; that is fine.
Open Obsidian once from Applications to check it starts; it must be version 1.9 or later. Don't open a vault yet.
- TerminalTerminal
curl -fsSL https://claude.ai/install.sh | bashThen tell Terminal where to find
claude, and close and reopen Terminal:Terminalecho 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrcRun
claude. Pick your Claude subscription when it asks how to log in, approve in the browser, and paste back any code it shows. Type/exitonce you see Claude's prompt. - Terminal
The login prints a one-time code and asks you to press Enter; press Enter in Terminal, even if you open the page yourself, because the login waits for it. Type the code in the browser, approve, and wait for
Logged in asin Terminal.Terminalgh auth login --hostname github.com --git-protocol https --web gh auth setup-git gh repo clone <owner>/leaven ~/leaven -- --branch "$(gh release view -R <owner>/leaven --json tagName -q .tagName)" -c advice.detachedHead=false<owner>is the account that invited you; the invitation names it. The last command downloads the newest finished version of the pack. - Terminal
It downloads its screens through
gh, so the GitHub login in the last step has to be done first.Terminalcd ~/leaven && ./install.shA full-screen installer opens. Type this one yourself, because Claude can't press keys on the screens. The first thing you see is the Leaven name rising on the screen. Press any key to skip it, then Enter to begin. The first time, a line says it is downloading the installer screens; wait for them to open. Q quits.

- Terminal
Each screen is a question; you can go back with Esc.
-
Who is this for? Pick "I'm new to the terminal" unless you know you want something else: press 1, or move with the arrow keys and press Enter. This sets the starting ticks on the next screen.
-
What should we set up? A checklist, already ticked for what you picked. Move with the up and down arrows, and press Space to tick or untick. Leave it as it is unless you want to change something. Your vault, its hooks and skills, and the plugins are always set up, so they are not on the list. There are seven rows, then job search. "I'm new to the terminal" ticks the first six and leaves workflow and job search unticked; "I build things" ticks workflow too. The rows are:
- zsh: a friendlier command line that suggests as you type.
- tools: handy helpers for finding files and reading them.
- mise: keeps the languages other tools run on up to date.
- statusline: a small bar in Claude Code showing what it is doing.
- playwright: lets Claude open a web browser and look at pages.
- wezterm: a fast, good-looking terminal app to work in.
- workflow: agents, review, and git rules for working on code.
- job search: a workspace for job applications and resumes. Tick it only if you are job hunting. It installs Node (which the tracker runs on) and poppler (which reads text out of PDFs) for you when they are missing.
If a line says mise is ticked because playwright needs
npx(a small tool that comes with Node), that is expected: leave it ticked. -
Where your notes go. The vault location is already filled in; press Enter to keep it. Then the question about backing up to GitHub; press Enter on "Yes, back up" unless you don't want a copy of your notes on GitHub.
-
Ready to set up. This lists what you picked. Press Enter to install. Press Q to cancel instead; nothing is installed and nothing changes, and you can run
./install.shagain later.
-
- Terminal
After the last screen the installer runs in plain text for a few minutes; it may take longer if you ticked mise, since Rust is the big download. It does not ask for your Mac password unless you ticked zsh and your login shell is not zsh; then it switches you to zsh and macOS asks for it. It:
- creates the vault, a real folder at
~/memory; - backs the vault up to a new private GitHub repo named
memory, if you said yes; from then on Claude saves each change there, so you never run git; - copies the hooks and skills into
~/.claude, merges~/.claude/settings.json, and writes a Memory section into~/.claude/CLAUDE.md(when either file changes, the old one is first copied beside it with.bak-and the time added to its name); - installs the plugins;
- installs the parts you ticked, and the job-search workspace if you ticked it;
- prints the path of the vault.
It leaves alone every setting you already had, and any skill or hook of yours that has the same name as one of the pack's; for those it prints
skipped. On a rerun it puts the pack's own skills and hooks back as released; if you edited one, your copy is saved first in~/.config/leaven/backup-<stamp>/. Keep your own under other names.If you ticked wezterm, close Terminal when it finishes and open WezTerm from Applications. Pin it to the Dock if you like: right-click its Dock icon, then Options, Keep in Dock. To add or drop a part later, run
./install.shagain: the checklist opens with your choices ticked. Unticking a part stops its updates and does not remove what is already installed. - creates the vault, a real folder at
- Obsidian
Choose Open folder as vault. In the file picker, press Cmd+Shift+H to go to your home folder, choose
memory, and open it. In Settings, Core plugins, turn on Bases and Daily notes. In Settings, Daily notes, set the new file location toDailyand the date format toYYYY-MM-DD. - Terminal
Claude asks before each change to Atlas.md and Bearing.md; say yes. Type
/exitto end a session.Terminalcd ~/memory && claudeAsk Claude:
Ask ClaudeFill in Atlas.md and Bearing.md with me.
Next, read how-it-works.md for what you just installed and how to use it.