AIは基本的に一時チャットで使いたい派
普段から Google Gemini を利用させてもらっていますが、ログアウトした状態で使っています。
AIは基本的に一時チャットで使いたい派。
会話履歴とか引きずって欲しくないんです。
ChatGPTもClaudeも一時チャット。(シークレット/インコグニートモード)
Geminiはログアウトした状態でも使えるのでログインせずに使っています。全部無料版ですが。
最近小耳に挟んだ話で「GeiminiでアカウントがBANされると、そのGoogleアカウントに紐づいた全てのサービスが使えなくなる」なんてことを聞きました。GmailからGoogle driveから全てだとか。恐ろしいにも程がある。
それならなるべくログアウトした状態で使いたい。
ただちょっとだけ困るのが、プロンプト(カスタム指示)が設定できないこと。
当の本人に聞いてみたら
「会話の初めに書くと良いよ!」
とのことなので、必要な時にワンクリックで前提プロンプトを挿入できるようにしてみました。
Tampermonkeyを使ってプロンプト挿入ボタンを置く
「Tampermonkey」はFirefoxやChromeなどでユーザースクリプト(JavaScript)を管理・実行できる無料のブラウザ拡張機能です。
その機能を使って「プロンプト挿入ボタン」を作成します。
ダッシュボードの「+」ボタンから新規スクリプトを追加。
下記コードをコピペします。保存したら有効化しているかも確認。
// ==UserScript==
// @name Gemini 定型文挿入(1回使い切りボタン)
// @namespace http://tampermonkey.net/
// @version 1.2
// @description 定型文挿入後、すぐ入力できるように末尾にカーソルを移動し、ボタンを消去
// @match https://gemini.google.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
const myPrompt = "【前提条件:①事実と推測を分離 ②ハルシネーション回避。根拠が不十分な場合は「不明」と明記し断定をしない ③ユーザーの意図や期待に迎合して、事実認識や論理的な結論を歪めないこと(忖度禁止)。】\n\n";
// ボタンの作成
const btn = document.createElement('button');
btn.id = 'gemini-prompt-btn'; // IDを付与
btn.textContent = "🛡️ 厳格モード"
btn.setAttribute('style', 'position:fixed; bottom:120px; right:20px; z-index:9999; padding:12px 20px; background:#1a73e8; color:white; border:none; border-radius:30px; cursor:pointer; font-weight:bold; box-shadow: 0 4px 12px rgba(0,0,0,0.2); transition: opacity 0.3s;');
btn.onclick = function() {
const container = document.querySelector('div[contenteditable="true"]');
if (container) {
// 1. テキストをセット
container.innerText = myPrompt;
// 2. 入力イベントを発火
container.dispatchEvent(new Event('input', { bubbles: true }));
// 3. カーソルを末尾に移動
const range = document.createRange();
const sel = window.getSelection();
range.selectNodeContents(container);
range.collapse(false);
sel.removeAllRanges();
sel.addRange(range);
container.focus();
// 4. ボタンを消去(フェードアウトさせてから削除)
btn.style.opacity = '0';
setTimeout(() => {
btn.remove();
}, 300);
} else {
alert('入力欄が見つかりませんでした。ページを更新してみてください。');
}
};
// ページ読み込み時にボタンを追加
document.body.appendChild(btn);
})();
やってることはシンプル。
- 入力欄を取得
- テキストをセット
- カーソルを末尾に移動
- ボタンをフェードアウトして削除
あらかじめ myPrompt に前提となるプロンプトを記述しておき、
厳格なプロンプトを適用したい時にボタン押下で入力欄に挿入します。
もう少し細かく説明すると、
ボタンがクリックされたら、
contenteditable="true" が付いた div を探します。これが入力欄。
const container = document.querySelector('div[contenteditable="true"]');
見つかったらプロンプトをセット
container.innerText = myPrompt;
inputイベントを発火
テキストが挿入されて「変更があった」ことを認識させ
container.dispatchEvent(new Event('input', { bubbles: true }));
カーソルを末尾に移動
const range = document.createRange(); //空の選択範囲を作成
const sel = window.getSelection(); //現在の選択状態を取得
range.selectNodeContents(container); //containerの中身全体を選択
range.collapse(false); //末尾に折りたたむ -> 最後にカーソルを移動
sel.removeAllRanges(); //今の選択を全部クリア
sel.addRange(range); //「現在の選択」として設定
入力欄をアクティブにして、続けてユーザーが入力できるようにします。
最後にもう必要ないのでボタンを消去。
ちなみに会話の途中からプロンプトを挿入することは想定していません。
ログアウト状態なので、毎回サイトを開くたびにフレッシュスタート、初めましての状態です。
その最初に入力することを想定しています。
注意点
これは現在(2026年4月)の時点で有効なものです。ページの構成や仕様が変わったら動かなくなる可能性があります。
特に
const container = document.querySelector('div[contenteditable="true"]');
この部分は変更されたら入力欄が取得できないので、動かなくなったらソースを見て適宜変更してください。
ログアウト状態での長いやりとりはブラックリスト入り!?
具体的にはそのチャット画面で送信ができなくなり、改めてアクセスしても「502エラー」の画面が出たりするようになります。
時間を開ければ復活するようですが、あまり長いやり取りをするのは避けましょう。
様子がおかしくなってきたら切り上げるか、
「ここまでの内容を次のスレで使えるように要約して」と話をまとめてメモし、少し間をあけましょう。
まとめ
ということでGeminiを開いたらボタンが現れ、必要な時はワンクリックでプロンプトを挿入できるようになりました。
他愛のない話をする分には必要ありませんが、調べ物なんかの時に嘘つかれるのが厄介というか、面倒なんですよね。
いちいち手入力するのもかったるいので作ってみました。
ただログアウト状態で使っていると画像が扱えないなどの機能制限がありますし、やり取りが長引いた時はそれとなくログインするよう勧めてきます。
自分の場合は聞きたいことを必要な時に聞くだけなので特に支障はありませんが。
そして上記の方法は、Googleアカウントに紐づかないからと言ってリスクが無くなるわけではありません。
「リスクをゼロにする」のではなく「被害範囲を限定する」アプローチであることもお忘れなく。
何をしてもいいわけではありませんから。
以上、備忘録として記事化してみました。
なにかの参考になれば幸いです。


コメント