🖥️

【無料配布】WindowsのGemini CLIをポータブル化! ついに「Node.jsのインストール」すら不要の管理者権限なしで動くように

に公開

Gemini_CLI_Portable

🚀 はじめに:完成品はこちら(お急ぎの方)

この記事で解説する、WindowsでGemini CLIをポータブル実行するためのバッチファイルは、以下のGitHubリポジトリで公開しています。インストール不要、管理者権限不要で、USBメモリからでもすぐにGemini CLIを利用できます。

👉 GitHubリポジトリで最新版を今すぐダウンロードする (2.22KB)

この記事では、なぜこんなに便利なポータブル化が可能になったのか、その背景にある技術的な変化と、バッチファイルの具体的な動作について、少し詳しく解説します。

😫 これまでのGemini CLI導入がなぜ面倒だったのか

Googleの強力なAIモデル「Gemini」をコマンドラインから直接操作できる「Gemini CLI」は非常に便利なツールですが、従来の導入方法は、特に非開発者にとって多くの障壁がありました。

  • Node.jsの事前インストールが必須
    まず、PCにJavaScriptの実行環境である「Node.js」をシステムレベルでインストールする必要がありました。多くの導入解説記事は「前提条件」扱いでさらっと流していますが、初心者には「え、必須手順なのにリンクをペタッと張って終わりで、インストールの具体的なやり方は詳しく解説してくれないの?」という状態でした。

  • npmコマンドと管理者権限
    次に、コマンドプロンプト等でnpm install -g @google/gemini-cliのようなコマンドを実行する必要があり、これには多くの場合、管理者権限が求められました。学校や会社のPCなど、権限が制限された環境ではこの時点で詰んでしまいます。多くの導入解説記事は「ターミナルから以下のコマンドを実行します」とさらっと言って、実行結果のスクリーンショットをバーンと貼っていますが、初心者にとっては「いや、だから、そのターミナルとやらは、どうやって出すの?なんでそのやり方(出し方)は解説してくれないの?」という状態でした。

  • 環境依存のトラブル
    Path環境変数の問題や、PowerShellの実行ポリシー制限など、ユーザーのPC環境に依存したトラブルが多く、解決には専門的な知識が必要でした。

これらの手順は、「ただGemini CLIを使ってみたいだけ」という目的の初心者ユーザーにとっては、あまりにも高く、面倒なハードルでした。

✨ gemini.js が公式で単独配布開始という革命的変化

この状況は、2025年7月10日頃、GoogleがGemini CLIの公式GitHubリリースページで、gemini.jsという単一のJavaScriptファイルを直接配布し始めたことで、劇的に変わりました。

過去の導入解説サイトが全て不要になったとまでは行きませんが、これは、従来の「npmパッケージ」という開発者向けの形式から、「独立したスクリプトファイル」として配布されるようになった、革命的な変化です。

これにより、Gemini CLIの実行に必要なファイルは、以下のわずか2つだけになりました。しかもURLは常に固定です。

  1. node.exe (Node.jsの実行エンジン本体)
    https://nodejs.org/download/release/latest/win-x64/node.exe
    
  2. gemini.js (Gemini CLIのスクリプト本体)
    https://github.com/google-gemini/gemini-cli/releases/latest/download/gemini.js
    

この変化により、複雑なインストール作業、それに伴う大量の依存ファイル群(node_modules)、そして管理者権限の要求が完全に不要になったのです。

🎒 インストールも管理者権限も不要になったのでポータブル化が実現へ

この「2ファイルだけで動く」という特性は、私たちに完全な自由をもたらしました。

  • インストール不要: PCのレジストリやシステムフォルダを一切汚しません。
  • 管理者権限不要: ファイルをダウンロードしてコマンド実行するだけです。
  • 完全ポータブル: USBメモリやネットワークドライブに置くだけで、どのWindows PCでもGemini CLIを即座に再現できます。

これにより、これまで導入が難しかった企業や教育機関のPCでも、あるいは出張先のPCでも、誰でも気軽に、そして安全にGemini CLIを試してみることができるようになりました。

🛠️ 実際のバッチファイルコードと詳細解説

