RocketはRust (Tauri v2) + React (TypeScript) で構築されたモダンなGit GUIクライアントです。直感的なUIと高速なパフォーマンスを両立し、日常のGit操作を効率化します。
- 基本起動:
rocket . # カレントディレクトリを開く
rocket /path/to/repo # 指定パスを開く
rocket # 最後に開いたリポジトリ or ホーム画面- クローン & 起動:
rocket clone https://github.com/user/repo.git
rocket clone git@github.com:user/repo.git ./myrepo- オプション:
rocket . --new-window # 新しいウィンドウで開く
rocket . --tab # 既存ウィンドウの新規タブで開く
rocket . --status # ステータスのみ表示(TUI)
rocket . --diff # 差分ビューで開く
rocket . --log # 履歴ビューで開く- クイックアクション:
rocket commit # コミットダイアログを直接開く
rocket commit -m "msg" # メッセージ指定でコミット
rocket push # プッシュ実行
rocket pull # プル実行- シェル補完: bash/zsh/fish補完スクリプト提供
- エイリアス登録:
rkt等の短縮コマンド設定
- リポジトリを開く: ローカルリポジトリをブラウズして開く
- クローン: URLからリポジトリをクローン(HTTPS/SSH対応)
- 初期化: 新規リポジトリの作成(git init)
- 最近開いたリポジトリ: 履歴から素早くアクセス
- 複数リポジトリのタブ表示: 複数リポジトリを同時に操作
- .gitignoreテンプレート: GitHub公式テンプレートから生成
- テンプレート取得元: https://github.com/github/gitignore
- 言語/フレームワーク別テンプレート選択(Go, Node, Python, etc.)
- 複数テンプレートの組み合わせ
- Global gitignore(OS/エディタ用)の追加
- カスタムルールの追記
- 既存.gitignoreとのマージ
- ワーキングツリーの状態表示: 変更ファイル一覧
- 差分ビューア: ファイルごとの変更内容をハイライト表示
- 行単位の差分表示
- 単語単位の差分ハイライト
- サイドバイサイド / インライン切り替え
- ステージング操作:
- ファイル単位でステージ/アンステージ
- ハンク(変更ブロック)単位でステージ
- 行単位でステージ
- 変更の破棄: ファイル/ハンク単位で変更を元に戻す
- コミットメッセージ入力: 件名と本文を分けて入力
- Amend: 直前のコミットを修正
- 署名付きコミット: GPG/SSH署名対応
- ブランチ一覧: ローカル/リモートブランチの表示
- ブランチ作成: 新規ブランチの作成
- チェックアウト: ブランチの切り替え
- マージ: ブランチのマージ(fast-forward / no-ff選択可)
- リベース: インタラクティブリベース対応
- ブランチ削除: ローカル/リモートブランチの削除
- ブランチ名変更: ブランチのリネーム
- Fetch: リモートから最新情報を取得
- Pull: リモートの変更を取り込み(merge/rebase選択可)
- Push: ローカルの変更をリモートに送信
- Force push(with-lease)オプション
- リモート管理: リモートの追加/編集/削除
- プッシュ先の設定: アップストリームの設定
- コミットグラフ: ブランチ構造を視覚的に表示
- コミット詳細: 各コミットの変更内容を表示
- フィルタリング:
- 作者で絞り込み
- 日付範囲で絞り込み
- ファイルパスで絞り込み
- メッセージ検索
- ファイル履歴: 特定ファイルの変更履歴を追跡
- Blame表示: 各行の最終変更者を表示
- スタッシュ作成: 変更を一時退避
- スタッシュ一覧: 保存済みスタッシュの表示
- 適用/ポップ: スタッシュを復元
- ドロップ: スタッシュを削除
- スタッシュの差分表示: 内容のプレビュー
- タグ一覧: ローカル/リモートタグの表示
- タグ作成: 軽量タグ/注釈付きタグの作成
- タグ削除: ローカル/リモートタグの削除
- タグへのチェックアウト: detached HEAD状態で確認
- コンフリクトファイル一覧: 競合中のファイルを表示
- 3ウェイマージビューア: Base/Ours/Theirsを並べて表示
- 手動解決支援: 各変更を選択して適用
- マージ完了: コンフリクト解決後のコミット
- サブモジュール一覧: 登録済みサブモジュールの表示
- 追加: 新規サブモジュールの追加
- 更新: サブモジュールの同期
- 削除: サブモジュールの削除
- ファイル内容検索: リポジトリ全体からテキスト検索(git grep)
- コミット検索: コミットメッセージ/差分から検索
- ファイル名検索: パターンでファイルを検索
- ワークツリー一覧: 関連ワークツリーの表示
- ワークツリー追加: 新規ワークツリーの作成
- ワークツリー削除: 不要なワークツリーの削除
- コミットの選択: 履歴から適用したいコミットを選択
- Cherry-pick実行: 選択コミットを現在のブランチに適用
- 範囲指定: 複数コミットの一括適用
- コミットの取り消し: 指定コミットを打ち消すコミットを作成
- Soft/Mixed/Hard Reset: コミット位置の移動
- ファイル単位のReset: 特定ファイルを特定コミットの状態に戻す
- Reflog表示: HEAD/ブランチの移動履歴
- 復元操作: 失われたコミットの救出
- Git Credential Helper連携: ユーザーの既存認証設定を自動利用
git credential fill経由で認証情報を取得- 追加の認証設定なしでプライベートリポジトリにアクセス可能
- 対応するcredential helper:
- macOS Keychain (
osxkeychain) - Windows Credential Manager (
manager) - gh CLI (
gh auth git-credential) - その他ユーザー設定済みのhelper
- macOS Keychain (
- SSH認証:
- SSH鍵ファイル指定(
~/.ssh/id_rsa,id_ed25519等) - ssh-agent連携(登録済み鍵を自動使用)
- パスフレーズ入力ダイアログ
- SSH鍵ファイル指定(
- HTTPS認証:
- Personal Access Token入力
- credential helperへの保存オプション
- 認証情報の優先順位:
- 環境変数(
GH_TOKEN,GITHUB_TOKEN) - credential helper(設定済みの場合)
- 手動入力(初回のみ)
- 環境変数(
- コミットメッセージ生成:
- ステージング済み差分からメッセージを自動生成
- Conventional Commits形式対応(feat/fix/docs等)
- 日本語/英語切り替え
- 生成後の編集・調整
- 差分サマリー:
- 変更内容の要約を自然言語で表示
- 大規模な変更の概要把握に活用
- PR/MR説明文生成:
- ブランチ全体の変更からPR説明文を生成
- テンプレートに沿った構造化出力
- コードレビュー支援:
- 差分に対するレビューコメント提案
- 潜在的なバグ・問題点の指摘
- セキュリティリスクの検出
- PRレビュー効率化ビュー:
- リスクの高い差分を自動ハイライト
- 依存パッケージのアップデート検出
- 公開API変更の自動検出
- レビュー優先順位の提示
- ファイル単位の複雑度・影響度スコア表示
- AIアクション実行(Human-in-the-loop):
- レビューコメントから修正パッチを自動生成
- Issueから実装案・テストコードを生成
- 提案内容のプレビュー → 承認 → 適用のワークフロー
- 生成されたコードの差分確認・部分採用
- 自動コミットせず最終判断は人が行う
- コンフリクト解決支援:
- 競合箇所の意図を解析
- マージ案の提示
- コミット履歴の要約:
- 指定期間/ブランチのChangelog生成
- リリースノート作成支援
- 対応LLMプロバイダー:
- OpenAI API(GPT-4等)
- Anthropic API(Claude)
- ローカルLLM(Ollama連携)
- カスタムエンドポイント設定
- LLM CLIアダプター(汎用CLI連携機能):
- 任意のLLM CLIツールを統一インターフェースで呼び出し
- プリセット対応CLI:
- Claude Code (
claude -p) - OpenAI Codex CLI (
codex) - GitHub Copilot CLI (
gh copilot) - Aider (
aider) - LLM CLI (
llm) - Gemini CLI (
gemini)
- Claude Code (
- カスタムCLI登録:
# ~/.config/rocket/cli-adapters.yaml
adapters:
- name: "my-custom-llm"
command: "/usr/local/bin/my-llm"
args: ["--prompt", "{{prompt}}"]
stdin: true # 差分をstdinで渡す
timeout: 60s-
機能別のCLI割り当て:
- コミットメッセージ生成 → Claude Code
- コードレビュー → Codex
- 等、用途ごとに使い分け可能
-
CLI自動検出: PATH上の対応CLIを検出して利用可能リスト表示
-
サブスクリプション活用: Claude Max/Pro、Copilot契約者は追加料金なし
-
プライバシー設定:
- 送信するコード範囲の制限
- 機密ファイルの除外パターン設定
- ローカルLLM優先モード
-
AI利用の優先順位設定:
- LLM CLI(インストール済み & 認証済みの場合)
- ローカルLLM(Ollama)
- API直接利用(要APIキー設定)
- テーマ: ライト/ダークモード切り替え
- カラーテーマ: アクセントカラーの選択(Cobalt / Emerald / Rose / Amber / Slate / Violet)
- カスタムカラーテーマ: 設定ファイルで独自テーマを追加可能
# ~/.config/rocket/themes/my-theme.yaml
name: "My Theme"
dark:
bg-primary: "#0f1419"
bg-secondary: "#151b22"
text-primary: "#e6edf3"
accent: "#58a6ff"
added: "#3fb950"
removed: "#f85149"
light:
bg-primary: "#ffffff"
bg-secondary: "#f6f8fa"
text-primary: "#1f2328"
accent: "#0969da"
added: "#1a7f37"
removed: "#cf222e"- フォント設定: フォントファミリー/サイズの変更
- キーバインド: ショートカットのカスタマイズ
- レイアウト: パネル配置のカスタマイズ
- PR/MR作成: ブラウザでPR作成ページを開く
- Issue参照: コミットメッセージからIssueへリンク
- CI/CD状態表示: パイプライン結果の表示
- Gitconfig編集: GUIからGit設定を編集
- GPG鍵管理: 署名用鍵の設定
- SSH鍵管理: 認証用SSH鍵の設定
- 通知: 操作完了/エラー時の通知
- 自動fetch: バックグラウンドで定期的にfetch
- 言語: Rust(ADR-0001)
- GUIフレームワーク: Tauri v2(ADR-0002)
- フロントエンド: React (TypeScript)(ADR-0002)
- Gitバックエンド: git2-rs メイン + git CLI フォールバック(ADR-0003)
- 配布: Tauriバンドラーによるインストーラー自動生成(.dmg / .msi / .deb / .rpm / .AppImage)
- macOS
- Linux
- Windows
- 大規模リポジトリ(10万コミット以上)でもスムーズに動作
- 差分計算の非同期処理
- 履歴の遅延読み込み(lazy loading)