gemini-cli
難点
Googleアカウントでログインしようとすると認証用のURLが表示されるが、画面の端で改行されないので、認証用URLをコピペできない
ローカル環境だと、自動的にブラウザが開くので困らない
sshとかでリモートで実行しているときは困る
ワークアラウンドとしては、クソ長いURLが1行でおさまるように、端末の文字をめっちゃちっちゃくして実行する
実行前にちっちゃくしておかないと表示されない
Geminiがgemini-cliについてほとんどなにも回答してくれない
Geminiでgemini-cliについて尋ねると高確率で検閲される
https://scrapbox.io/files/690a267e0426a2ebe4b51ade.png
なんで?????
設定ファイルがjson
なんで?????
設定ファイルをツールが勝手に書き換えるからかも?
yamlにしてくれたらコメントアウトできて便利だったのに
ユーザごとの設定ファイル ~/.gemini/settings.json をツールが勝手に書き換えてくる
~/.geminiってディレクトリあるんだからもうちょっとどうにかならんかったの
良い点
Google Workspaceを契約してれば無料で使える
Googleアカウントでログインした場合
サンドボックス
gemini-cliはSeatbelt(macOSの場合)やDocker/Podman(macOS, Linuxの場合)でgemini-cliを実行してくれるサンドボックス機構を内蔵している
-s をつけて実行すると有効になる
デフォルトで有効化したいときは、~/.gemini/settings.json に以下のように設定する
code:~/.gemini/settings.json
{
"tools": {
"sandbox": true
}
}
起動時に以下のように表示されていればDockerで実行されている
code:txt
hopping into sandbox (command: docker) ...
Checking for sandbox image: us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.11.3
Sandbox image us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.11.3 found locally.
Sandboxing in the Gemini CLI | Gemini CLI
macOSの場合はSeatbeltで実行される
Gemini CLIでSeatbeltをカスタムして使う
https://github.com/google-gemini/gemini-cli/blob/main/docs/get-started/configuration.md
サンドボックスでカスタムコンテナを使うには
ドキュメントに書いてあること半分嘘だったので注意
ドキュメントにはgemini-cli-sandboxをベースイメージとして使用するように書いてある
https://github.com/google-gemini/gemini-cli/blob/ecf8fba1/docs/get-started/configuration.md#sandboxing
https://deepwiki.com/search/sandboxdocker_d6f8c097-384c-4141-a9f9-96506ab9d7be
しかしこのようなタグのコンテナは存在しない
package.json に記載されているイメージタグを指定する必要があった
https://github.com/google-gemini/gemini-cli/blob/v0.16.0/package.json
https://github.com/google-gemini/gemini-cli/blob/aefbe6279ceb994cd8dd7ac2a25a31b3b8c73cb6/package.json#L17
https://deepwiki.com/search/sandboxdocker_d6f8c097-384c-4141-a9f9-96506ab9d7be
gemini-cli のソースコードをcloneする
code:sh
cd ~/src
git clone https://github.com/google-gemini/gemini-cli.git
git checkout -b v0.16.0 refs/tags/v0.16.0
ビルドする
code:sh
npm install
npm run build
npm link する
code:sh
npm link ./packages/cli
geminiコマンドが使えるようになっているか確認する
~/.npm-global/bin にパスが通っている必要がある
カスタムコンテナを使いたいプロジェクトに移動する
code:sh
cd ~/projects/miminashi/browser-use
プロジェクトのディレクトリに .gemini/sandbox.Dockerfile を作成する
code:sh
mkdir .gemini
code:.gemini/sandbox.Dockerfile
FROM us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.16.0
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
コンテナをビルドしてgemini-cliをサンドボックスモードで起動する
code:sh
BUILD_SANDBOX=1 gemini -s
https://deepwiki.com/search/buildsandbox1-docker-build-noc_c641ac5a-383f-48a8-a5e7-cc75e8908a0b