.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 |
| Standard | ファイルコピー、またはフォールバック | 全て |
仕組み:
- ファイルコピー: 単一ファイルの最高パフォーマンスのため、常にネイティブの
copyFile()を使用 - ディレクトリコピー: 利用可能な最速の方法を自動使用
メリット:
- Copy-on-Writeは実際のデータではなくメタデータのみをコピーするため非常に高速
- 設定不要 - 最適な戦略が自動検出されます
- 自動フォールバックによりコピーは常に動作します
フック設定の詳細はフックを参照してください。
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 'クリーンアップ完了'"]
[worktree]path_script = "~/.config/vibe/worktree-path.sh"