gemihub-gdrive

July 20, 2026 · View on GitHub

GemiHub Desktopのactive Workspace全体を、GemiHubが利用するGoogle Driveルートと同期するPluginです。GemiHubと同じ_sync-meta.json、Migration Tool token、暗号化済みrefresh tokenを使用します。

GemiHub Google Drive Syncの同期前画面

Pull対象ファイルのプレビュー

動作

  • 1つのDesktop Workspaceを1つのGemiHub Driveルートへ固定して接続
  • Workspaceのファイルツリーに表示される通常ファイルを同期
  • .git/.llm-hub/node_modules/、GemiHub system files/foldersは除外
  • Pluginの設定画面から任意の除外パターンを追加設定可能(folder名末尾に/*/?によるワイルドカードに対応。ローカル/Driveどちら側の対象ファイルも同期対象から外れる)
  • Google Docs、Sheets、Slidesなどapplication/vnd.google-apps.*のネイティブファイルは除外(PDF、DOCX、XLSXなど実体を持つexport済みファイルは同期)
  • text/binary、pathを含むflat Drive filename、renameに対応
  • Pullはlocalに未Pushの変更があっても実行可能(該当ファイルはスキップして保持)
  • 両側で変更されたファイルはconflictとしてファイルごとにKeep local / Keep remoteで解消(選ばれなかった側はDriveのsync_conflicts/へタイムスタンプ付きでバックアップ)
  • Pushによるremote削除はGemiHubのtrash/へ移動
  • Pullによるlocal削除は実行前に確認
  • Pull/Pushは実行前にnew、modified、deleted、conflictの対象ファイル一覧を表示
  • CheckでStatus表示後、Local changes/Remote changes/Push deletes/Pull deletesのラベルをクリックすると対象ファイル一覧を表示
  • Pullは最大5ファイルを並列処理し、処理件数と現在のpathを表示

GemiHub側の準備

  1. GemiHubの暗号化を有効にする
  2. 設定 → 同期 → 外部同期から同期トークンを生成する
  3. Desktopで同期したいWorkspaceを選択する
  4. PluginのDrive Sync viewへtokenを貼り付ける
  5. GemiHubの暗号化passwordでunlockする

token生成時に_encrypted-auth.jsonがDriveへ出力されます。token自体は短時間で失効しますが、Pluginは暗号化されたrefresh tokenをPlugin storageへ保存し、以後GemiHubのtoken refresh endpointを利用します。

Build

npm install
npm run check
npm test
npm run build

GitHub Releaseにはrepository rootのmanifest.json、build後のmain.jsstyles.cssをassetとして添付します。tagはmanifest versionと一致するv0.1.2形式にしてください。