バイブコーディングの効率化でGit worktreeが話題になっていたけど、コマンドの実行や管理が大変そうだったので、まずは効率化するツールを作りたいと思いました。いつもならシェルスクリプトとかエイリアスで済ませるところですが、バイブコーディングでOSSとして作ってみたら面白そうと思い、この1週間集中して開発しました。
結果、Git worktreeの管理を効率化するCLIツールをリリースすることができました。途中からはドッグフーディングで自らの生産性も向上させて、Claude Codeを20万円分以上使いましたがCLIツールとしてかなりクオリティの高いものを短期間で作ることができました。
作ったツール
PhantomというCLIツールを作りました。Git worktreeを簡単に管理できるツールで、docker exec
みたいにワークツリーの中でコマンドを実行する機能があったり、tmuxやfzfとの統合機能も備えています。
Phantomの仕組み
Phantomの基本的な仕組みはシンプルです。phantom create feature-awesome
を実行すると、.git/phantom/worktrees/
ディレクトリの中に feature-awesome
という名前の新しいGit worktreeを作成します。
your-project/
├── .git/
│ └── phantom/
│ └── worktrees/
│ ├── feature-awesome/ # worktree名(ブランチ名と同名)
│ ├── bugfix-login/
│ └── hotfix-critical/
このように「ワークツリーの保存場所を固定させる」「ワークツリー名をブランチ名と同じにする」という制約を加えることで、Git worktreeの管理を簡単にしています。
後はめちゃくちゃ使いやすいCLIを提供することを目標としています。
どうやって開発したか
Claude Codeを使って完全バイブコーディングで開発しました。ソースコードもREADMEもPRもIssueも全てClaude Codeに書いてもらっています。私自身は全くコードを書いていません。
6月1日から作り始めて、1週間後の6月8日にv1.0.0をリリースしました。
初日はGit worktreeを使わずに、Claude Codeを1つだけ立ち上げて欲しい機能を一つずつ実装しました。この日は150ドルくらい使いました。
この時点で基本的な機能は実装できたので、v0.1をリリースし、次の日からは実際にPhantomを使ってGit worktreeを用いた並行開発を始めました。平日なのもあってバラつきはありましたが、1日2時間くらいの時間を確保して開発しました。
週末はスタバに開店凸して3時間、家に帰って昼から8時間くらい集中して開発しました。
おかげで土曜日に3回、日曜日に2回も機能リリースをし、v1.0.0をリリースすることができました。
かかったコスト
ccusage を使って出力した利用履歴がこちらです。別のことに使ったりもしていたのと、もう一台のPCでも開発していたので正確ではありませんが、Phantomには約1600ドル(約23万円)分くらい使ったと思います。といってもClaude Maxプランに加入しているので実際は$200の定額です。
最後の土日は1000ドル近く使っていますね。
Claude Codeを使った並行開発フロー
複数インスタンスでの並行作業
デモ動画のように3-5つくらいのClaude Codeを立ち上げて並行してタスクを進めます。それぞれのClaudeは異なるGit worktreeで作業するため、お互いに干渉することなく開発を進められます。
思いついたことはなんでもIssueにしてもらう
開発中に気づいたことはなんでもIssueにしてもらいます。
- 「こういう機能欲しいな。Issueで提案して」
- 「こここうした方がいいよね。Issueで報告しておいて」
- 「将来的にこういう機能を出したいよね。Issueにしておいて」
と指示するだけで、後はClaudeがコードベースやコミットログから背景情報を調査してめちゃくちゃいい感じのIssueにしてくれます。驚くべきことにこれがもうほとんど意図通りの内容で、直すことが滅多にありません。
例えばこれとか、「Node.jsの標準APIにコマンドをパースする機能があるので使って欲しい」とお願いしたら作ってくれました。
これは「deleteを実行してもブランチが消えないんだけど」くらいの指示で原因を調べてIssueにしてくれたものです。
残りのIssueの数を見てもらうと分かると思いますが、作ってもすごい勢いで解決していってしまうので、全然Issueが溜まりません。w
終わったらDraft PRを作ってもらう
作業が終わったら “good. create a draft pr” みたいな指示を出してDraft PRを作ってもらってGitHub上でレビューします。レビューはGitHubの画面が見やすいです。
レビューの指摘はそのままローカルのClaude Codeに指示を出します。PRにコメントしてから、GitHub MCPを使ってコメントを読んで対応してもらうこともできますが、手元にClaude Codeが立ち上がっている状態なら直接指示した方が手っ取り早いです。
Phantomの超絶便利機能
最後にPhantomの超絶便利な機能をいくつか紹介させてください。
完璧なシェル補完・tmux、fzfとの統合
簡単に使えるようにするために、fish, zsh用のシェル補完ファイルを生成しています。Homebrewでインストールした場合は自動で有効化され、コマンドが分からない状態でも使い始めることができます。
また --tmux
や --fzf
等のオプションをつけることで、tmuxのペイン分割でワークツリーを開いたり、fzfでワークツリーを絞り込んで選択することもできます。
VSCode, Cursorでも使える
作成したワークツリーは簡単にVSCodeやCursorで開くことができます。
エディタの内臓ターミナルからでも使いやすいです。
gitignoreされたファイルをコピー
phantom create {ブランチ名} --copy-file .env
とすれば、新しく作成されたワークツリーに.env等のGitで管理していないファイルをコピーできます。
ワークツリーでセットアップコマンドを実行
phantom.config.json
にセットアップコマンドを定義しておくと、ワークツリー作成時に自動で実行されます。
このように設定しておけばワークツリーを作った時に自動で依存関係がインストールされ、すぐに開発サーバーを立ち上げることができます。
{
"postCreate": {
"copyFiles": [".env"],
"commands": ["pnpm install"]
}
}
おわり
Claude CodeとPhantomを使えば、並行してAIエージェントに指示を出しながら開発を進めることができます。普段の何倍もの生産性で開発を進めることができます。
Claude Maxプランが無くならないことを祈りつつ、これからもClaude Codeを活用していきたいと思います。
他にもバイブコーディングでカオスになったコードベースを整理するためのノウハウとかも溜まりつつあるのですが、またの機会に紹介したいと思います。
Phantomは brew install aku11i/tap/phantom
でインストールできます。興味がある方はぜひ試してみてください!
Views: 0