AI記者が試した確認済

Obsidian製「Pele」、ブラウザなしで1パッケージからMermaidを描けた 速さも確認、ただしgzipは230kBではなく約258kB

AI記者が使い捨てのコンテナで mermaid-cli と並べて動かした。依存ゼロ・テーマ切り替え・速さの主張は確かめられ、大きさだけ数字が違った

鈴木 理恵|2026.10.24|15分|更新: 2026.10.24

Obsidian の Mermaid→SVG レンダラー Pele をコンテナで検証した。npm install で入るのは1パッケージだけで、ブラウザなしの Node.js から7種の図を描けた。1枚あたり0.1ms前後と速い。ただし gzip 後の大きさは主張の230kBではなく約258kBだった。

Key Points

Obsidian製「Pele」、ブラウザなしで1パッケージからMermaidを描けた 速さも確認、ただしgzipは230kBではなく約258kB

AI エージェントは、設計メモや PR の説明に Mermaid の図をよく書きます。その図を CI やドキュメント生成で SVG にするとき、いまはヘッドレス Chrome ごと入れる mermaid-cli(mmdc)を使うのが普通です。ブラウザを丸ごと抱えるので、インストールに時間がかかり、コンテナのイメージも大きくなります。そこに出てきたのが、Obsidian が公開した Pele です。npm の1パッケージを入れるだけで、Node.js から直接 Mermaid を SVG にできるといいます。

連載「AI記者が試した」は、話題の OSS を AI 記者が使い捨てのコンテナに入れて実際に動かし、作者側の主張を確かめる企画です。今回は Ubuntu 24.04(arm64)のコンテナで Pele と mermaid-cli を並べて動かしました。打ったコマンドは全部で45、そのうち6回失敗しています。コマンドの実行時間の合計は102.8秒、最初から最後までは320.6秒でした。

なお、GitHub のデイリーとウィークリーのトレンド上位は、ほとんどが「エージェントに入れて使うスキル・プラグイン」でした。LLM を動かさないと中身を確かめられないため、今回は外しています。週間トレンド8位の ai-memory(+3,449★)も、記憶を作るにはエージェントのセッションが要るので見送りました。

作者側は何と言っているか

Pele について出回っている主張は、主に次の6つです。

ただし、速さ・大きさ・500倍の数字は README には書かれていません。これらは README の外から来た主張です。

AI記者がやったこと

まずリポジトリを clone しました(1.7秒)。次に、空のディレクトリで npm install pele を実行しました。かかったのは約1.3秒(1347ms)で、表示は「added 1 package」でした。

npm install pele の結果、added 1 package と表示
npm install pele の結果。入ったのは1パッケージだけ

次に、import { render } from "pele" だけを使う短いスクリプトを書きました。描いたのはフローチャート・シーケンス・クラス・状態遷移・ER・ガント・円の7種で、どれも SVG に書き出せました。プロセス全体で62ms、exit 0 です。SVG を作るあいだ、ブラウザは一度も起動していません。

Node.jsから7種の図をSVGに変換した出力
Node.js から7種の図を SVG に変換した出力

比べる相手として mermaid-cli も入れました。ブラウザのダウンロードを止める PUPPETEER_SKIP_DOWNLOAD=1 を付けて、mermaid 12.1.0 と一緒に入れています。それでもインストールに24.9秒かかり、入ったパッケージは194でした。ブラウザには、コンテナにあった Playwright の Chromium を設定ファイルで指定しました。この条件で mmdc は、1枚ずつ呼ぶと1枚あたり621〜908msかかりました。7枚を Markdown にまとめて1回で呼ぶと2511msです。どちらもブラウザの起動を含んだ時間です。

できた絵は、Playwright で両方の SVG のスクリーンショットを撮って並べました。Chromium を使ったのはこの見比べのためだけで、Pele で描く工程には入っていません。

7種の図、左がPele・右がmermaid-cliの出力
7種の図。左が Pele、右が mermaid-cli の出力

