[{"data":1,"prerenderedAt":280},["ShallowReactive",2],{"content-/grok-imagine-cli-and-credential-hygiene":3,"all-pages-for-dir":258,"related-/grok-imagine-cli-and-credential-hygiene":259,"og-image-/grok-imagine-cli-and-credential-hygiene":279},{"id":4,"title":5,"body":6,"category":237,"concepts":238,"description":239,"extension":240,"meta":241,"navigation":242,"ogImage":238,"path":243,"project_name":244,"published":245,"publishedAt":246,"seo":247,"source":248,"stem":249,"tags":250,"todo":238,"unpublished":245,"updatedAt":238,"__hash__":257},"pages/2026-09/2026-09-04/grok-imagine-cli-and-credential-hygiene.md","Grok Imagine の動画を CLI から作る：入れた覚えのない Hermes Agent と認証情報の置き場",{"type":7,"value":8,"toc":229},"minimark",[9,13,16,19,23,26,29,53,56,59,66,70,73,84,87,106,109,112,115,118,125,132,136,139,142,145,152,176,179,185,192,195,198,201,204,207,218,225],[10,11,12],"p",{},"紙飛行機が日の当たる机の上を滑る5秒の動画が24.1秒で出てきた。",[10,14,15],{},"きっかけは思いつきだった。\nGrok Imagine は CLI から生成できないのだろうか。\n画像も動画も、これまではブラウザの画面で作っていた。\nコマンドで叩けるなら、他の処理とつなげられる。",[10,17,18],{},"調べさせたら、API キーも従量課金も要らないという答えが返ってきた。\nX の投稿検索で使っている経路が、そのまま動画生成にも通じているという。\nそしてその経路を通しているのは、自分が入れた覚えのないソフトだった。",[20,21,22],"h2",{"id":22},"定額枠から動画を作る経路",[10,24,25],{},"xAI は 2026年5月に、SuperGrok のサブスクリプションを Hermes Agent の中から直接使えると告知していた。\nデバイスコードの OAuth でログインすると、テキストのモデルも音声も Grok Imagine も呼べる。\n自分の環境は5月の時点でそのログインを通してあった。\n動画を作る関数を呼ぶ口も、同じパッケージに入っていた。\nその口の存在に今日まで気づいていなかっただけだった。",[10,27,28],{},"設定を2つ書き足させてから試した。",[30,31,36],"pre",{"className":32,"code":33,"language":34,"meta":35,"style":35},"language-powershell shiki shiki-themes vitesse-light vitesse-light","uvx --from hermes-agent hermes config set video_gen.provider xai --force\nuvx --from hermes-agent hermes config set video_gen.xai.storage.enabled false --force\n","powershell","",[37,38,39,47],"code",{"__ignoreMap":35},[40,41,44],"span",{"class":42,"line":43},"line",1,[40,45,46],{},"uvx --from hermes-agent hermes config set video_gen.provider xai --force\n",[40,48,50],{"class":42,"line":49},2,[40,51,52],{},"uvx --from hermes-agent hermes config set video_gen.xai.storage.enabled false --force\n",[10,54,55],{},"2つめは xAI 側でのファイル保存を切る設定だ。\n有効にすると恒久的な公開 URL が返ってくる代わりに、保存とホスティングに課金される場合があると注意書きにあった。\n定額枠の中だけで回したいので、保存はしない。",[10,57,58],{},"指定は5秒、16:9、480p。\n24.1秒で MP4 の URL が返り、落とすと 756,154 バイトあった。\nH.264 の 848×480、24fps、5.04秒で、AAC の音声トラックも入っていた。\n返却 JSON に載っていた名目コストは 0.25 USD 相当で、API 定価の 0.05 USD/秒に5秒を掛けた数字とそろっていた。\n名目、という但し書きが付いているのが気になった。",[10,60,61,62,65],{},"動画は ",[37,63,64],{},"apps/web/content/_local-unpublished/2026-09/2026-09-04/"," に置かせた。\nこのディレクトリはビルド時の画像コピー対象から外れるので、公開物には混ざらない。",[20,67,69],{"id":68},"hermes-agent-とは何だったのか","Hermes Agent とは何だったのか",[10,71,72],{},"引っかかったのは、その名前だった。\nHermes とは何だったか。\nインストールした記憶がない。",[10,74,75,76,79,80,83],{},"辿らせたら、記憶のほうが正しかった。\nこのマシンに ",[37,77,78],{},"hermes"," コマンドは無く、GUI 版も入れていない。\nスキルを実行するたびに ",[37,81,82],{},"uvx"," がパッケージをキャッシュから引き、一回きり動かして終わっている。\n作っているのは Nous Research で、複数のモデル提供元を裏で切り替えられる Python 製のオープンソースのエージェントだった。",[10,85,86],{},"経緯も記録から出てきた。",[88,89,90,94,97,100,103],"ul",{},[91,92,93],"li",{},"5月20日: X の投稿検索スキルを作った日が起点。その日に SuperGrok のログインを通している",[91,95,96],{},"5月21日: 決算のスキャンも同じ経路に乗せた",[91,98,99],{},"6月3日: デスクトップ版についての記事を書いたが、こちらはインストールしていない",[91,101,102],{},"6月8日: 認証が切れて入れ直した",[91,104,105],{},"9月4日: 同じ経路で動画生成を試した",[10,107,108],{},"投稿検索と決算スキャンの裏で3か月半動かし続けていた。\n正体を確かめたのは、今日が初めてだった。",[20,110,111],{"id":111},"今の使い方で漏れないか",[10,113,114],{},"正体が分かると、この使い方で認証情報が漏れないかどうかが次に気になった。\n断言の根拠になる3点だけ確かめさせた。\nサーバー系のプロセスが動いていないか、接続先を差し替える環境変数が無いか、バックアップのスクリプトが認証ファイルを拾っていないか。\n3つとも該当が無く、預けているものが外へ出る口は見当たらなかった。",[10,116,117],{},"Hermes には 2026年前半に CVE が積み上がっている。\n7月22日の時点で27件。\nただし CVSS が9台に乗ったものは、いずれも WebUI やゲートウェイを立てて外に開いていることが前提だった。\n自分はサーバーを立てていないし、エージェントとの会話も使っていない。\n関数を1回呼んで JSON を受け取るだけで、その JSON に認証情報は入らない。",[10,119,120,121,124],{},"残ったのは、生成物の URL を Hermes に取りに行かせると内部宛の URL を踏みうるという報告だった。\nこれは動画を自分で ",[37,122,123],{},"curl"," して落とすことで避けた。",[10,126,127,128,131],{},"認証の解決順も見せてもらった。\nHermes は OAuth のトークンを先に見て、無ければ環境変数 ",[37,129,130],{},"XAI_API_KEY"," の API キーへ落ちる。\nこのマシンに落ちる先が存在しないので、リクエストは必ず OAuth のトークンで飛ぶ。",[20,133,135],{"id":134},"_1password-に寄せられるか","1Password に寄せられるか",[10,137,138],{},"トークンをファイルに置いたままなのが気になって、1Password に入れればもっとマシになるのではないかと聞いた。\nほとんど良くならない、という答えだった。",[10,140,141],{},"Hermes は OAuth トークンをユーザー領域の JSON からしか読まず、更新のたびに同じファイルへ書き戻す。\n環境変数から注入する口が無いので、1Password から流し込む形にできない。\nしかも、失っても再ログインで1分あれば取り直せる。\n正本は xAI のアカウント側にあって、手元にあるのは写しにすぎない。\n写しを 1Password にしまっても、正本の管理が良くなるわけではなかった。",[20,143,144],{"id":144},"認証ファイルを読まないためのルール",[10,146,147,148,151],{},"代わりに決めたのは、自分の側から開かないことだった。\n",[37,149,150],{},".env"," の中身を読ませない禁止ルールがすでにあるので、その並びに認証ファイルを足させた。",[88,153,154,157],{},[91,155,156],{},"Read の禁止を2本（Windows と Mac の置き場に合わせたパターン）",[91,158,159,162,163,162,166,162,169,162,172,175],{},[37,160,161],{},"cat"," ",[37,164,165],{},"type",[37,167,168],{},"head",[37,170,171],{},"tail",[37,173,174],{},"grep"," での読み取り禁止を5本",[10,177,178],{},"update-config スキルで設定に反映させ、その場で効いていることまで確認した。\n存在確認と、ログイン済みかどうかの一覧までは見てよい。\n中身は開かない。",[10,180,181,182,184],{},"守ることは手順書のほうにも書いた。\nゲートウェイと WebUI は起動しない。\n接続先を差し替える環境変数は書かない。\n",[37,183,82],{}," はキャッシュを使い回してバージョンが勝手に上がらないので、月に一度は最新に追従する。",[10,186,187,188,191],{},"手順書は ",[37,189,190],{},"_local-unpublished"," に置いた。\nHermes とは何かから、生成コマンド、パラメータの範囲、事故の一覧までを1本にまとめてある。\n強調の lint は通り、SSR も 200 で返ってきた。\nただし Chrome DevTools MCP がこのセッションで接続に失敗していて、画面を目で見るところまでは届いていない。",[20,193,194],{"id":194},"定額枠をどれだけ使ったか",[10,196,197],{},"一つだけ、確かめきれなかったことがある。\n定額枠をどれだけ消費したのかが、CLI からは分からない。\nHermes 側はログイン済みかどうかを返すだけで、残量を持たない。\nxAI 側にも枠の残りを返す公開のエンドポイントは見つからなかった。\nJSON に載る名目コストは API 定価での計算値で、サブスク枠で使った分に請求が立つかどうかまではこの数字から判定できない。\n分かるのは、どの認証経路で飛んだかまでだ。",[10,199,200],{},"第三者の記事には、サブスクの範囲で全部まかなえると書いてあるものもあった。\nだが xAI 公式の文言はサブスクリプションを Hermes の中で使えるというところまでで、追加課金が無いと明言した一次資料には行き着いていない。\n残りは、コンソールの請求欄とアプリ側の生成回数を一度目で見て埋めるしかない。",[10,202,203],{},"画像生成は同じ経路のはずだが、まだ試していない。\nコマンドをスキルに固めるのも、「動画を作って」で呼びたくなった日でいい。",[10,205,206],{},"参考:",[10,208,209],{},[210,211,217],"a",{"href":212,"target":213,"rel":214},"https://x.ai/news/grok-hermes","_blank",[215,216],"noopener","noreferrer","Grok を Hermes Agent につなぐ（xAI 公式告知）",[10,219,220],{},[210,221,224],{"href":222,"target":213,"rel":223},"https://hermes-agent.nousresearch.com/docs/guides/xai-grok-oauth",[215,216],"xAI Grok OAuth ガイド（Hermes Agent 公式ドキュメント）",[226,227,228],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":35,"searchDepth":49,"depth":49,"links":230},[231,232,233,234,235,236],{"id":22,"depth":49,"text":22},{"id":68,"depth":49,"text":69},{"id":111,"depth":49,"text":111},{"id":134,"depth":49,"text":135},{"id":144,"depth":49,"text":144},{"id":194,"depth":49,"text":194},"dev",null,"Grok Imagine を CLI から叩けるか調べたら、サブスクの認証経路で5秒の動画ができた。入れた覚えのない Hermes Agent の正体を記録から辿り、情報漏えいの観点で使い方を実測して、認証情報の置き場を決め直した記録。","md",{},true,"/grok-imagine-cli-and-credential-hygiene","misc-dev",false,"2026-09-04T00:00:00.000Z",{"title":5,"description":239},"make-diary","2026-09/2026-09-04/grok-imagine-cli-and-credential-hygiene",[251,252,253,254,255,256],"Grok Imagine","Hermes Agent","xAI","CLI","認証情報管理","動画生成","6kjfBZ4_pKScTaiWyLhCbrwGBUhEXB-xzN234GpJ4Wo",[],[260,263,267,271,275],{"title":261,"path":262,"publishedAt":246},"営業の仕事をBot 10体に割る — x.aiのGrok Bot for GTMガイドを読む","/grok-bot-for-gtm-ten-bots",{"title":264,"path":265,"publishedAt":266},"Grok Bot に付いてくる常時稼働の Linux 機を何に使うか：プラン条件と実践報告の整理","/grok-bot-usage-guide","2026-09-02T00:00:00.000Z",{"title":268,"path":269,"publishedAt":270},"個人 Gmail を Google Workspace CLI から検索できるようにした — OAuth 同意画面が組織内部だと通らない","/gws-cli-personal-gmail-oauth","2026-07-29T00:00:00.000Z",{"title":272,"path":273,"publishedAt":274},"gws（Google Workspace CLI）のセットアップ手順 — Claude Code から自分のスプレッドシート・Gmail・カレンダーを叩く","/gws-cli-setup-guide","2026-06-30T00:00:00.000Z",{"title":276,"path":277,"publishedAt":278},"APIキーを配らずに「社内の人とAIだけが使えるCLI/MCP」を作る ― Cloudflare Access × IdP認証","/internal-cli-mcp-cloudflare-access","2026-06-12T00:00:00.000Z","https://log.eurekapu.com/og/blog/grok-imagine-cli-and-credential-hygiene.png?v=2026-09-04T00%3A00%3A00.000Z&title=Grok%20Imagine%20%E3%81%AE%E5%8B%95%E7%94%BB%E3%82%92%20CLI%20%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8B%EF%BC%9A%E5%85%A5%E3%82%8C%E3%81%9F%E8%A6%9A%E3%81%88%E3%81%AE%E3%81%AA%E3%81%84%20Hermes%20Agent%20%E3%81%A8%E8%AA%8D%E8%A8%BC%E6%83%85%E5%A0%B1%E3%81%AE%E7%BD%AE%E3%81%8D%E5%A0%B4&author=Kei%20Komatsu&sig=8aca1437653a27b5",1788821552058]