モダンで宣言的なdotfile管理。Mac/Linux両対応。
- 🔄 宣言的管理: YAMLとテキストファイルで管理
- 🖥️ クロスプラットフォーム: Mac/Linux両対応
- 📦 統一パッケージ管理: Homebrew統一
- 🔧 バージョンマネージャー統合: mise(Python, Ruby, Go, Node.js, Rust)
- 🎨 シェル環境: zsh + sheldon + starship
- 🚀 1コマンドセットアップ:
make install
- Git
- Make(通常プリインストール済み)
- Linux環境: sudo権限(Homebrewインストールに必要)
git clone <your-repo-url> ~/dotfiles
cd ~/dotfiles
make install
# Linux環境: Homebrewインストール時にパスワード入力を求められますセットアップ後、シェルを再起動:
exec zsh| コマンド | 説明 |
|---|---|
make install |
初回セットアップ(全自動) |
make link |
シンボリックリンク作成のみ |
make install-packages |
パッケージ再インストール |
make update |
全パッケージ更新 |
make help |
ヘルプ表示 |
polyglot tool version manager。複数の言語ランタイムをシンプルに管理:
- Python -
latestで常に最新版 - Ruby -
latestで常に最新版 - Go -
latestで常に最新版 - Node.js - Volta の代替(
latest指定可能) - Rust - rustup の代替(
latest指定可能) - uv - Pythonパッケージマネージャー(mise で管理)
設定: .tool-versions ファイルで一元管理
更新: mise upgrade で全言語を一括更新
開発ツール:
- neovim
- tmux
- git
- curl
- sheldon - zshプラグイン管理
CLIツール:
- gh - GitHub CLI
- ghq - リポジトリ管理
- lazygit - Git TUI
- starship - シェルプロンプト
pnpm でグローバルにインストールするパッケージ:
- @anthropic-ai/claude-code - Claude Code CLI
- @google/gemini-cli - Gemini CLI
- cz-git / czg - Conventional Commits
設定: package.json (dotfiles ルート) の globalDependencies で管理
インストール: make install-pnpm で実行
詳細は sheldon/plugins.toml を参照。
dotfiles/
├── Makefile # タスクランナー
├── install # dotbotブートストラップ
├── install.conf.yaml # シンボリックリンク設定
├── .env.example # 環境変数テンプレート
├── .envrc # direnv設定
├── package.json # pnpm グローバルパッケージ設定
├── packages/ # パッケージリスト
│ ├── brew.txt # Homebrew
│ ├── cargo.txt # cargo
│ └── go.txt # Go (Go パッケージ)
├── mcp/ # MCP設定(Claude Code)
│ └── mcp.json # MCPサーバー定義(~/.mcp.json にシンボリックリンク)
├── zsh/ # zsh設定
├── tmux/ # tmux設定
├── sheldon/ # zshプラグイン管理
├── wezterm/ # ターミナル設定
├── git/ # git設定
├── lazygit/ # lazygit設定
├── gh/ # GitHub CLI設定
├── karabiner/ # Karabiner設定(Mac専用)
└── nvim/ # Neovim設定(submodule)
-
該当ファイルを編集:
packages/brew.txtpackages/npm.txtpackages/cargo.txt
-
再インストール:
make install-packagessheldon/plugins.toml を編集後:
sheldon lock --updatealiasはカテゴリ別にファイル分割し、sheldonで管理しています。
zsh/aliases/
├── common-tools.zsh # 汎用ツール短縮形(g, lg, nv等)
├── common-commands.zsh # 汎用コマンド拡張(ll, reload等)
├── navigation.zsh # ディレクトリ移動(doc, des等)
├── mac.zsh # Mac固有(arm, x64等)
└── local.zsh # 環境固有(git管理外)
仕事用やマシン固有のaliasは zsh/aliases/local.zsh に追加します(git管理外)。
MCPサーバーの設定は mcp/mcp.json 1ファイルで管理します。install.conf.yaml により ~/.mcp.json へシンボリックリンクされるので、編集するだけで即反映されます。
追加・削除はファイルを直接編集。sync スクリプトも direnv も不要です。
トークンが必要なサーバー(例: GitHub MCP)は現在使っていないため、このファイルには環境変数展開の仕組みはありません。必要になった場合は
claude mcp add -s user等の個別管理に寄せます。
Claude Codeの設定はclaude/ディレクトリで管理します。
- ステータスライン: トークン使用量をリアルタイム表示(🟢 45.2K (23%)形式)
- 通知: 作業完了時にmacOS通知(terminal-notifier使用)
- グローバルルール: CLAUDE.mdでClaude Codeの振る舞いをカスタマイズ
| ファイル | 説明 |
|---|---|
claude/settings.json |
グローバル設定(hooks, statusLine等) |
claude/CLAUDE.md |
グローバルルール |
claude/statusline/statusline.ts |
ステータスライン表示スクリプト |
claude/hooks/notify.ts |
通知スクリプト |
deno- スクリプト実行(mise経由)terminal-notifier- macOS通知(brew経由)
make install を実行すると自動的に /home/linuxbrew/.linuxbrew にインストールされます。
手動でインストールする場合:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"注意: Linux環境では sudo権限が必要です。インストール中にパスワード入力を求められます。
既存のファイルを削除してから:
make linktmux起動後、以下のキーを押す:
prefix + I
(デフォルトのprefixは Ctrl+b)
# mise のインストール
brew install mise
# 言語ランタイムを手動でインストール
mise install- シンボリックリンク作成(dotbot経由)
- 環境変数セットアップ(.env作成 + direnv allow)
- Homebrewインストール(未インストール時、Linux環境ではsudo必要)
- mise インストール + 言語ランタイム自動インストール(.tool-versionsから)
- Homebrewパッケージインストール(neovim, tmux, sheldon等)
- cargoパッケージインストール(
--lockedフラグ付き) - npmグローバルパッケージインストール(claude-code, gemini-cli等)
- Goパッケージインストール
定期的に以下を実行:
make update