自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/VBA/GAS/JavaScript/Raspberry Piなどで色んなことを自動化

【悪用厳禁】AIチャットにURLパラメータでプロンプトを流し込む方法まとめ(Notion AI / Grok / Gemini ほか)

※便利な半面、攻撃の対象にもなり得るので、安易にAIのリンクを開いちゃだめですね。

この記事でできるようになること

  • URLに ?q=プロンプト を付けるだけで、チャットUIへプロンプトを自動入力・実行可能なAIがどれなのかを知る
  • 対応サービスごとの挙動の違いを把握(Notion AI / Grok / Google AIモード / Felo / Claude / ChatGPT / Gemini ほか)
  • 非対応サービス(Gemini)でも、Tampermonkeyスクリプトで同じことを実現
  • ブックマーク・ショートカット・ユーザースクリプト連携で、ワンクリックでAIに仕事を振れるようにする

パラメータ q にプロンプトを渡すだけで実行される

  • この記事でできるようになること
  • TL;DR
  • 対応状況サマリ(2026-05-01 時点)
  • Notion AI — 標準機能でいけるのが強い
    • 使用例
    • 発見の経緯
  • Gemini — Tampermonkeyで補う
    • 使用例
    • コピペで動くTampermonkeyスクリプト
  • 参考: Notion AI 用 Tampermonkey
  • 共通テクニック
    • 活用シナリオ
    • ハマりポイント
  • 各サービスの個別メモ
    • Grok
    • Google AIモード
    • Felo AI
    • Claude
    • ChatGPT
    • GenSpark / Sakana AI
    • Tampermonkeyスクリプト比較
  • セキュリティリスクの話
    • 攻撃ベクトル
      • プロンプトインジェクション via URL(最大リスク)
      • Tampermonkeyスクリプトの信頼チェーン
      • history.replaceState による痕跡消去
    • リスクマトリクス
    • 緩和策
  • まとめ
続きを読む

Googleカレンダーの予定をスプレッドシートに書き出して「何に何分使ったのか」を集計できるGASツールを公開した

動作イメージはこんなかんじ。

この記事でできるようになること

  • 複数のGoogleカレンダーの予定を、期間とキーワードを指定してスプレッドシートに一括出力する
  • 件名に含まれるキーワードで予定を自動カテゴライズする
  • 「何に何分使ったか」を集計するベースにする

コードを書かずに、スプレッドシートをコピーして使える。リポジトリはMITで公開したので、フォークも改変も歓迎。

こんな用途に使える

  • 個人の工数可視化(週次・月次で「何にどれだけ時間を使ったか」を集計)
  • 会議時間の分析(会議カテゴリだけ抽出して、週あたりの会議時間を追う)
  • クライアント別集計(フリーランスや複数案件の時間配分)
  • 調整時間が多い日の特定と次月ブロックへの反映
  • カレンダー予定のバックアップ / アーカイブ
  • Looker Studio やピボットに流す前段のデータソース

いずれもこのスプレッドシートGASツールだけで完結する。

続きを読む

NotionAI(Opus 4.6)で企画・設計し、Antigravity(Gemini 3.1 Pro)に実装を丸投げして、Webツール集を作った話。

計画から公開まで、AIエージェントをどう使い分けたかの実例記録。

この記事でわかること

  • AIコーディングエージェント「Antigravity」でWebツール集を構築した実例
  • NotionAI × Antigravityの具体的なワークフロー
  • 3週間見積りの実装を1日で完了させた並列実行の仕組み

動機

業務で使うWebツール、探せばいくらでも見つかる。全角半角変換、JSON整形、CSV加工……。

ただ、どれもちょっと引っかかる。入力したデータ、サーバーに送信されてないか?

業務データを扱う以上、「たぶん大丈夫」では済まない。情シスとしてはなおさら。

かといって既存ツールのUIは古かったり、広告まみれだったり。仕事で使うには微妙なものが多い。

なら自分で作ろう、と思った。

完全クライアントサイド処理。サーバーへのデータ送信ゼロ。モダンUI。

ちょうどAIコーディングエージェントの実験もしたかったので、開発の大半をAIに任せる前提で始めた。


