OpenAIは回答が表示された後も動作を続けるChatGPTインターフェイスを構築した
Codexクライアントコードは、配信後に特定のウィジェットを更新できるサーバー指示型のGenUIレーンを明らかにしており、サードパーティのMCPアプリ向けのOpenAIの公開Apps SDKとは別物です。
By Ryan Merket · Published · Updated
RUNTIMEWIRE INVESTIGATION — Scoop
Original reporting by RuntimeWire, based on reverse engineering.
なぜ重要なのか
タスク特化型ソフトウェアを回答内に直接埋め込むことで、ユーザーをスタンドアロンのツールやウェブサイトに送るのではなく、ChatGPT内に留めておくことができる。
現在のアーキテクチャはクローズドでファーストパーティであるため、OpenAIがどのインターフェイスに配布されるかを制御しており、外部開発者には同等の経路がない。
それにより、クライアントおよびインターフェイス層はモデルの品質に加えて別のロックイン要因となる。
Reporting record
Finding
OpenAI’s Codex desktop client contains an undocumented GenUI architecture capable of delivering structured conversational interfaces, alongside a locally bundled catalog of 467 versioned “Learning Block” types.
How we verified
Methods: reverse engineering.
RuntimeWire independently extracted and analyzed the signed Windows distribution of OpenAI’s Codex desktop client. The package contains a 1.09 MB Learning Block runtime with 442 embedded manifests representing 467 unique type-and-version combinations. The client describes these objects to users as “Interactive learning block[s]” and includes dedicated rendering, control, caption, example, analytics and error-handling systems. Recovered metadata includes matched_type, server_learning_block_version, rendered_learning_block_version, initial_values, thumbnail_asset_key, widget_type and display_mode. Separate application code exposes a generic genui message type and an authenticated endpoint at: /conversation/{conversation_id}/message/{message_id}/genui/refresh_widget The associated client operation is named refreshGenUiWidget, with genui_refresh metadata. The code can also reinterpret a generic GenUI payload as a charts_widget_v2, indicating that GenUI is a broader delivery layer rather than another name for Learning Blocks. Learning Blocks identify their default render source as: CHATGPT_MATH_BLOCK_RENDER_SOURCE_GENUI_LEARNING_BLOCK This establishes the relationship supported by the code: GenUI is the underlying interface architecture, while Learning Blocks are a first-party family of interactive modules delivered through it. The package includes explicit fallback reasons—missing_matched_type, unsupported_matched_type and external_egress_blocked—showing that the server selects a block type and the client renders it only when the necessary local implementation and permissions are available. RuntimeWire found 901 visualization-related JavaScript chunks and 552 example-related chunks. Those numbers describe compiled files, not unique products. The defensible catalog count is 467 unique versioned types, recovered from the manifests themselves. Public OpenAI documentation describes the currently available Visualize feature, but does not document the GenUI name, its refresh endpoint, the Learning Blocks registry or the scale of the bundled catalog.
- Parsed the supplied Codex
app.asarwithout modifying the signed installation. - Verified its cryptographic hash against the installed package.
- Indexed the webview assets.
- Located the generic GenUI request and refresh paths.
- Traced generic
genuireferences into recognized widget types. - Identified the explicit
GENUI_LEARNING_BLOCKsource value. - Followed the Learning Block content-reference renderer.
- Extracted the Learning Block manifest registry.
- Mapped minified manifest variables back to 467 unique identifiers.
- Counted manifest versions.
- Recovered subject-group labels.
- Traced visualization, controls, captions, thumbnails and examples.
- Examined fallback, analytics, feedback and follow-up behavior.
- Compared the findings with OpenAI’s public description of Visualize.
- Separated confirmed client behavior from claims requiring server-side evidence.
Tested versions:
- Windows package:
OpenAI.Codex_26.820.7780.0_x64__2p2nqsd0c76g0Internal application version:26.820.60940Build:7119
Reproduction
RuntimeWire independently reproduced the core finding.
Obtain the same signed Codex Windows package. Record the SHA-256 digest of app/resources/app.asar. Copy the archive to a separate analysis directory. Extract it using an Electron-compatible ASAR utility. Locate webview/assets/learning-block-Cr6UKzy-.js. Parse the embedded manifests and deduplicate entries by their type and version fields. Confirm 467 unique type/version combinations. Search the remaining compiled bundles for:- refreshGenUiWidget
- genui_refresh
- /genui/refresh_widget
- charts_widget_v2
- CHATGPT_MATH_BLOCK_RENDER_SOURCE_GENUI_LEARNING_BLOCK
- missing_matched_type
- unsupported_matched_type
- external_egress_blocked
Preserve screenshots, extracted strings, parsing output and hashes as the reporting record. Do not modify the installed or signed application.
File hashes
5DF8BF5A9D30742919390AB11FA419E83AAB0891152569A42C6EA4ABF15386C2
Company response
RuntimeWire requested comment; the company had not responded by publication time.

OpenAIは、Codexデスクトップクライアントに同梱されたコードをRuntimeWireが調査したところ、ChatGPTの回答の一部が表示後も変化し続けることを可能にするサーバー指示型のインターフェースシステムを構築していることが判明した。
OpenAI内部の配管でGenUIと識別されたそのアーキテクチャは、アシスタントメッセージにリフレッシュ指示を付与し、後の更新をスケジュールし、特定のメッセージ内の特定のウィジェットをターゲットにし、サーバーがオブジェクトを完了と宣言するまで停止しないようにすることができる。同じクライアントには、Learning Blocksとして知られるパッケージ化されたインタラクティブモジュールのためのバージョン管理されたマニフェストが467件含まれていた。…
When you purchase through links in our articles, we may earn a small commission. This doesn’t affect our editorial independence.