Personal terminal environment for macOS — Ghostty, tmux, and modern CLI tools, all themed with Catppuccin Mocha.
| Tool | Replaces | What it does |
|---|---|---|
| Ghostty | Terminal.app | GPU-accelerated terminal emulator |
| tmux | — | Terminal multiplexer with session persistence |
| Starship | default prompt | Minimal prompt showing directory, git, command duration |
| eza | ls |
File listing with icons and colors |
| bat | cat |
Syntax highlighting and line numbers |
| delta | git diff |
Beautiful side-by-side diffs |
| fzf | Ctrl+T | Fuzzy finder for files and more (Ctrl+R taken by atuin) |
| atuin | Ctrl+R |
Encrypted shell history sync across all machines (self-hosted or Atuin Cloud) |
| Bitwarden Desktop / rbw | ssh-agent / secret store | SSH keys + passwords synced from self-hosted Vaultwarden. Built-in SSH agent on both macOS (Desktop app) and Linux (rbw). |
| zoxide | cd |
Smart directory jumping that learns your habits |
| glow | — | Render markdown beautifully in the terminal |
| nano | macOS nano | Modern nano with syntax highlighting |
| gh | — | GitHub CLI |
All visual tools use the Catppuccin Mocha color scheme.
git clone https://github.com/sebstrgg/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.shThe install script:
- Installs Homebrew (if missing)
- Installs all packages from the Brewfile
- Symlinks all config files to their expected locations
- Installs Catppuccin themes for bat, delta, and zsh-syntax-highlighting
- Sets up TPM (tmux plugin manager)
- Optionally authenticates with GitHub CLI
After install, open Ghostty and press Ctrl+a I (capital i) to install tmux plugins, then Ctrl+a r to reload.
SSH keys and secrets sync from self-hosted Vaultwarden (or Bitwarden cloud). Full setup + migration runbook: docs/bitwarden-rbw-setup.md.
Atuin syncs encrypted shell history across all machines. The installer prompts for your server URL (self-hosted or Atuin Cloud) and handles registration interactively.
First device (create the account):
atuin register -u <username> -e <email>
atuin key # PRINT AND SAVE — needed on every other device
atuin syncAdditional devices (join the existing account):
atuin login -u <username> -k <key-from-first-device>
atuin import auto # import local shell history into Atuin
atuin syncCtrl+R searches across all machines. Up-arrow stays session-local (configured in atuin/config.toml).
These commands now work differently (better):
| You type | What happens now |
|---|---|
cat file.py |
Syntax-highlighted output with line numbers (bat) |
ls |
Colored listing with file type icons (eza) |
ll |
Detailed listing with icons (eza -la) |
lt |
Tree view, 2 levels deep (eza --tree) |
git diff |
Side-by-side diff with Catppuccin colors (delta) |
git log -p |
Syntax-highlighted patches (delta) |
cd projects |
Jumps to your most-visited matching directory (zoxide) |
Ctrl+R |
Fuzzy search through shell history, synced across machines (atuin) |
Ctrl+T |
Fuzzy search for files (fzf) |
glow README.md |
Rendered markdown in the terminal |
nano file.py |
Syntax-highlighted editing |
catp file.py |
Like cat but with scrollable pager |
gs, gl, gd |
git status, git log, git diff shorthand |
.., ..., .... |
Move up 1/2/3 directory levels |
ta, tn, tls, tk |
tmux attach / new / list / kill-session |
dotfiles/
├── ghostty/config Ghostty terminal config
├── tmux/
│ ├── tmux.conf tmux config (prefix: Ctrl+a)
│ └── cheatsheet.sh Ctrl+a ? cheat sheet popup
├── starship/starship.toml Starship prompt config
├── zsh/.zshrc Shell config (aliases, plugins, tool init)
├── zsh/.zshrc.local.example Template for machine-local overrides (gitignored)
├── git/
│ ├── .gitconfig Git config (delta, identity)
│ └── catppuccin.gitconfig Catppuccin Mocha theme for delta
├── bat/
│ ├── config bat config (theme)
│ └── themes/ Catppuccin Mocha .tmTheme
├── nano/.nanorc nano config
├── vim/.vimrc vim config
├── zsh-syntax-highlighting/ Catppuccin theme for zsh highlighting
├── scripts/doctor.sh Drift detection & repair tool (run: dots-doctor)
├── Brewfile All Homebrew dependencies
└── install.sh Bootstrap script
Configs are symlinked from this repo into your home directory. Apps that rewrite
their own config atomically (Claude Code's settings.json) are seeded
(copied) instead, since they'd break a symlink. Two commands keep things healthy:
dots-doctor # check symlinks, PATH, portability — exits non-zero on drift
dots-doctor --fix # back up + re-link drifted configs, seed missing onesAliases dots, dots-doctor, and dots-update are defined in .zshrc.
Installer-managed blocks (bun, shell completions, the claude-auto-retry
wrapper, etc.) live in ~/.zshrc.local, not the tracked .zshrc. This
keeps installers that append to your rc from corrupting the committed file.
The first install seeds it from zsh/.zshrc.local.example; edit it freely.
These integrations are user-wide for Claude Code and Codex, across projects on the configured machine. Start a new agent session after installation. Each project keeps its own graph and planning artifacts; global installation does not create a graph for every project or configure other machines automatically.
The shared engineering workflow selects Matt Pocock playbooks from the work's current phase. Unresolved decisions trigger grilling; substantial agreed work gets a spec and, when needed, delivery tickets. Small, settled tasks stay direct. The orchestrator reads manual-only upstream playbooks as references under Sebastian's standing authorization, so their slash commands need no metadata patches or plugin-cache edits. External publication still follows the user's approval rules; reviewable drafts come first. Existing decisions satisfy matching workflow checkpoints.
Matt's library is a separate global dependency, currently shared at
~/.agents/skills, with runtime/plugin installations as a fallback. The dotfiles
installer links the orchestrator and global pointers; it does not install or
upgrade Matt's library. To disable orchestration, remove the
engineering-workflow links from both runtimes, its Claude rule, and its Codex
global instruction pointer. Keep private global instructions aligned: remove
older clauses requiring explicit invocation of these workflows.
dots-doctor checks the shared skill links and RTK configuration, and
dots-doctor --fix repairs those links if they drift.
graphify-navigation is a shared Claude/Codex skill for using existing graphs
on architecture and dependency questions. It checks the indexed corpus first,
queries narrowly, and verifies current sources. Missing or unidentified graphs
fall back to ordinary search; partial graphs only help locate current sources.
The separately installed upstream graphify skill
continues to own explicit builds and semantic extraction; its installation is
not replaced by the dotfiles installer. The freshness helper uses the installed
Graphify CLI's Python interpreter without running a package manager.
RTK is installed through the Brewfile. Agents follow RTK guidance for verbose local validation, without a command-rewrite hook. Configuration keeps telemetry off, retains the last 20 raw outputs per output directory (up to 16 MiB each), and tracks local output savings for 30 days. Start a new agent session after setup so it discovers the navigation skill and instructions.
install.sh links the shared skill and RTK configuration. To disable this
integration, remove the graphify-navigation links in ~/.claude/skills and
~/.codex/skills, the Claude Graphify/RTK rules, and the corresponding navigation
and RTK pointers from your global agent instructions. RTK itself can be removed
with brew uninstall rtk; no hook or shell alias needs undoing.
Verify graph coverage handling locally with:
uv tool run --offline --no-cache --from graphifyy python -m unittest discover \
-s agents/skills/graphify-navigation/scripts -p 'test_*.py'dots-update # git pull ~/dotfiles (alias defined in .zshrc)
dots-doctor --fix # re-link any changed configs, seed missing ones./install.sh is still the full re-run path (idempotent, safe any time), but
after a routine git pull you usually only need dots-doctor --fix.
Uses JetBrains Mono Nerd Font — installed automatically via the Brewfile. Required for eza icons and Starship symbols.
Press Ctrl+a ? inside tmux to see the full cheat sheet, or see tmux/cheatsheet.sh.
- Catppuccin — color scheme across all tools
- Built with Claude Code