技術スタック

項目 技術
フレームワーク Astro + React Islands
UIコンポーネント shadcn/ui + Tailwind CSS
ホスティング Cloudflare Pages
CI/CD GitHub Actions
テスト Playwright(E2E)
コスト 実質 ¥0(Cloudflare Pages + GitHub Actions 無料枠)

Astro + React Islandsの組み合わせは、AIエージェントとの相性がいい。ツール1つ追加するのに「ロジック(lib)+ コンポーネント(component)+ ページ(page)」の3ファイルで完結する。テンプレートが定型化されるので、AIへの指示がシンプルになる。

ソースコードは GitHub で公開している。「サーバーと通信しません」を口だけでなくコードで証明するため。

👉 github.com/maru0014/tools-codelife-cafe


AIワークフロー:計画 → プロンプト → 実装

このプロジェクトでは、2つのAIエージェントを役割分担して使った。

続きを読む

【コピペでOK】PDFファイル一括ダウンロード。ブラウザで開かずにダウンロードさせる方法

この記事でできるようになること

  • Webページ内のすべてのPDFリンクを一括ダウンロードできるようになる
  • ブラウザでPDFファイルを開かずに直接ダウンロードさせる設定ができるようになる
  • JavaScriptを使ってaタグにdownload属性を付与する方法を理解できる
  • ブラウザの「名前をつけて保存」ダイアログを省略する設定ができるようになる
  • URLからファイル名を抽出する方法を学べる

※複数ページを横断して実行する場合は以下記事を参考にサブウィンドウを活用してみてください

codelife.cafe


サンプルコード: ページ内のすべてのPDFリンクにdownload属性付与して開く

F12でブラウザコンソールを開いてコピペで動きます

// ファイル名取得関数
const getFilename = url => new URL(url).pathname.split('/').pop();

// スリープ関数
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

// PDFファイルのaタグにdownload属性を付与
const links = [...document.querySelectorAll("a")]
    .filter(a => /\.pdf/.test(a.href))
    .map(a => {
        const fileName = getFilename(a.href);
        a.setAttribute("download", fileName);
        a.setAttribute("target", "_blank");
        return a;
    });

// 全てのリンクを順番にクリック
for (const link of links){
    await sleep(1000);
    console.log(link.href);
    link.click();
}
続きを読む

Google Workspace管理者必須のCLIツール GAM でいつもの作業をコマンドで出来るか試してみる

前回、前々回まででWindowsでもMacでもセットアップ手順を確認できたので、今回はGAMコマンドをいろいろ試してみます。

↓セットアップ手順はこちら↓ codelife.cafe codelife.cafe

いつもの作業 といいつつ世の中の情シスの人が実際によくやっている業務ランキングとかに合わせたほうが良いかなと思ったのでGPT-5に「よくある業務ランキングTOP10」でディープリサーチを依頼。 上位3種類の業務をGAMコマンドでやってみることにします。(上位5種にしようと思ったけど予想してたより検証大変で3にしましたm( )m)

  • 🥇 第1位:ユーザーアカウント管理
    • 主な内容
    • 作業手順例(新入社員アカウント作成)
    • GAMでやると...?
  • 🥈 第2位:セキュリティ設定・監査
    • 主な内容
    • 作業手順例(不審ログイン調査)
    • GAMでやると...?
  • 🥉 第3位:メール(Gmail)管理
    • 主な内容
    • 作業手順例(メールトレース)
    • GAMでやると...?
  • まとめ

🥇 第1位:ユーザーアカウント管理

主な内容

  • アカウント作成/削除
  • ライセンス割り当て
  • 部署異動に伴う権限変更

作業手順例(新入社員アカウント作成)

  1. 管理コンソールにログインhttps://admin.google.com/
  2. ユーザー → ユーザーを追加 を選択
  3. 氏名・メールアドレスを入力
  4. 初期パスワードを設定(ユーザーに初回変更を強制)
  5. 必要な ライセンス(Business/Enterprise等)を割り当て
  6. 部署に応じた グループに追加(例:営業部、全社通知グループ)

GAMでやると...?

続きを読む