どうも、マイクです。おはようございます。
2026年5月11日、月曜日の朝7時になりました。
ここからの時間は「zenncast」、きょうも元気にお送りしていきます。
この番組では、Zennに投稿された最新&話題の記事の中から、気になるトレンドをピックアップしてご紹介していきます。
通勤・通学中のエンジニアのみなさんも、これからコード書くぞっていう方も、よかったら耳だけ貸していってください。
さて今日は、お便り紹介はお休みで、そのぶんガッツリと記事を紹介していきたいと思います。
きょうピックアップする記事は全部で5本です。
AIコーディング、Claude Code、Codex CLI、Copilot CLIあたりがっつり出てきますので、このへん気になっている方はぜひ最後までお付き合いください。
ではまず、1本目。
タイトルは「CodexをローカルLLMで駆動する」。
これは、Codex CLIをクラウドのモデルじゃなくて、手元のローカルLLMで動かしちゃおう、というチャレンジの記事です。
筆者の方は、ベンチマーク目的でCodexを使いたかったんですが、Codexが「Responses API」のみ対応で、`llama.cpp`みたいなChat Completions前提の仕組みとはそのままではつながらなかった、と。ここで一回断念しかけるんですね。
そこで登場するのが、LM StudioのCLI「lms」とGGUFモデル。
この「lms」をOpenAI互換サーバとして立ち上げるところまで、シェルスクリプトで自動化してあげる。モデルのインポート、ロード、サーバ起動まで一気通貫でやっちゃう構成です。
さらに、thinking機能をオフにしたいときのために、プロキシを1枚かませる工夫も入れているのが面白いところ。
ポイントは、Codex側の`config.toml`で、Responses APIのエンドポイントをこの「lms」に向けてあげて、モデル識別子も合わせること。これによって、`codex --model ... -c model_provider=lms`みたいな感じで、クラウドじゃなくてローカルLLMを裏側で呼び出せるようにしているんですね。
動作自体は問題なくいけるんだけど、Codexはツール呼び出しや差分確認をかなり頻繁に行う設計なので、モデルの性能と速度にかなり依存するよ、という注意書きもあります。商用モデル並みのサクサク感を期待するとちょっとツラいけど、同じハーネス上でエージェント性能を比較できるメリットは大きい、ときれいにまとめてくれています。
ローカル派の方、そしてベンチマーク沼に足を突っ込みつつある方には、かなり刺さる内容じゃないかなと思います。
。。。。
続いて2本目。
タイトルは「人間がMarkdownを書いたり修正しない時代に、Claude Code hookでドキュメントを自動でファンシーHTML化する」。
これ、発想がかなり現代的でして、「もうMarkdownを書くのは人間じゃなくてAIがメインになるんじゃ?」という前提からスタートしています。そうなると、Markdownって「書きやすさ」のためのフォーマットだったはずなのに、その前提が崩れるわけですよね。
じゃあ人間が気にすべきは何かというと、「読みやすさ」。読むときは、もっとリッチなHTMLでいいじゃないか、という提案です。
仕組みとしては、Claude CodeのPostToolUse hookを使います。
Write/Edit/MultiEditのツールが走って、`.md`ファイルが書き出された瞬間に自動でスクリプトを起動。
そこでまずは`python-markdown`で素直なHTMLを生成しつつ、さらに`claude -p`のCLIをサブプロセスとして叩いて、インフォグラフィックっぽい、ちょっと凝ったHTMLビューを作る。で、そのままブラウザで開く、という流れ。
対象ファイルのフィルタリングだったり、「勝手にブラウザ開かれると困るよね」ということで確認ダイアログをかませたり、バックグラウンドで静かに動くようにしたりと、実用面での細かい工夫も丁寧に書かれています。
注意点としては、APIコストがそれなりにかかることや、コードフェンス周りでのHTML生成のクセなども挙げられていて、「やってみたいけど怖い」という人の背中を押してくれる感じ。
最終的な提案は、「書く用=Markdown」「読む用=HTML」と役割を分けて、Claude CodeのhookとCLIでそこを自動変換してしまおう、というものです。
ドキュメントレビューの体験を変えたい人には、かなりヒントの多い記事になっています。
。。。。
さあ3本目。
タイトルは「Claude Codeでの個人開発とセキュリティ管理」。
こちらは、AIコーディング時代のセキュリティ、特に「秘密情報どう守る?」というテーマに真正面から向き合った記事です。
筆者は、健康データの収集・分析システム、なんと7リポジトリにわたるプロジェクトを、ほぼClaude Code中心で回しているという猛者。
CLAUDE.mdを使って設計の共有をしたり、テストやCIの整備をAIに手伝ってもらったり、未経験領域の実装をサポートしてもらったりしながら、一人でも大規模で一貫性のあるアーキテクチャをキープできたと述べています。
ただ、その過程で浮き彫りになったのが秘密情報の扱い。
`.env`ファイルやOAuthトークンなどを、AIがファイル読み取りやBashコマンド経由で参照しようとするケースが出てきて、「読まないでね」とプロンプトで言うだけでは全然足りない、ということに気づいた、と。
そこで取った対策が、「経路の排除」。
・秘密情報はmacOSのKeychainや、プロジェクト外の場所に移動する
・リポジトリ配下には平文の秘密情報ファイルを置かない
という物理的な構成変えに加えて、
CLAUDE.mdに「秘密情報はこう扱う」というポリシーをしっかり明文化。
さらに`settings.json`の`permissions.deny`で、`.env`や特定パス、それから危険なBashコマンドをツールレベルでブロックするという多層防御を構築しています。
その結果、これまで秘密情報インシデントは起きていないとのこと。
記事の締めくくりでは、「AIコーディングツール時代の秘密情報管理は、ツールの設定だけじゃなく、開発環境そのものの設計として捉えるべきだ」と述べていて、これはチーム開発でも役立つ視点だなあと感じます。
個人開発でAIをガンガン使っている方には、ぜひ一度読んでおいてほしい内容です。
。。。。
4本目いきましょう。
タイトルは「Claude Code・Codex CLI・Copilot CLI を QCD で比較する(オトナの自由研究 #16)」。
QCDといえば、品質(Quality)、コスト(Cost)、納期や速度(Delivery)。
これをAIコーディングCLI三兄弟、Claude Code、Codex CLI、GitHub Copilot CLIにあてはめて、Pythonのコーディングタスクを3種類×10回=90試行やらせて、ガチ比較した自由研究です。
評価指標も本気で、ISO/IEC 25010ベースで5つの軸+致命的失敗の有無というゲートを設けて、品質を採点。静的解析などのルール採点と、別LLMによる採点を50:50でブレンドするという、かなり凝ったスコアリングをしています。
その結果、品質スコアはなんと3者とも98.3〜99.5とほぼ互角。
「どれが決定的に弱い」という感じではなかった、と。
一方でスピードはClaude Codeが約35%ほど速くて、コストはCopilot CLIが圧倒的に安い、という特徴が出ています。
Codex CLIについては、pytest関連ファイルを勝手に作りがち、などの独特な挙動も観察されていて、そこはルールベースの採点だけだと拾えない欠点を、LLM採点がきちんと補足してくれているのが面白いところです。
さらに、コードレビュー用途で見たときには、CLIそのものの違いよりも、採点に使うモデルの違いが効いてくる、という指摘もあります。
Opus 4.7とGPT-5.5を比較したとき、同じコードでも指摘の粒度や観点にかなり差が出る、と。
そこから導かれた実践的な結論は、
「迷ったらClaude Codeを選べばバランスがいい。コスト重視ならCopilot CLI」
「コードレビューはまずモデル選びが大事」
という2つ。
これからどのツールを軸にしようか悩んでいる方には、かなり参考になるデータになっています。
。。。。
そしてラスト5本目。
タイトルは「Claude Code の Agent Teams ぽいものを自分で作ってみたい、ついでに Codex でも使いたい。」
こちらは、Claude Codeの「Agent Teams」機能が好きすぎる筆者が、「でも壊れやすいし、最新機能には追従しづらいし、内部API非公開でカスタマイズもできない…じゃあ自分で似たもの作るか!」と立ち上がった話です。
既存の代替案として「Tmuxでタブ分けて複数起動する」というやり方があるんですが、これだとpermissionのリクエストが各ペインに散らばってしまって、管理がすごく面倒になるんですよね。
そこで登場するのが、筆者が作ったPython製CLI「cafleet」。
Tmuxをラップして、Claude CodeとCodexの両方で、DirectorとTeammateという役割分担を実現するツールです。
セッションやメンバーの作成、メッセージ送信は専用のコマンドで行い、その裏側ではSQLiteを使って状態を管理。
permissionについては、Teammate側は「dontAsk/never」設定で一切質問させないようにして、コマンド実行の許可はすべてDirector側に集約。
Directorから `! {command}` という形で命令を投げると、それをTeammateが素直に実行する、という設計になっています。
これによって、Agent Teamsっぽい「複数エージェントが協調して動く」体験と、「permissionのポップアップに追い回されるストレスからの解放」を、自前環境で再現できるようになった、と。
インストールして、いくつかの簡単なコマンドを叩くだけで動かせるとのことで、マルチエージェントに興味がある方には、実験用の土台としてかなり良さそうです。
純正機能を待つだけじゃなくて、自分で同等の仕組みを組み立ててしまう、そのエンジニア魂が光る記事でした。
。。。。
というわけで、きょうのzenncastでは、
1本目「CodexをローカルLLMで駆動する」で、Codexをローカルモデルにつなぐ工夫と注意点、
2本目「MarkdownをClaude Code hookでファンシーHTML化」で、書くフォーマットと読むフォーマットを分ける発想、
3本目「Claude Codeでの個人開発とセキュリティ管理」で、AI時代の秘密情報防衛ラインの張り方、
4本目「Claude Code・Codex CLI・Copilot CLI を QCD で比較」で、AIコーディングCLI三兄弟のガチ比較、
そして5本目「Agent Teamsぽい環境を自前で作る話」で、cafleetによるマルチエージェント運用、
この5つをご紹介しました。
気になった記事があった方は、このあとゆっくり本文を読んでみてください。詳しい内容は番組のショーノートにもまとめておきます。
また、zenncastでは番組の感想や、「こんなテーマを取り上げてほしい」というリクエストもお待ちしています。
開発の合間に聞いているよ、朝の支度中に流してるよ、なんて一言でも、とても励みになります。
それでは、きょうも良い一日をお過ごしください。
お相手はマイクでした。
また次回のzenncastでお会いしましょう。