avatar
蕭富云モバイルアプリ開発者 · Android & Flutter

Frame0 と ASCII ワイヤフレーム — 同じ画面のコストを実測

2026-05-22 · 7 min read

最近、Frame0 を Claude Code の MCP ツールセットに繋いでみた。狙いはシンプルで、AI に会話の流れでサッとワイヤフレームを描かせれば、文字で説明するより早く意思疎通できるはず——というもの。

ただ、そこで一つ気になることが出てくる。ワイヤフレーム一枚を描くのに、結局トークンはいくらかかるのか?

自分の side project である Heimdall(Jira のデスクトップクライアント)を実験台にして、メイン画面を二通りで描いてみた。プレーンテキストの ASCII と、MCP 経由の Frame0 ベクター。同じ構造、同じモックデータ、同じセッションの中で。

二枚を並べる

ASCII 版、メッセージ内に直接描画、MCP 呼び出しゼロ:

ASCII fallback wireframe of the Heimdall tickets page

Frame0 版、93 個の図形、PNG として出力:

Frame0 wireframe of the Heimdall tickets page

同じ画面——AppBar、タブストリップ、検索ボックス、アサイン者ドロップダウン、テーブル(サブタスクのインデント、サブタスク非表示インジケータ、優先度アイコン、ステータス pill 付き)——を、それぞれの媒体で一回ずつ描いた。

数字

観点ASCIIFrame0
トークンコストほぼゼロ(メッセージ文字)50k–70k(MCP のラウンドトリップ)
実時間数秒数分(LLM の生成 ≫ MCP の処理)
視覚的な精度等幅のズレ、絵文字でアイコン代用真のベクター、PNG 出力可能
対外的な利用不向き向く
修正コスト文字列を編集再描画、または figure ごとに update

Frame0 の 50k–70k は均等に分布していない。内訳はこう:

~25k 節約できる小さな一手

一周回ったあとには、使ったアイコン名がすべて手元に残った:

用途Frame0 のアイコン名
Storybookmark
Task / Sub-tasksquare-check
Bugbug
Epiczap
設定settings
検索search
ユーザーuser
ドロップダウンの矢印chevron-down
優先度 上 / 下arrow-up / arrow-down
優先度 最高 / 最低chevrons-up / chevrons-down

次に同種の画面を描くときは、search_icons を呼ばずに名前を直接指定すればいい。この一手だけで、合計使用量が 50k–70k から ~30k に下がる。

もう一つ小さな落とし穴。create_iconname パラメータはアイコンライブラリの名前であって、自分が分かりやすいラベルではない。初回は自分が認識しやすい名前(例えば action-hash)を入れて、五個のアイコンが全部 500 で返ってきた。hashrefresh-cw といった実在のアイコン名に直したら通った。一回で 1.5k トークン無駄にしている。

結局たどり着いたワークフロー

構造の合わせ込みは ASCII。形が固まってから Frame0 で最終稿を描く。

ASCII 版の価値は見栄えではない——修正コストがほぼゼロであること。列の順序、グルーピングの論理、空状態の振る舞いをテキスト版で先に決めておけば、Frame0 のターンは合意済みの構造を視覚化するだけになる。

最初から Frame0 で座標を動かし、アイコンを差し替え、pill の幅を調整していたら、コストは 50k–70k では済まない——その二倍、三倍になる。図形を一つ直すたびに update_shape が走り、update は create と同じだけ高い。

MCP ツールを試している人へ


このベンチマークは 2026-05-22 に Claude Opus 4.7 上で実施した。Frame0 MCP クライアント、Heimdall のメイン画面(800×632 のデスクトップフレーム)をサンプルとしている。数字は推定値で、セッション内から harness の正確なトークンカウントを読むことはできない。実際の値は session usage パネルが基準。