このポータブル化の恩恵を、ダブルクリック一つで誰でも受けられるようにしたのが、今回作成したバッチファイルです。

設計思想と主要機能

このバッチファイルは「ミニマル実装」と「ユーザー体験の最大化」を両立させることを目指しました。

  • 自動クリーンダウンロード
    実行のたびに、常に公式サイトから最新版のnode.exegemini.jsを取得します。古いファイルは実行前に自動で削除されるため、不完全なダウンロードによるトラブルを防ぎます。

  • 堅牢なダウンロード処理
    PowerShellのWebClientを利用し、ダウンロードに失敗した場合は自動で最大3回リトライします。また、サーバー側でアクセスを拒否されないよう、User-Agentヘッダーを設定するなどの工夫も凝らしています。

  • ショートカット自動作成
    利便性のために、同じフォルダ内に起動用のショートカットを自動で作成します。以降はこちらをダブルクリックするだけでPowerShellからGemini CLIが起動します。

  • 初回起動の完全ガイド
    初めてツールを使うユーザーが戸惑わないよう、初回認証の手順などをテキストで分かりやすく案内したつもりです。

バッチファイル全コード

以下が、そのバッチファイルの全コードです。セキュリティフィルタによってGitHubにアクセスできない環境の方は、メモ帳に貼り付けて拡張子.batとして保存し、実行してください。

Gemini_CLI_Portable.bat
@echo off
setlocal enabledelayedexpansion

:: =================================================================
::     Windows用 Gemini CLI ポータブルバッチファイル (20250713版)
:: =================================================================
::
::  このバッチファイルは、Gemini CLIの実行に必要なコンポーネント
::  (node.exe, gemini.js)を自動でダウンロードし、起動します。

:: --- 初期設定 ---
set "NODE_URL=https://nodejs.org/download/release/latest/win-x64/node.exe"
set "GEMINI_URL=https://github.com/google-gemini/gemini-cli/releases/latest/download/gemini.js"
set "SHORTCUT_NAME=Gemini CLI.lnk"
cd /d "%~dp0"

echo セットアップを開始します...
echo.

echo --- [1/2] node.exe のダウンロード ---
del "node.exe" >nul 2>&1
if not errorlevel 1 echo   既存の node.exe を削除しました。
echo   最新版をダウンロードしています...
call :DownloadFile "%NODE_URL%" "node.exe"
if errorlevel 1 (
    echo.
    echo   [エラー] node.exe のダウンロードに失敗しました。
    goto :ErrorExit
)
for /f "tokens=*" %%v in ('node.exe --version 2^>nul') do set "NODE_VER=%%v"
if defined NODE_VER (
    echo   -^> 最新版 !NODE_VER! のダウンロードが完了しました。
) else (
    echo   -^> 最新版のダウンロードが完了しました。
)
echo.

echo --- [2/2] gemini.js のダウンロード ---
del "gemini.js" >nul 2>&1
if not errorlevel 1 echo   既存の gemini.js を削除しました。
echo   最新版をダウンロードしています...
call :DownloadFile "%GEMINI_URL%" "gemini.js"
if errorlevel 1 (
    echo.
    echo   [エラー] gemini.js のダウンロードに失敗しました。
    goto :ErrorExit
)
for %%f in (gemini.js) do set "GEMINI_SIZE=%%~zf"
echo   -^> 最新版のダウンロードが完了しました (サイズ: !GEMINI_SIZE! バイト)echo.

echo --- ショートカットの作成 ---
del "%SHORTCUT_NAME%" >nul 2>&1
if not errorlevel 1 echo   既存のショートカットを削除しました。
echo   ショートカットを作成しています...
call :CreateShortcut
if errorlevel 1 (
    echo   [警告] ショートカットの作成に失敗しました。手動で作成してください。
) else (
    echo   -^> ショートカットが作成されました。
)
echo.

