.vibe.toml
.vibe.tomlファイルには、通常gitにコミットされてチームで共有される設定が含まれます。
Copy設定
Section titled “Copy設定”元リポジトリからWorktreeへ個別のファイルをコピー:
[copy]files = [".env", "config.json"]Globパターン
Section titled “Globパターン”files配列はglobパターンに対応しており、柔軟なファイル選択が可能です:
[copy]files = [ "*.env", # ルートディレクトリの全.envファイル "**/*.json", # 全JSONファイル(再帰的) "config/*.txt", # config/内の全.txtファイル ".env.production" # 厳密なパスも引き続き利用可能]サポートされるパターン:
| パターン | 説明 |
|---|---|
* |
/以外の任意の文字にマッチ |
** |
/を含む任意の文字にマッチ(再帰的) |
? |
任意の1文字にマッチ |
[abc] |
ブラケット内の任意の文字にマッチ |
ディレクトリ v0.4.0+
Section titled “ディレクトリ ”ディレクトリ全体を再帰的にコピー:
[copy]dirs = [ "node_modules", # 厳密なディレクトリパス ".cache", # 隠しディレクトリ "packages/*" # 複数ディレクトリにマッチするGlobパターン]並列数 v0.17.0+
Section titled “並列数 ”ディレクトリコピーの並列実行数を制御できます:
[copy]concurrency = 8- デフォルト:
4 - 範囲:
1から32 - 高速なストレージ(NVMe、SSD)を持つシステムでは値を大きくするとコピーが高速化する場合があります
- 値を小さくするとシステムリソースの使用量が減少します
環境変数によるオーバーライド:
VIBE_COPY_CONCURRENCY=16 vibe start feat/my-feature環境変数は設定ファイルの値より優先されます。
コピーパフォーマンスの最適化 v0.4.0+
Section titled “コピーパフォーマンスの最適化 ”vibeはシステムに応じて最適なコピー戦略を自動選択します:
| 戦略 | 使用条件 | プラットフォーム |
|---|---|---|
| Clone (CoW) | APFSでのディレクトリコピー | macOS |
| Clone (reflink) | Btrfs/XFSでのディレクトリコピー | Linux |
| rsync | cloneが利用できない場合のディレクトリコピー | macOS/Linux |
robocopy (/MT) |
ディレクトリコピー | Windows |
| Standard | ファイルコピー、またはフォールバック | 全て |
仕組み:
- ファイルコピー: 単一ファイルの最高パフォーマンスのため、常にネイティブの
copyFile()を使用 - ディレクトリコピー: 利用可能な最速の方法を自動使用
メリット:
- Copy-on-Writeは実際のデータではなくメタデータのみをコピーするため非常に高速
- 設定不要 - 最適な戦略が自動検出されます
- 自動フォールバックによりコピーは常に動作します
フック設定の詳細はフックを参照してください。
サブモジュール設定
Section titled “サブモジュール設定”Worktree作成後、親リポジトリのpre_startフックの実行前に、指定した直接サブモジュールの信頼済み.vibe.tomlを読み込みます:
[submodules]configs = ["libs/foo", "vendor/bar"]- デフォルト:
[] - 各エントリは
.gitmodules内の直接サブモジュールpathと完全一致する必要があります - 新しいWorktree内で
git submodule update --init -- <paths>を実行します - 各サブモジュールの
.vibe.toml/.vibe.local.tomlは、そのサブモジュール自身のtrust entryで読み込まれます - サブモジュール設定内のフックとcopyルールは、サブモジュールルート基準で実行されます
--no-hooksはサブモジュールのフックをスキップしますが、サブモジュール初期化はスキップしません--no-copyはサブモジュールのcopyルールをスキップします- サブモジュール更新、trust、path検証、setupのいずれかに失敗すると
vibe startは中断され、作成済みWorktreeは調査用に残ります
Worktree設定 v0.6.0+
Section titled “Worktree設定 ”外部スクリプトを使用してWorktreeディレクトリパスをカスタマイズできます。
path_script
Section titled “path_script”Worktreeパスを出力するスクリプトを指定:
[worktree]path_script = "~/.config/vibe/worktree-path.sh"スクリプトは以下の環境変数を受け取ります:
| 環境変数 | 説明 | 例 |
|---|---|---|
VIBE_REPO_NAME |
リポジトリ名 | my-project |
VIBE_BRANCH_NAME |
ブランチ名 | feat/new-feature |
VIBE_SANITIZED_BRANCH |
サニタイズ済みブランチ名(/→-) |
feat-new-feature |
VIBE_REPO_ROOT |
リポジトリルートパス | /path/to/repo |
スクリプト例:
#!/bin/bashecho "${HOME}/worktrees/${VIBE_REPO_NAME}-${VIBE_SANITIZED_BRANCH}"[copy]files = [ ".env", ".env.local", "**/*.secret"]dirs = [ "node_modules", ".cache", "vendor"]concurrency = 8
[hooks]pre_start = ["echo 'Worktreeを準備中...'"]post_start = [ "pnpm install", "pnpm db:migrate", "pnpm build"]pre_clean = ["git stash"]post_clean = ["echo 'クリーンアップ完了'"]
[submodules]configs = ["libs/foo"]
[worktree]path_script = "~/.config/vibe/worktree-path.sh"