Below the prompt is Claude Code's statusline, and one line of shell makes it
yours. It is prompt/, one piece of preen: a macOS
terminal and editor setup — kitty, zsh, tmux, Zed, Sublime Text — that checks
itself against your live config. Preen: to groom to your own standard.
Gruvbox Dark Hard where code runs — kitty, tmux, the statusline — and Gruvbox Light Hard where it is read — Zed, Sublime Text; Fira Code throughout, the Nerd Font build in the terminal.
Each piece installs with a curl … | bash line on its page, and
bash -s -- --dry-run in place of the final bash prints the plan for your
home and writes nothing. A real run makes every refusal before its first
write and saves what it replaces: a file of yours beside itself, System
Settings' values in a script that puts them back. Your config gains an
include line, a layer beneath it, or the keys the piece sets; a file with no
such seam is copied where you have none, or replaced. Each page says which.
| Piece | What it is |
|---|---|
prompt/ |
the picture above: Claude Code's statusline, drawn by cship, under starship's prompt |
terminal/kitty/ |
kitty, the terminal: with shell/, a text file rg or eza prints opens in Sublime Text when clicked, at rg's matching line |
shell/ |
zsh and readline: history searched by what you typed, and a > that refuses to overwrite |
terminal/tmux/ |
tmux for ssh: the prefix on C-Space, the mouse, true colour |
git/ |
git: pulls that rebase and diffs through delta; your name and email stay yours |
editor/zed/ |
Zed on the JetBrains keymap, with lazygit and tasks |
editor/sublime/ |
Sublime Text, with Terminus, its terminal, to match |
gh/ |
the GitHub CLI: ssh, delta, no telemetry |
macos/ |
System Settings, among them the Dock, Finder, the trackpad and the clock |
The statusline's plan comes first, then its install. With
cship 1.8.2 or newer, both first ask
whether to take starship.toml too and what to call your account; without
it, the dry run says how to get it, and the install stops before any write.
curl -fsSL https://raw.githubusercontent.com/gati3478/preen/v2.5.3/prompt/install.sh | bash -s -- --dry-runcurl -fsSL https://raw.githubusercontent.com/gati3478/preen/v2.5.3/prompt/install.sh | bashOn a Mac without Homebrew, install it first from brew.sh;
it brings the Command Line Tools git clone needs. The first block clones
this repository and prints bootstrap's plan, which asks nothing and writes
nothing; the second runs bootstrap and reads the result back.
git clone https://github.com/gati3478/preen ~/preen
cd ~/preen && ./bin/bootstrap --dry-run./bin/bootstrap
./bin/preen doctorbootstrap asks your name and email for git, then deploys every row of
manifest.tsv. The setup's page says what it does with
what it finds in the way, what changes, and how to update and leave.
Beside the pieces, the repository holds these; taste/
and bin/ each have a page of their own.
terminal/bat/ bat in the terminal's palette; the kitty and shell pieces copy it
terminal/ncdu/ ncdu in the terminal's palette; the shell piece copies it
ripgrep/ flags: hidden in, .git out, smart case, clickable matches; the shell piece copies it
ssh/ an Include for your own config, then the agent line; no hosts, taken only with the whole setup
bin/ bootstrap, and preen: apply and doctor
lib/ install.sh, the installers' shared half; shipped, the list that tells the setup's copies from yours
taste/ the author's preferences, as checks preen doctor --taste runs
manifest.tsv a row per deployed file: its live path, link or copy, permissions where set
CHANGELOG.md each release, and what its version number promises
LICENSE MIT
Fork or clone, keep manifest.tsv's format and the two verbs, preen apply
and preen doctor, and replace the rows and directories with your own; the
doctor's checks probe the tools the author runs, so cut what is not yours.
An installer piped from your fork fetches from this release unless
PREEN_SOURCE names your fork's tree, as a URL or file://.
These files are generated from a private repository, so open an issue rather than a pull request; what cannot ship stays there, and nothing here needs it.
MIT.