echo ======================================================================
echo   ★ セットアップが完了しました! ★
echo ======================================================================
echo.
echo   ■ 今後の使い方
echo   ----------------------------------------------------------------
echo   [推奨] 同階層にある「%SHORTCUT_NAME%」をダブルクリックして起動
echo   [手動] コマンドプロンプト等で「node.exe gemini.js」を実行
echo.
echo   定期的にこのバッチファイルを実行して、最新版に更新することを
echo   おすすめします。
echo.
echo   ■ 重要:初回起動時の手順
echo   ----------------------------------------------------------------
echo   この後、起動するPowerShellで、初回のみGoogleアカウントでの
echo   認証が必要です。
echo.
echo    (1) ブラウザが自動で起動します。
echo.
echo    (2) 画面の指示に従い、Googleアカウントでログインしてください。
echo.
echo ======================================================================
echo.
echo 何かキーを押すと、新しいウィンドウ(PowerShell)で Gemini CLI を起動します...
pause >nul

start "Gemini CLI" powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "$env:NODE_NO_WARNINGS = '1'; " ^
    "Write-Host 'Gemini CLI を起動しました。終了するにはウィンドウを閉じるか /quit を入力してください。' -ForegroundColor Green; " ^
    "Write-Host ''; " ^
    "& { Set-Location '%~dp0'; .\node.exe .\gemini.js %* }"

goto :End

:: =================================================================
::  サブルーチン
:: =================================================================

:CreateShortcut
    setlocal
    set "CURRENT_DIR=%CD%"
    
    powershell -ExecutionPolicy Bypass -NoProfile -Command ^
        "$WshShell = New-Object -ComObject WScript.Shell; " ^
        "$Shortcut = $WshShell.CreateShortcut('%CURRENT_DIR%\%SHORTCUT_NAME%'); " ^
        "$Shortcut.TargetPath = 'powershell.exe'; " ^
        "$Shortcut.Arguments = '-ExecutionPolicy Bypass -NoExit -Command \"$env:NODE_NO_WARNINGS = ''1''; Set-Location ''%CURRENT_DIR%''; ./node.exe ./gemini.js\"'; " ^
        "$Shortcut.WorkingDirectory = '%CURRENT_DIR%'; " ^
        "$Shortcut.IconLocation = 'powershell.exe,0'; " ^
        "$Shortcut.Description = 'Gemini CLIを起動します'; " ^
        "$Shortcut.Save()" >nul 2>&1
    
    endlocal
    exit /b %ERRORLEVEL%

:DownloadFile
    setlocal
    set "URL=%~1"
    set "OUTFILE=%~2"
    set "MAX_RETRIES=3"

    for /L %%i in (1,1,%MAX_RETRIES%) do (
        powershell -NoProfile -ExecutionPolicy Bypass -Command ^
            "try { " ^
            "    $wc = New-Object System.Net.WebClient; " ^
            "    $wc.Headers.Add('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'); " ^
            "    $wc.DownloadFile('%URL%', '%OUTFILE%'); " ^
            "    exit 0; " ^
            "} catch { " ^
            "    exit 1; " ^
            "}" >nul 2>&1
        
        if not errorlevel 1 (
            for %%f in ("%OUTFILE%") do if %%~zf gtr 0 exit /b 0
        )
        
        if %%i neq %MAX_RETRIES% (
            echo     ...ダウンロードに失敗、2秒後に再試行します ^(%%i/%MAX_RETRIES%^).
            timeout /t 2 /nobreak >nul
        )
    )
    
    endlocal
    exit /b 1

:ErrorExit
    echo   ネットワーク接続などを確認して、再度実行してください。
    pause

:End
endlocal

💡 おわりに:創造的な作業に集中しよう

技術的な設定に時間を奪われることなく、誰もがAIの恩恵を受けられるべきです。このバッチファイルが、あなたの創造的な作業に集中するための、ささやかな一助となれば幸いです。

Gemini CLIはプレビュー期間中、1分間60リクエスト、1日1,000リクエストまで、Gemini 2.5 Proを無料で利用できます。 もうすぐGemini 3.0が登場する予兆も見られています。

ぜひGitHubリポジトリからこのツールをダウンロードして、新しいAI活用の世界を体験してください。

https://github.com/KM170/Gemini_CLI_Portable

👇インストール型の方が良いという方向けに、自動インストールバッチも作成しています。

https://zenn.dev/km100/articles/5c3d1c863154a8

Discussion