1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gemini FileStoreを管理するCLIツールを作った

Last updated at Posted at 2025-12-29

はじめに

前回の記事では、Gemini APIのFile Search Toolを使ったRAGの構築方法を紹介しました。NotebookLM並みの性能を持つRAGを簡単に構築できて素晴らしいのですが、ファイルストア管理機能が無いのが手間でした。

そこで今回は、Gemini FileStoreをターミナルから簡単に管理できるCLIツール「genai-fs」 を作成したので紹介します。

genai-fsとは

genai-fsは、Gemini FileStore APIをターミナルUIで操作できるCLIツールです。

主な機能

  • ストア管理: FileSearchストアの作成・一覧表示・削除
  • ドキュメント管理: ファイルのアップロード・一覧表示・削除
  • インタラクティブUI: キーボードショートカットで直感的に操作
  • ファイルブラウザ: アップロードするファイルをターミナル上で選択可能

インストール

npx/bunxで直接実行(インストール不要)

GEMINI_API_KEY=your_api_key npx genai-fs
or
GEMINI_API_KEY=your_api_key bunx genai-fs

グローバルインストール

# npm
npm install -g genai-fs

# bun
bun add -g genai-fs

インストール後は、環境変数を設定して実行します。.envでも設定できます。

export GEMINI_API_KEY=your_api_key_here
genai-fs

APIキーが設定されていない場合でも、起動時に入力画面が表示されます。

使い方

ストア一覧

起動すると、既存のFileSearchストア一覧が表示されます。

Gemini FileStore Manager v1.0.9
AIza...XXXX

Name                     Created                Updated
❯ My Test Store          2024/12/29 10:00:00    2024/12/29 10:30:00
  Another Store          2024/12/28 15:00:00    2024/12/28 15:00:00

Up/Down: Select  Enter: Open  i: Info  n: New  d: Delete  q: Quit
キー 操作
Up/Down ストアを選択
Enter ストアを開く(ドキュメント一覧へ)
i ストア詳細を表示
n 新規ストア作成
d ストア削除
q 終了

ドキュメント一覧

ストアを選択すると、そのストア内のドキュメント一覧が表示されます。

Gemini FileStore Manager v1.0.9
AIza...XXXX / My Test Store

Name                     Size         Status    Created
❯ document1.pdf          1.2 MB       Active    2024/12/29 10:15:00
  notes.md               45.3 KB      Active    2024/12/29 10:20:00
  data.xlsx              892.1 KB     Pending   2024/12/29 10:30:00

Up/Down: Select  Enter/i: Info  u: Upload  d: Delete  Esc: Back  q: Quit
キー 操作
Up/Down ドキュメントを選択
Enter/i ドキュメント詳細を表示
u ファイルをアップロード
d ドキュメントを削除
Esc ストア一覧に戻る

ファイルブラウザ

uキーを押すと、ファイルブラウザが起動します。ターミナル上でディレクトリを移動し、アップロードするファイルを選択できます。

Select a file:
Current path: /Users/username/Documents

❯ 📁 ..
  📁 projects
  📁 work
  📄 report.pdf                    2.5 MB
  📄 presentation.pptx             8.1 MB

Up/Down: Select  Enter: Confirm/Open  Esc: Cancel

技術スタック

このツールは以下の技術で構築しています。

InkはReactのコンポーネントモデルをターミナルUIに適用できるライブラリで、宣言的にCLIツールを構築できます。ちょっとリッチにしたくて今回初めて使ってみました。

実装的にはファイル選択を作ったりダイアログ的に出したりと便利なので、今後のコマンドラインツール系を作る時に使っても良いかなと思います。ただ、CLIですのでデバッグがめんどくさいですね(笑。

ぶつぶつ

Gemini File Search Toolは非常に強力なRAG機能なので、ストア管理できればだいぶ便利に使えるかと思います。興味があればお試しください!

リンク

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?