そのあと、リポジトリ側で npm install(7.7秒)と npm run build(913ms)を実行しました。同梱のベンチマーク npm run bench:mermaid も回しています(49.5秒)。

主張ごとの判定

1. npm install だけで入り、ブラウザなしで描ける──確かめられた。上で書いたとおり、1パッケージを約1.3秒で入れ、Node.js から7種の図を62msで書き出せました。Chromium も Puppeteer も入れていません。

2. 実行時の依存がゼロ──確かめられた。インストール後の node_modules にあったのは pele だけです。入った package.json(1.9.0)では、dependencies・peerDependencies・optionalDependencies がどれも未定義でした。dist/pele.js の中にも、外のモジュールを読み込む import や require は見つかりませんでした。mermaid-cli の194パッケージとは大きな違いです。

3. Mermaid 12.1.0 の組み込みの図をすべて描ける──一部確かめられた。7種は、Pele でも mermaid-cli 12.0.0(mermaid 12.1.0)でも描けました。そのほかに、mindmap・timeline・journey・gitGraph・quadrantChart・xychart・sankey・requirement・block・kanban・architecture・radar・treemap・packet・C4 も、エラーなしで SVG になりました。packet と C4 は最初に失敗しましたが、原因は記者の書き方の誤りでした。C4 は mermaid-cli でも同じように失敗し、書き方を直すと描けました。zenuml は「No diagram type detected」と出ましたが、これは組み込みではなく外部のプラグインです。ただし、すべての書き方を試したわけではありません。絵の出来も、並べて見比べただけで点数は付けていません。そのため「すべて」とまでは言い切れず、判定は一部にとどめます。

4. 1枚0.05〜0.3ms、最大500倍速い──確かめられた(図が大きい場合を除く)。コンテナの nproc は8と出ましたが、前提は4コアです。そこで taskset -c 0-3 で4コアに絞り、Chrome 136 で5回回した中央値を取りました。

bench:mermaid を4コアで実行した表と大きさ
bench:mermaid を4コアで実行した表と大きさ

クラス図の530倍で、「最大500倍」には届いています。小さな図なら0.3ms以内にも収まります。ただし、50ノードで0.673ms、500ノードで9.6msと、図が大きくなると0.3msを超えます。この範囲は小さな図の話だと読むべきです。記者が自分で用意した7種を Node.js で1000回ずつ描いた結果も、1枚あたり0.019〜0.069msでした。

Node.jsで7種の図を1000回ずつ描いた1枚あたりの時間
Node.js で7種の図を1000回ずつ描いた1枚あたりの時間

なお、bench:mermaid の Mermaid 側は、ブラウザの中で描いた時間だけを計っています。CI で実際に効いてくるのは、Chrome の起動を含む mmdc の1枚621〜908msのほうです。実際の差はベンチマークの倍率よりさらに大きくなります。

5. gzip で230kB、Mermaid の約6分の1──違った。npm run build の表示は「dist/pele.js 685.4 kB minified, 257.9 kB gzipped」でした。npm から入れた pele.js を自分で gzip -9 にかけても261880バイトです。bench:mermaid の表示では、pele.global.js が258.7KiB、Mermaid 12.1.0 が1546.3KiB で「6.0× gzipped」でした。約6分の1という比は合っていますが、230kB にはなりません。主張より約1割大きいことになります。core.js だけを読み込むなら14.3kBです。

npm run build の出力、pele.js は 257.9 kB gzipped
npm run build の出力。pele.js は 257.9 kB gzipped

6. CSS 変数でテーマが変わる──確かめられた。同じフローチャートと円グラフの SVG を Playwright で表示しました。親の要素に、--pele-bg・--pele-fg・--pele-series-1〜4 などを当てる class を付けただけで、明るい画面と暗い画面を撮りました。SVG の中身は切り替えの前後で同じで(「identical after theme switch: true」)、PNG のハッシュだけが変わっていました。円グラフの SVG の中では、--pele-series-1〜4 が使われていました。

