Unity Hubと同じ内容をInkベースのTUIで表示し、上下キー/j/kでプロジェクトを選択してoでUnity Editorを起動するCLIです。
- macOS または Windows 10/11
- Node.js 20+
npx unity-hub-cliまたは、グローバルインストールすると unity-hub-cli コマンドで直接起動できます:
npm install -g unity-hub-cli
unity-hub-cliWindowsでの注意事項
PowerShell / CMD で動作します。Git Bash は ConPTY ベースのターミナル(Windows Terminal / VS Code・Cursor の統合ターミナル)内であれば動作します。
スタンドアロンの Git Bash(MinTTY)では Raw mode が非対応のため、PowerShell / CMD / Windows Terminal をお使いください。どうしても使う場合は以下のコマンドを利用できます:
winpty cmd.exe /c npx unity-hub-cliwinpty powershell.exe -NoProfile -Command npx unity-hub-cli
| キー | 動作 |
|---|---|
↑ / ↓ / j / k |
選択移動 |
o |
選択中のプロジェクトをUnityで起動 |
O (Shift+O) |
Unity + 外部エディタ(Rider等)を同時起動 |
i |
外部エディタのみ起動 |
q |
選択中のプロジェクトのUnityを終了 |
r |
プロジェクト一覧を更新 |
c |
プロジェクトパスをクリップボードにコピー(unity-hub 関数経由ではそのディレクトリに cd して終了) |
s |
ソート設定パネルを開く |
v |
表示設定パネルを開く |
Ctrl + C |
終了 |
設定パネル内では j/k で移動、Space で切り替え、Esc で閉じます。
表示内容にはGitブランチ(存在する場合)、Unityバージョン、プロジェクトパス、最終更新日時が含まれます。利用可能な場合、デフォルトでGitリポジトリのルートフォルダ名を使って一覧を表示します。
--no-git-root-name: Gitリポジトリのルートフォルダ名ではなく、Unityプロジェクトのタイトルを表示します--shell-init: 自動cd統合用のシェル関数をインストールします(確認プロンプト付き)。--shell-init --dry-run: シェル関数をプレビュー表示します(インストールはしません)。update: グローバルインストール済みのunity-hub-cliを最新バージョンに更新します(確認プロンプト後にnpm install -g unity-hub-cli@latest --ignore-scripts --no-fundを実行)。
Unity起動後、自動的にそのプロジェクトディレクトリに cd するシェル関数を追加できます。
- グローバルインストール:
npm install -g unity-hub-cli- シェル初期化コマンドを実行(シェルを自動検出):
unity-hub-cli --shell-initこれでシェル設定ファイル(.zshrc、.bashrc、config.fish、PowerShellプロファイル)に unity-hub 関数が自動的に追加されます。
- シェルを再読み込み:
source ~/.zshrc # またはターミナルを再起動これで unity-hub 関数を使うと:
- Unityプロジェクト一覧を表示・選択
oでUnityを起動- ターミナルがプロジェクトのディレクトリに自動で
cdされる
--shell-initは何度実行しても安全です(マーカーコメントを使って既存の関数を更新します)- 関数は環境から検出された絶対パスを使用します
- Windows: シェル統合はPowerShellのみ対応しています。CMDはシェル関数の機能がないため、Unity起動後の自動
cdができません
このプロジェクトはサプライチェーン攻撃対策を実装しています:
- ignore-scripts:
npm install時のスクリプト自動実行を無効化 - @lavamoat/allow-scripts: パッケージのインストールスクリプト実行を明示的に制御
- Dependabot: 週次の自動セキュリティアップデート
- Security audit CI: PR ごとに
npm audit、lockfile-lint、OSV-Scanner を実行 - Pinned versions: すべての依存関係で正確なバージョンを指定(
^や~なし)
MIT