Personal macOS dotfiles managed by mise dotfiles.
This repository is intended to live at ~/.dotfiles. The live home-directory
files are symlinks declared in .config/mise/config.toml, with
dotfiles.root = "~/.dotfiles".
- Shell startup:
.zshrc,.zshenv - Git defaults:
.gitconfig - Mise runtime, bootstrap, macOS defaults, and dotfile mapping:
.config/mise/config.toml - Neovim configuration:
.config/nvim - Prompt configuration:
.config/starship.toml - Ghostty configuration:
Library/Application Support/com.mitchellh.ghostty - Lazygit configuration:
Library/Application Support/lazygit - Codex configuration, rules, skills, keybindings, browser config, and selected
automations under
.codex - Agent plugin marketplace metadata under
.agents - Local personal plugins under
plugins
The current setup uses symlinks for managed dotfiles.
Install mise, then clone this repository to ~/.dotfiles. The mise config is
self-managing: the [dotfiles] table links ~/.config/mise/config.toml from
this repo, so the first run does not need a hand-maintained config symlink.
On the first run, point mise at the cloned config and bootstrap from it:
mise --config ~/.dotfiles/.config/mise/config.toml bootstrapAfter that, normal mise commands can use the linked config:
mise install
mise dotfiles applymise bootstrap applies dotfiles explicitly, including the self-managed mise
config, and also handles the Homebrew packages and macOS defaults declared under
[bootstrap.*].
Use mise as the source of truth:
mise dotfiles status
mise dotfiles applymise dotfiles status shows each configured target, source, mode, and whether it
is applied. mise dotfiles apply creates or updates the managed symlinks.
Use mise dotfiles add so mise updates the [dotfiles] configuration instead
of hand-maintaining links:
mise dotfiles add ~/.path/to/fileAfter adding a file, verify the result:
mise dotfiles status
git status --short.zshenvinitializes Homebrew, pnpm, mise, worktrunk, and common PATH entries..zshrcconfigures interactive shell behavior, completions, aliases, zoxide, starship, atuin, and zsh syntax highlighting.- Neovim is based on LazyVim with local plugin overrides in
.config/nvim/lua/plugins. - Codex skills and rules are tracked here intentionally; generated plugin cache directories are not.
Do not commit credentials, tokens, private keys, production data, shell history,
or machine-local state. The repository intentionally ignores Lazygit's mutable
state file at Library/Application Support/lazygit/state.yml.