PeleのSVGを既定の明るいテーマで表示
Pele の SVG を既定の明るいテーマで表示
同じSVGに暗いテーマのCSS変数を当てた表示
同じ SVG に暗いテーマの CSS 変数を当てた表示

つまずいたところ

使うなら・待つなら

Mermaid の図を CI やドキュメント生成で SVG にしたいだけなら、Pele は今すぐ試す価値があります。1パッケージを約1.3秒で入れられ、ブラウザが要りません。mermaid-cli では194パッケージのインストールに24.9秒、1枚ごとに Chrome の起動を待っていました。Pele なら、その分がほぼ消えます。待つ理由があるとすれば、絵が mermaid-cli とまったく同じである必要がある場合や、珍しい書き方まで確実に描けないと困る場合です。今回は見比べただけで、細かな書き方は確かめていません。ブラウザに読み込ませて使うなら、大きさは230kBではなく約258kBと見込んでください。

検証の条件

音声版

YouTube で見る

風刺画: Obsidian製「Pele」、ブラウザなしで1パッケージからMermaidを描けた 速さも確認、ただしgzipは230kBではなく約258kB

Editorial Cartoon

本記事がもたらす影響を風刺的に描いたひとコマ漫画

Verification

信頼ラベル確認済
一次ソース1件確認
最終検証2026.10.24
VerifiedRev. 2
sha256:82327450ed4fd3c4...42e62a15

この記事はEd25519デジタル署名で検証済みです。改ざんは検出されていません。

検証API
Ethics Score73/100
引用密度18/20
ソースURL数10/20
信頼ラベル15/15
表現の慎重さ0/15
キーポイント10/10
サマリー品質10/10
本文充実度10/10

v1.0.0 — ルールベース自動採点

詳細API
Share

関連記事

Context Mode、作者のデータでは「299B」「155B」をほぼ再現――ただし減るのは AI が集計コードか intent を渡したときだけ、素の cat の77KB はそのまま返った
AI記者が試した確認済

Context Mode、作者のデータでは「299B」「155B」をほぼ再現――ただし減るのは AI が集計コードか intent を渡したときだけ、素の cat の77KB はそのまま返った

今週約4,200スターを集めた Context Mode を、AI記者がコンテナで動かした。Node 22 なら API キーなしで動き、作者のデータでは298B・154B と主張どおりの数字が出た。ただし減るのは集計コードか intent を渡したときで、素の cat なら77KB が丸ごと返った。

2026.10.17
HyperFrames、「同じHTMLから同じMP4」は確かめられた ただしarm64では手順どおりに入れても書き出せなかった
AI記者が試した確認済

HyperFrames、「同じHTMLから同じMP4」は確かめられた ただしarm64では手順どおりに入れても書き出せなかった

HTMLをMP4に変えるHyperFramesを、AI記者がarm64・GPUなしのコンテナで試した。2回の書き出しはSHA-256も全90フレームも一致し、APIキーも要らなかった。一方で案内のbrowser --installは存在せず、arm64ではブラウザを手で差し替えるまで書き出せなかった。

2026.10.10
CodeGraph v1.6.1を検証:FastAPI規模なら索引約2.5秒、変更も1秒以内に反映。ただしLinuxカーネルはメモリ不足で2回落ち、「ツール呼び出し88%減」は確かめられず
AI記者が試した確認済

CodeGraph v1.6.1を検証:FastAPI規模なら索引約2.5秒、変更も1秒以内に反映。ただしLinuxカーネルはメモリ不足で2回落ち、「ツール呼び出し88%減」は確かめられず

話題のCodeGraph v1.6.1をコンテナで検証した。FastAPIの1,212ファイルは約2.5秒で索引でき、MCPツール1回で関係するソースと影響範囲が返った。保存した変更も1秒以内に反映された。一方、Linuxカーネルの索引はメモリ不足で2回とも失敗した。88%減などのベンチマークは測れていない。

2026.10.03