k8o の macOS 環境設定。chezmoi で管理する。
| ディレクトリ / ファイル | 展開先 | 内容 |
|---|---|---|
dot_agents/ |
~/.agents/ |
Claude Code / Codex 共有の資産。スキル集と security-hooks(TypeScript 製フック) |
dot_claude/ |
~/.claude/ |
Claude Code 設定。settings.json、CLAUDE.md、statusline、security-hooks とスキルへの symlink |
dot_codex/ |
~/.codex/ |
Codex CLI 設定。config.toml(テンプレート)、AGENTS.md、プロファイル別設定 |
dot_config/ |
~/.config/ |
mise / fnox / zsh / ghostty / starship / pnpm |
dot_local/bin/ |
~/.local/bin/ |
dotfiles-check.sh(更新通知キャッシュの維持) |
run_once_*.sh run_after_*.sh |
— | chezmoi apply 時に実行されるスクリプト |
.chezmoiignore に載っているファイル(この README、package.json などリポジトリ運用専用のファイル)はホームに展開されない。
-
Homebrew を入れて、chezmoi と mise を導入する。
brew install chezmoi mise
-
chezmoi を初期化し、マシンのプロファイルを設定する。
chezmoi init k35o/dotfiles
~/.config/chezmoi/chezmoi.tomlを作成する(profileはテンプレートの分岐に使う。個人機はpersonal):[data] profile = "personal"
-
適用してグローバルツールを入れる。
chezmoi apply mise install
-
fnox の age 秘密鍵を macOS キーチェーンに登録する(シークレット復号に必須):
security add-generic-password -s fnox -a age-key -w '<AGE-SECRET-KEY>'鍵をファイル(
age.txt)として置かない。万一生成されても.chezmoiignoreが commit を防ぐ。 -
zsh の起動ファイル(
~/.zshrcなど)は現状 chezmoi 管理外。~/.zshrcに以下を追記して管理下の設定を読み込む:source ~/.config/zsh/aliases.zsh
秘密は fnox で管理し、エージェントのシェルには常駐させない。
- tier1(
[secrets]: 日常使う API キー):fnox exec -- <command>。個人機の対話シェルでは起動時に自動ロードされる - tier2(
[profiles.bot]: GitHub App 秘密鍵などの機密):fnox exec -P bot -- <command>
age の identity はキーチェーン(service fnox / account age-key)から fnox-activate が読み出す。
dsエイリアス =chezmoi update --apply(リポジトリを pull して適用)dotfiles-check.shが1時間ごとに upstream との差分コミット数を~/.cache/dotfiles-notify/countにキャッシュし、starship のプロンプトと Claude Code の statusline にdotfiles ⇣Nとして表示される
pnpm install
pnpm check # lint + format (vite-plus)
cd dot_agents/security-hooks && bun testCI(PR 時): pnpm check / security-hooks の bun test / shellcheck / zizmor / chezmoi apply --dry-run。