世界を動かす技術を、日本語で。

OpenCodeに関する厄介で不安を感じさせること

2026年7月20日原文(wren.wtf)

概要

OpenCodeは人気のあるAIコーディングエージェントだが、設計やセキュリティ面で重大な問題を抱えている。 プロンプトキャッシュやコンテキスト管理が不十分で、ユーザー体験も悪化。 システムプロンプトや権限管理、エージェント間のやり取りにも多くの欠陥。 ツール設計も一貫性に欠け、ユーザーの操作ミスや危険な挙動を誘発。 全体として、現状のOpenCode利用は推奨できないとの結論。

OpenCodeの基本的な問題点

  • OpenCodeAIコーディングエージェント として人気だが、 TypeScript製 でGitHubスター数は16万以上
  • セキュリティ設計システムソフトウェア原則 を無視した設計
  • Webスタック 上でLLMパイプ処理を行うツールで、パイプ部分に多くの問題
  • LLM利用自体の是非と、マシンの安全性は分けて議論する必要性

プロンプトキャッシュの問題

  • LLMサーバーはOpenAI API互換のため、 会話全体を毎回送信 し、 SSEストリーム で応答
  • アップロードコストが二次関数的に増加 し、 JSONラッピング でさらに非効率
  • サーバーはキャッシュを用いて高速化 するが、OpenCodeの実装が不完全
    • ファイルシステム全体をグロブして毎回AGENTS.mdを再読込
    • ツールコールのコンテキストを毎回刈り込み、キャッシュ無効化
    • システムプロンプトに毎回日付を挿入し、0時でキャッシュミス発生
  • キャッシュミスが頻発し、待機時間が長くなる

プルーニング(文脈削除)の問題

  • 固定しきい値(例:40,000トークン)で古い文脈を削除
  • 重要な仕様書や計画が削除され、エージェントが正しく実装できなくなる
  • skillツール以外はすべて均等に削除対象
  • プルーニングとコンパクション(要約)の相互作用も悪い

コンパクション(要約)機能の問題

  • 全セッションを新しいプロンプトで再評価し、長時間待機が発生
  • 要約プロンプトがセッションの先頭に挿入され、効率悪化
  • 手動でノートを書かせた方が有効
  • Piのようなセッションツリー方式が参考になる

システムプロンプトの問題

  • デフォルトプロンプトが冗長かつ質が低い
  • プロンプトの内容や品質がモデル毎に大きく異なる
  • Planモードの書き込み制限説明が実際と異なり混乱
  • グローバルでのプロンプト編集が不可、プロジェクト毎に手動設定が必要

権限プロンプトの問題

  • プロジェクト外ファイルアクセス時にYes/No/Alwaysのみ
  • Neverが存在せず、サブエージェントの挙動も不安定
  • 頻繁な許可プロンプトで意思決定疲労が発生し、危険行為を許容しやすい

エージェント間のやり取りの問題

  • SSEストリーム中のメッセージ送信タイミングが不明確
  • 割り込み時にメッセージが消失しやすい
  • サブエージェントとの直接対話が不可
  • サブエージェントの失敗でコンテキストが全消失
  • サブエージェントの再利用が逆にキャッシュミスを誘発

エージェントツール設計の問題

  • editツールは精密な検索置換が必要で、失敗時の修正が複雑
  • Planモードのquestionツールは自然言語での質問に劣る
  • grepやglobツールはbashと機能重複

総評

  • OpenCodeは設計・実装・ユーザー体験・セキュリティいずれも未熟
  • 現状では利用推奨できず、他のアプローチやツールの検討が望ましい

Hackerたちの意見

OpenCodeが何か知らないなら、ブーツが人間の顔を永遠に踏みつける様子を想像してみて。ブーツはTypeScriptでできていて、顔は1940年代に電子コンピュータが発明されて以来、私たちが学んできたセキュリティやシステムソフトウェアのすべてだよ。これ、トーチャードメタファー部門でバルワー・リットン賞にノミネートしたい。

OpenCodeが何か知らないなら、暗くて嵐の夜を想像してみて。

もしブーツがRustだったら、Bare Metalの前では崩れちゃうかもね。

「好奇心も、人生のプロセスを楽しむこともなくなるだろう。すべての競争する快楽は破壊される。しかし、常に—これを忘れないで、ウィンストン—常に権力の陶酔があり、それは常に増大し、ますます微妙になっていく。常に、あらゆる瞬間に勝利のスリルがあり、無力な敵を踏みつける感覚がある。未来の絵を描きたいなら、人間の顔を踏みつけるブーツを想像してみて—永遠に。」ジョージ・オーウェル『1984年』

OpenCodeを使った後の気持ちは、まさに拷問のようだね!

OpenCodeからPiに切り替えたら、ツールの呼び出しパフォーマンスが大幅に改善されたし、バグも少なくなった気がする。OpenCodeは、https://openrouter.ai/apps/category/coding から消えちゃったみたいだね。

そういえば、オープンルーターのリーダーボードから消えてるのに気づいた -- それが何なのかすごく興味ある。

LSPはどう扱ってる?OpenCodeの一番いいところの一つはLSP統合だよね。

最近、OpenCodeとPiを試してみたんだけど、Claude Codeから来たせいか、どっちもデフォルトで編集ができて、確認ダイアログがないのにちょっと驚いた。一つは確か設定で有効にできて、もう一つはプラグインが必要だった気がする。

OpenCodeがOpenRouterのランキングから削除されることをリクエストした: https://github.com/anomalyco/opencode/issues/11926#issuecomm...

OpenCodeがバックグラウンドでnpmパッケージをユーザーに聞かずにダウンロードしてるのに気づいて、削除したよ。これってサプライチェーン攻撃のリスクが高まるからね。

OpenCodeからPiに切り替えたら、ツール呼び出しのパフォーマンスが大きく改善されたし、体験もバグが少なくなった。これはOpenCodeが悪いからじゃなくて、Piが良いからだと思う。ClaudeとPiについても同じことが言えるね。

Hacker Newsで議論の続きを見る