Skip to content

Repository files navigation

dotfiles

Personal dotfiles for macOS. Configs for my terminal, shell, multiplexer, and AI coding tools (Claude Code, Codex), linked into place with a small shell script.

These are tuned for my own machine and contain some hard-coded paths and personal choices. Read and borrow freely, but don't expect them to work as-is.

What's inside

PathToolLinked to
.config/fish/config.fishfish (interactive shell)~/.config/fish/config.fish
.zshenvzsh (login shell, PATH setup)~/.zshenv
.wezterm.luaWezTerm terminal~/.wezterm.lua
.config/ghostty/configGhostty terminal~/.config/ghostty/config
.config/herdr/config.tomlherdr (multiplexer)~/.config/herdr/config.toml
.config/zellij/config.kdlZellij (multiplexer)~/.config/zellij/config.kdl
.config/git/ignoreGit global ignore~/.config/git/ignore
.claude/Claude Code (settings, statusline, skills)~/.claude/…
.codex/rules/command-policy.rulesCodex CLI command policy~/.codex/rules/…
scripts/check-codex-policy.shCodex command-policy validationRun manually from this repo

Requirements

macOS. This repo only links config files; it does not install anything, so the tools above must be installed separately. The terminal configs also expect the PlemolJP35 Console font and the fish Pure prompt.

Install

chmod u+x dotfilesLink.sh
./dotfilesLink.sh

The script symlinks the files from this repo into your home directory, so edits you make here take effect immediately. A missing source file is skipped with a warning instead of failing the whole run.

Shell layout

zsh is the login shell and only sets up PATH (.zshenv); fish is the interactive shell. Terminals start a login shell first so PATH is resolved, then hand off to fish (WezTerm) or a multiplexer (Ghostty → herdr). Running the login shell by name keeps the setup working on both Intel and Apple Silicon without hard-coding install locations.

Claude Code config is opt-in

~/.claude/ collects session history, transcripts, caches, and credentials, so this public repo ignores the directory by default and tracks only the files I chose to share: settings.json, the statusline script, and a few skills. See .claude/.gitignore for the allow-list.

Codex config scope

This repository intentionally manages only the durable Codex command policy in .codex/rules/command-policy.rules. It does not link ~/.codex/config.toml: the Codex app updates that file with machine-specific settings, plugin state, MCP configuration, project trust entries, and other generated values.

If the global configuration is ever split into a stable public profile, the best candidates to manage are approval_policy, approvals_reviewer, and sandbox_mode. Keep model/reasoning preferences, plugin and MCP settings, project paths, notifications, desktop preferences, marketplaces, and hook state machine-local. Use scripts/check-codex-policy.sh after changing the command policy.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages