Vibe Coding生活を快適にするDotfiles
前提
この記事は下記の環境があることを想定しています。
- Mac
- Claude Code
- Github
Codex CLI や Gemini CLI なども
同様の方法で快適にすることができますので
読み替えてください。
コーディングエージェントの設定散らばりすぎ問題
Hey Guys、Sotono です。
みなさん日々 Claude Code や Codex とかを使って Vibe Coding してると思いますが、
MCP とか Skills とかいろんなことが増えてきて、
どんどん設定がめんどくさくなってきてると思います。
PC が突然爆発したとかで使えなくなってしまったときに、
イチから設定し直しになるとすごい嫌だと思います。
なので、そういう設定は Git 管理しておいたほうが良いんですが、
- ホームディレクトリに設定ファイルが散らばっていたり
- ヒストリーファイルとかが非常に邪魔だったり
- これ動かしたらそれこそ死ぬだろうなってファイルがあったり
って感じで動きにくいと思います。
これをどうやって Git で管理すりゃええねん、みたいな。
今回使用する Dotfiles というシステムを使うことによって
下記のようなメリットが生まれます。
- Git 管理するから PC 死んでもリカバリが楽
- 設定ファイルとかを一元管理するのでメンテナンスが楽
- 各コーディングエージェントで共通の設定が使える
ってな感じで、一緒に Dotfiles でコーディングエージェントを便利にしていきましょう。
Dotfiles とは
dotfiles というシステムがあるのをご存知でしょうか?
シンボリックリンクを活用することで
自分の動きやすい環境を召喚できる便利システムがあります。
それについては下記を閲覧していただいたほうが早いと思います。
https://zenn.dev/cloud_ace/articles/1d57617f83cd74
Dotfiles と Agent をあわせる
さて、今回の目的をお話します。
Dotfiles を使うことによって、
zsh などの設定をシンボリックリンクで結びつけることができ、
つまりは、コーディングエージェントの設定ファイルも
これで運用できるんじゃないか?というのが狙いです。
結論、できます。
一歩ずつ動かしてみて便利さを実感してみましょう。
Dotfiles の基礎
~/.zshrcのような設定ファイルをロックオン../dotfiles/.zshrcみたいな感じで模造品ファイルを作る- このファイルをシンボリックリンクでくっつける
- つまり、
~/.zshrcに対して../dotfiles/.zshrcへのショートカットが振られる
初心者編: CLAUDE.md を結びつける
ClaudeCode には CLAUDE.md というルールファイルがありますが、
これはプロジェクト以外にも、ユーザーごとに管理される
いわゆるグローバルルールが存在します。
Mac でいうところの ../<project>/CLAUDE.md と ~/.claude/CLAUDE.md の違いです。
プロジェクトルールはプロジェクトの Git で管理することができますが、
グローバルルールは場所的に管理するのが難しい場所にあります。
が、前述した Dotfiles の基礎から分かる通り、
これをシンボリックリンクで結びつけることによって、
一箇所で CLAUDE.md が管理することができます。
つまりはこういうこと。
~/.claude/CLAUDE.mdをロックオン../dotfiles/CLAUDE.mdを作る~/.claude/CLAUDE.mdに対して../dotfiles/CLAUDE.mdシンボリックリンクでくっつける
これで CLAUDE.md が Git で管理できるようになりました。
中級者編: AGENTS.md を使って結びつける
さて、CLAUDE.md がいけたということは、
他のエージェントで使われる AGENTS.md も同じようにできるということです。
が、大体の人はコーディングエージェント間で同じようなルールを使いたいと思うので、
AGENTS.md をベースにしてこれを共通ルールとして定めます。
どういうことか?
~/.claude/CLAUDE.mdをロックオン~/.codex/AGENTS.mdもロックオン../dotfiles/AGENTS.mdを作る~/.codex/AGENTS.mdに対して../dotfiles/AGENTS.mdシンボリックリンクでくっつける~/.claude/CLAUDE.mdに対して../dotfiles/AGENTS.mdシンボリックリンクでくっつける
分かりづらいと思いますがミソは「ショートカットの名前は同一でなくて良い」ということです。
Windows とか使ってるとわかりますが、「〜〜のショートカット」って出てきません?あれです。
あれの名前を変えたとて元の名前とか性質は変わらないので大丈夫っていう感じです。
これで、../dotfiles/AGENTS.md をベースにした共通ルールが
ClaudeCode と Codex に敷かれました。
めんどいマン編: Shellscript 一発で終わらせる
正直ここまでやってきて、シンボリックリンクを
一個一個貼る作業がめんどくさいと思います。
もちろん、秘伝のタレとして「全部一発でシンボリック貼ってくれるスクリプト」
があるのでこれを使うと一撃です。
色々書き方があると思いますが、
僕は都度追加するたびに書くのがめんどくさいので、
配列の考え方を使って楽をしています。
詳しくは最下部にある Git を御覧ください。
# dotfilesの設定
# "hoge:huga"みたいな感じで書く
dotfiles=(
".zshrc:$HOME/.zshrc"
"starship.toml:$HOME/.config/starship.toml"
".tmux.conf:$HOME/.tmux.conf"
"AGENTS.md:$HOME/.claude/CLAUDE.md"
"AGENTS.md:$HOME/.codex/AGENTS.md"
"AGENTS.md:$HOME/.gemini/GEMINI.md"
"claudecode/agents:$HOME/.claude/agents"
"claudecode/commands:$HOME/.claude/commands"
"claudecode/settings.json:$HOME/.claude/settings.json"
"claudecode/skills:$HOME/.claude/skills"
"claudecode/statusline-command.sh:$HOME/.claude/statusline-command.sh"
)
# 既存ファイルの削除とシンボリックリンクの作成
for dotfile in "${dotfiles[@]}"; do
src="${dotfile%%:*}"
dest="${dotfile##*:}"
rm -rf "$dest"
ln -s "$(pwd)/$src" "$dest"
done
echo "✌️ Install completed!!!!"
echo "✌️ Please restart your terminal or run: source ~/.zshrc"

上級者編: Skills とか Agent とかも書く
ClaudeCode には Skills とか Sub Agent とか Custom Slash Command とか
色々な機能がありますが、それも一気に書いていくことができます。
ここまで書いていくとだいぶ楽になってきたと思います。
/Users/sotono/dotfiles/claudecode
├── README.md
├── agents
│ ├── code-quality-reviewer.md
│ ├── pre-task-investigator.md
│ └── task-splitter-executor.md
├── commands
│ ├── InitAgent.md
│ ├── IssueMasher.md
│ ├── Rabbit.md
│ ├── SecurityChecker.md
│ ├── SkillCreator.md
│ └── wc_WorktreeCreaner.md
├── settings.json
└── skills
├── code-quality-review
│ ├── SKILL.md
│ └── references
│ ├── python.md
│ └── typescript.md
├── code-reviewer
│ └── skill.md
├── design-principles
│ └── skill.md
├── git-ops
│ └── skill.md
└── task-orchestration
└── skill.md
これも秘伝のタレで一発シンボリックされるので
万が一 PC が死んでもすぐ環境が復活できます。