Personal dotfiles for my own development environment.
- Shell:
zsh - Terminal multiplexer:
tmux - Editor:
neovim - Tool/package management:
mise zshplugin management:sheldon
The setup scripts are designed around this stack.
mise loads mise/config.toml as the base config and switches environment-specific config automatically:
- Linux:
mise/config.linux.toml - WSL:
mise/config.wsl.toml - macOS:
mise/config.macos.toml
On macOS, package bootstrap is handled with Homebrew and brew/Brewfile.
git clone https://github.com/daisukekobayashi/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./setup.sh all./setup.sh helpMain subcommands.
./setup.sh all./setup.sh links./setup.sh packages./setup.sh post
Package step filters.
./setup.sh packages --only tmux,luarocks./setup.sh packages --skip quarto./setup.sh packages --dry-run./setup.sh all --reload-shell
Optional environment variables.
SETUP_HOMESETUP_TMPDIRSETUP_DOTFILES_ROOTSETUP_DRY_RUN(0or1)SETUP_MISE_STRICT(0or1, default:0)
Example.
SETUP_HOME=/tmp/dotfiles-home SETUP_DRY_RUN=1 ./setup.sh all
./setup.sh all --reload-shell./setup.sh links also installs generated rule files for Codex, Gemini, and Claude.
Third-party skills are tracked in skills-lock.json.
Custom skills live in skills/.
./setup.sh skills restores third-party skills into .agents/skills, symlinks custom skills from skills/, wires ~/.agents/skills and ~/.claude/skills to that generated directory, and removes a stale ~/.gemini/skills link because Gemini already reads ~/.agents/skills.
.agents/ is a generated restore target and is intentionally ignored by git.
Run setup tests with bats.
bats testsStatic checks.
shellcheck setup.sh lib/common.sh setup/*.sh tests/helpers/*.bash tests/*.bats
bash -n setup.sh lib/common.sh setup/*.sh tests/helpers/*.bash