個人用の dotfiles 管理リポジトリです。macOS 環境での開発環境セットアップを自動化します。
# 1. システム基盤のセットアップ
./setup/01_base.sh
# 2. Homebrewパッケージのインストール
./setup/02_brew.sh
# 3. 全設定ファイルのシンボリックリンク作成
# (dotfiles, .config, Claude等すべて含む)
./setup/04_symlinks.sh
# 4. Claude Code公式版のインストール
./setup/20_claude.shこのリポジトリは direnv と Git hooks を使用した自動化機能を提供します:
.githooks/pre-commitにより commit 前に lint/format チェックが自動実行.envrcによりプロジェクト固有のコマンドがグローバルに利用可能
.githooks/pre-commit により、commit 前に自動で lint/format チェックが実行されます。
手動でチェックを実行する場合:
# チェックのみ(修正なし)
bun scripts/development/lint-format.ts --mode=check
# 自動修正
bun scripts/development/lint-format.ts --mode=fix統合 lint/format スクリプト scripts/development/lint-format.ts が以下を実行します:
- oxlint + oxfmt: TypeScript/JavaScript/JSON (oxc ecosystem)
- dprint: Markdown/YAML/TOML
- shfmt + shellcheck: シェルスクリプト
詳細は scripts/development/lint-format.ts を参照してください。
home/内のファイルを直接編集- シンボリックリンクにより自動反映
- 新規ファイル追加時は
./setup/04_symlinks.shを再実行
macOSの設定をdefaultsコマンドでコード化して管理できます。
# デフォルトから変更されている設定を確認
mise run macos:checkシステム環境設定で行った変更をスクリプト化できます:
# 1. 変更前のスナップショットを取得
mise run macos:snapshot-before
# 2. システム環境設定で設定を変更
# 3. 変更後のスナップショットを取得して差分を生成
mise run macos:snapshot-afterデスクトップにmacos_settings_diff_*.shが生成されます。
pdefツールのインストール(推奨):
git clone https://github.com/yammerjp/pdef.git
cd pdef && make && sudo cp bin/pdef /usr/local/bin/pdefを使用すると、defaults writeコマンドが自動生成されます。
この dotfiles は Claude Code の開発環境統合をサポートしています。
Claude Code は公式推奨の方法でインストールされます:
# セットアップスクリプトで自動インストール
./setup/20_claude.shClaude Code プラグインやMCPサーバーで使用するAPIキーを設定します:
# 1. サンプルファイルをコピー
cp home/.env_sample ~/.env
# 2. 必要なAPIキーを設定
# ANTHROPIC_API_KEY: Claude API キー(必須)
# GREPTILE_API_KEY: Greptile AI コード検索・分析(オプション)
# CONTEXT7_API_KEY: Context7 ドキュメント検索(オプション)
# GITHUB_TOKEN: GitHub 連携(オプション)
# BRAVE_API_KEY: Brave Search MCP サーバー(オプション)
vi ~/.env重要: .env ファイルは機密情報を含むため、絶対にバージョン管理に含めないでください。
Claude Code は以下のファイル編集時に自動でツールを実行します:
- TypeScript/JavaScript/JSON: oxlint (linting) + oxfmt (formatting)
- Rust ベースの高速ツール(oxc ecosystem)を使用
- Markdown/YAML/TOML: dprint で統合フォーマット
- シェルスクリプト: shfmt (formatting) + shellcheck (linting)
.claude/settings.local.json編集時に permissions 配列を自動的にアルファベット順にソート- スクリプト:
scripts/development/sort-permissions.ts - 実行タイミング: ファイル保存時(PostToolUse フック)
# 手動でlint/format実行
bun scripts/development/lint-format.ts --mode=check # チェックのみ
bun scripts/development/lint-format.ts --mode=fix # 自動修正
# Git hooks設定済みの場合、commit時に自動実行
git commit -m "変更内容"