💻

複数 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