You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+39-8Lines changed: 39 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,21 @@ One repo to carry an entire development environment between machines. Everything
16
16
17
17
---
18
18
19
+
### Quick Start
20
+
21
+
```bash
22
+
xcode-select --install
23
+
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply Braden1996
24
+
```
25
+
26
+
First apply can take a few minutes on a fresh machine because it may install Homebrew, Brew packages, and `mise` runtimes.
27
+
28
+
### Design Goals
29
+
30
+
-**Fast shell startup** — cache generated init for `starship`, `fzf`, and `zoxide`, prefer `mise` shims over full shell hooks, and keep shell config modular.
31
+
-**Portable between laptops** — detect Homebrew prefix dynamically, template only the parts that actually vary by machine, and route work Git identity by remote org instead of hardcoded checkout paths.
32
+
-**Keep local state local** — SSH host config, auth state, generated keys, and other machine-bound setup stay outside the tracked repo.
33
+
19
34
### New Machine Setup
20
35
21
36
#### Prerequisites
@@ -59,7 +74,7 @@ You'll be prompted for these values (stored locally, never committed):
59
74
60
75
-**Homebrew** is installed if missing (with Apple Silicon detection)
61
76
-**Packages** are installed via Brewfile — shell tools, editors, `mise`, `biome`, `jq`, 1Password CLI, Ghostty
62
-
-**Runtimes** are installed via `mise` using the global Node/Python defaults
77
+
-**Runtimes and global tools** are installed via `mise` using the global Node/Python/Biome defaults
63
78
-**Configs** are templated and written to `~` — git, zsh, fish, starship, editors, terminal, tmux
64
79
-**TPM** (tmux plugin manager) is cloned if not present
65
80
-**Post-setup checklist** runs and flags anything that still needs manual attention
@@ -97,13 +112,21 @@ Then re-run `chezmoi init` to set the key ID in your config.
97
112
-**Neovim plugins** — open nvim and run `:PlugInstall`
98
113
-**SSH config** — keep `~/.ssh/config` local-only and unmanaged by chezmoi
99
114
100
-
#### 5. Verify
115
+
#### 5. What stays local
116
+
117
+
-**SSH host config** — `~/.ssh/config` is intentionally unmanaged so work- and machine-specific hosts do not leak into the repo
118
+
-**Auth state** — `op signin`, SSH agent state, and GPG agent state remain local to the machine
119
+
-**Secrets and keys** — private keys are never stored in the repo; only public identifiers like GPG key IDs are prompted into local chezmoi data
120
+
-**Fonts and app state** — fonts, editor extensions, and login sessions still need a one-time local install/sign-in
121
+
122
+
#### 6. Verify
101
123
102
124
```bash
103
125
ssh -T git@github.com # SSH works
104
126
echo"test"| gpg --clearsign # GPG signing works
105
127
zsh-check-deps # all tools installed
106
128
fish-check-deps # fish prompt/tooling dependencies installed
129
+
chezmoi verify # applied files match the target state
107
130
```
108
131
109
132
---
@@ -112,7 +135,7 @@ fish-check-deps # fish prompt/tooling dependencies installed
112
135
113
136
<table>
114
137
<tr><td><b>Shell</b></td><td>zsh, fish, antidote, starship prompt, fzf, zoxide, bat, eza, yazi</td></tr>
<summary><b>Fish without a plugin manager</b></summary>
188
+
<br/>
189
+
Fish uses native <code>conf.d</code> autoloading plus cached init output for <code>starship</code>, <code>fzf</code>, and <code>zoxide</code>. Custom helpers and Nx completions live in-repo instead of depending on a runtime plugin manager.
Run <code>zsh-check-deps</code> to verify required tools (starship, fzf) and optional ones (eza, bat, yazi, zoxide, antidote) with color-coded output and install hints.
207
+
Run <code>zsh-check-deps</code> or <code>fish-check-deps</code> to verify required tools (starship, fzf, mise) and optional ones (eza, bat, yazi, zoxide) with install hints.
179
208
</details>
180
209
181
210
### Structure
@@ -193,11 +222,12 @@ Run <code>zsh-check-deps</code> to verify required tools (starship, fzf) and opt
0 commit comments