💻
複数 Mac で Claude Code の設定を共有する
複数の Mac で Claude Code を使っている時に、 ~/.claude の設定を同期するために dotfiles を整備して簡単に設定を同期するようにした。
dotfiles レポジトリを作り、そこに .claude ディレクトリを設置し、install.sh でシンボリックリンクを貼る。git push / pull することで内容が更新され複数 Mac 間で設定の同期ができる。
dropbox などを使うのが容易ではあるが、セキュリティ要件や MCP の設定同期のため dotfiles を利用することにした。
~/.claude で共有するもの
~/.claude 配下にはいくつかディレクトリやファイルがあるが、共有するべきものは以下となる。
これ以外のファイルはそのパソコン固有のもので、共有するべきものではない。
.claude/
├── CLAUDE.md
├── settings.json
└── commands/
└── hoge.md
これらのファイルを Github レポジトリとして管理して、シンボリックリンクを貼ることで設定を同期する。
MCP の設定は .claude.json に記載されており、 .claude.json はパソコン固有の情報が多く同期するべきでない。そのため MCP の設定は同期できていない。
ただし、 install.sh で mcp add することで擬似的に同期することが可能。(API Keyの取り扱いには注意が必要)
Hooks の設定は settings.json のため同期可能。
install.sh
#!/bin/bash
DIR=$(cd $(dirname $0); pwd)
# .claudeディレクトリの処理(存在する場合のみ)
if [[ -d ".claude" ]]; then
# .claude内の各ファイルをシンボリックリンク
for file in .claude/*; do
if [[ -f "$file" ]]; then
filename=$(basename "$file")
echo "Creating symlink: .claude/$filename"
ln -sf "$DIR/$file" ~/.claude/"$filename"
fi
done
# .claude/commandsディレクトリの処理(ディレクトリ自体をシンボリックリンク)
if [[ -d ".claude/commands" ]]; then
# 既存の ~/.claude/commands を削除(ディレクトリまたはシンボリックリンク)
if [[ -e ~/.claude/commands ]]; then
echo "Removing existing: ~/.claude/commands"
rm -rf ~/.claude/commands
fi
echo "Creating symlink: .claude/commands -> ~/.claude/commands"
ln -sf "$DIR/.claude/commands" ~/.claude/commands
fi
fi
# Context7(ドキュメント検索機能)
claude mcp add -s user --transport sse context7 https://mcp.context7.com/sse
install.sh を実行すると、 ~/.claude がこのようになる。
mcp add もしているので MCP も複数 Mac で利用可能となる。
.claude ls -al
lrwxr-xr-x 1 kensuke staff 45 7 3 17:03 CLAUDE.md -> /Users/kensuke/git/dotfiles/.claude/CLAUDE.md
lrwxr-xr-x 1 kensuke staff 44 7 3 17:03 commands -> /Users/kensuke/git/dotfiles/.claude/commands
drwxr-xr-x@ 5 kensuke staff 160 7 3 15:49 ide
drwxr-xr-x 11 kensuke staff 352 7 3 15:49 projects
lrwxr-xr-x 1 kensuke staff 49 7 3 17:03 settings.json -> /Users/kensuke/git/dotfiles/.claude/settings.json
drwxr-xr-x 17 kensuke staff 544 7 3 15:49 statsig
drwxr-xr-x 115 kensuke staff 3680 7 3 17:03 todos
おわり
これで複数 Mac で .claude を同期できるようになった。最終的な構成はこのような感じ。
.
├── .claude/
│ ├── CLAUDE.md
│ ├── settings.md
│ └── commands/
│ └── hoge.md
└── install.sh
Discussion