右クリックから色々geminiを使えるパワフルなChrome拡張機能です。選択したテキストやWebページをGeminiで処理できます。
最新のChrome Extension Manifest V3仕様(2025年対応)に準拠したサンプル拡張機能です。
- Manifest V3対応: 最新のChrome Extension仕様
- Service Worker: バックグラウンドページの代わりにService Workerを使用
- セキュリティ強化: リモートコード実行の制限とセキュリティ向上
- パフォーマンス最適化: 必要時のみ実行されるリソース効率的な設計
gemini-plus/
├── CLAUDE.md # Claude Code用の設定
├── README.md # このファイル
├── documents/ # 設計ドキュメント
│ ├── 基本設計.md
│ ├── 新規カスタムメニューの仕様.md
│ └── CSV機能の使用方法.md
├── tests/ # テストスイート
│ ├── README.md
│ ├── test-framework.js
│ ├── test-data.js
│ ├── csv-manager.test.js
│ └── test-runner.html
└── extension/ # Chrome拡張機能本体
├── manifest.json # 拡張機能の設定ファイル
├── background.js # Service Worker(バックグラウンド処理)
├── popup.html # ポップアップUI
├── popup.js # ポップアップの動作
├── content.js # Webページに注入されるスクリプト
├── gemini-content.js # Geminiページ専用スクリプト
├── csv-manager.js # CSV エクスポート/インポート機能
├── presets/ # プリセットメニュー定義
│ └── default-menus.json # 初期メニュー構造
└── icons/ # 拡張機能のアイコン
- サマリ: ページ全体の要約
- 翻訳: ページの日本語翻訳
- FAQ作成: よくある質問と回答を生成
- ファクトチェック: 情報の正確性を検証
- 選択範囲の処理: テキスト選択時に各機能を実行
- ツリー構造でメニューを整理
- フォルダによるグループ化
- ドラッグ&ドロップで並び替え
- テンプレート変数:
{$URL},{$TITLE},{$TEXT} - 分割線でメニューを区切り
- CSVエクスポート: 全メニューをCSV形式で保存
- CSVインポート: 既存CSVファイルからメニューを復元
- プリセット復元: 削除されたデフォルトメニューを復元
{$URL}: ページのURL{$TITLE}: ページのタイトル{$TEXT}: 選択テキストまたはページ全文
- Chrome の拡張機能管理ページを開く(
chrome://extensions/) - 「デベロッパーモード」を有効にする
- 「パッケージ化されていない拡張機能を読み込む」をクリック
extensionフォルダを選択
現在の設定:
activeTab: アクティブなタブへのアクセスstorage: データの保存
extension/: 拡張機能の本体ファイルdocuments/: 設計ドキュメントCLAUDE.md: Claude Code用の設定
- 拡張機能の変更後は「再読み込み」が必要
extensionフォルダ内のファイルのみが拡張機能に含まれる- ルートフォルダには開発用ファイルを配置
CSV機能の堅牢性を確認するためのテストスイートを用意しています:
tests/test-runner.htmlをブラウザで開く- 「テストを実行」ボタンをクリック
- テスト結果を確認
詳細は tests/README.md を参照してください。
メニューデータをCSV形式で管理できます:
- 設定画面を開く
- 右上のメニューボタン(⋯)をクリック
- 「CSVエクスポート」を選択
- 自動的にCSVファイルがダウンロードされます
- 設定画面を開く
- 右上のメニューボタン(⋯)をクリック
- 「CSVインポート」を選択
- CSVファイルを選択してアップロード
フォルダ,タイトル,プロンプト,適用範囲
プリセット,サマリ,以下のページをサマリしてください...,both
カスタム,翻訳,以下のテキストを翻訳してください...,selection
extension/presets/default-menus.jsonを編集して初期メニューを変更:
[
{
"id": "preset-folder",
"type": "folder",
"name": "プリセット",
"description": "事前定義されたメニュー",
"expanded": true,
"items": [
{
"id": "preset-summary",
"type": "menu",
"title": "サマリ",
"prompt": "以下のページをサマリしてください:\\n\\nタイトル: {$TITLE}\\nURL: {$URL}\\n\\nページの内容をサマリしてください。",
"context": "both"
}
]
}
]新しいプリセットメニューを追加したり、既存のプロンプトを変更することで、初期メニューを簡単にカスタマイズできます。
icons/フォルダに以下のサイズのアイコンを追加:
- 16x16px:
icon16.png - 48x48px:
icon48.png - 128x128px:
icon128.png
manifest.jsonのpermissions配列を編集して必要な権限を追加
content.jsを編集してWebページでの動作を変更