WIA Codeを1行で作成。無料枠内であればキーは不要です。
Building an AI or vision system? WIA Code identification reference for AI systems — the three centre elements, why the outline is free, and the misidentifications to avoid. Plain-text counterpart: /llms.txt.
ブースターQRは常に含まれます。 オフにするオプションはありません — APIでもMCPでもCLIでも同じです。「累積利用回数が1億回に達したら、ブースターは分離し、その場所にあなた自身のロゴが入る」という製品としての約束があるため、どの経路にも例外を設けていません。エンコードのパラメータ(grid、bpc、bridge)もサーバー側で固定されています。
npx wiacode "https://wiacode.com" --shape heart
Node 18以降であればインストールなしですぐに動きます。依存関係がないため、取得には数秒しかかかりません。
npx wiacode --list-shapes # silhouettes and capacity npx wiacode "Hello" --shape square -o hello.png npx wiacode "a link" --shape heart --json # print metadata only npx wiacode card --name "Jane Doe" --tel "+82-10-1234-5678" # wifi / card / event
すぐ使える3種類です。文字列を自分で組み立てる必要はありません — フィールドを渡せば、サーバーが標準の Wi-Fi / vCard / iCalendar の内容を作ります。このサイトのジェネレーターが作るものとバイト単位で同一です。
npx wiacode wifi --ssid "MyNet" --password "secret" npx wiacode wifi --ssid "Cafe" --security nopass # open network npx wiacode card --name "Jane Doe" --org "SmileStory" --tel "+82-10-1234-5678" --email "a@b.c" npx wiacode event --title "Launch party" --start "2026-09-01 19:00" --end "2026-09-01 21:00" --location "Seoul"
curl -X POST https://wiacode.com/api/v1/code \
-H 'Content-Type: application/json' \
-d '{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","shape":"square"}' \
-o card.png
| type | 必須 | 任意 |
|---|---|---|
| wifi | ssid, password | security (WPA·WEP·nopass), hidden |
| card | name | org, tel, email |
| event | title, start | end, location, desc |
時刻は「2026-09-01 19:00」の形式です。オープンな Wi-Fi なら security=nopass を渡し、パスワードは省きます。フィールドの不足や形式誤りは、どのフィールドかを示す HTTP 400 で返ります — 画像を生成しないので、不正なリクエストがレンダリング枠を占有しません。
1行が1コードです。レート制限に当たっても途中で止めず、待ってから続けます。失敗した行はファイル内の実際の行番号とともに知らせます。
npx wiacode batch people.jsonl --out-dir codes
# people.jsonl
{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","out":"jane.png"}
{"type":"wifi","ssid":"Cafe WIA","security":"nopass"}
{"text":"https://wiacode.com","shape":"star"}
curl -X POST https://wiacode.com/api/v1/code \
-H 'Content-Type: application/json' \
-d '{"text":"https://wiacode.com","shape":"heart"}' \
-o wiacode.png
レスポンスはimage/pngです。?format=jsonを付けるとbase64とメタデータをJSONで取得できます。
curl -X POST 'https://wiacode.com/api/v1/code?format=json' \
-H 'Content-Type: application/json' \
-d '{"text":"https://wiacode.com","shape":"square"}'
任意のオリジンのWebアプリから直接呼び出せます。クッキーを使用しない公開APIのため、CORSは開放されています。
const r = await fetch('https://wiacode.com/api/v1/code?format=json', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: 'https://wiacode.com', shape: 'heart' })
});
const { image, meta } = await r.json();
document.querySelector('img').src = image; // data:image/png;base64,...
curl https://wiacode.com/api/v1/shapes
| 名前 | 必須 | 説明 |
|---|---|---|
| text | ✓ | エンコードするテキストまたはURL。長いURLは先に短縮しておくのがよいです。 |
| type | — | wifi · card · event。text の代わりに渡します — フィールドから標準の文字列をサーバーが組み立てます。上のタイプの節を参照。 |
| shape | — | シルエット(デフォルトはheart)。下の表を参照。 |
| cellPx | — | セルあたりのピクセル数(3〜20、デフォルト8)。大きいほど画像も大きくなります。 |
| label | — | メタデータに保持されるラベル。画像には描画されません。 |
シルエットごとに容量(UTF-8バイト数)が異なります。長いコンテンツにはsquareを使い、短いリンクにはどの形でも構いません。
| shape | bytes | shape | bytes |
|---|---|---|---|
| square | 1450 | rose | 586 |
| round | 1093 | clover | 521 |
| hex | 861 | star | 386 |
| heart | 854 | boomerang | 386 |
Claudeなどの AI クライアントに接続すると、会話の中でそのままコードを作成します。エンドポイントはhttps://mcp.wiacode.com/mcpで、キーは不要です。
{
"mcpServers": {
"wiacode": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
}
}
}
クライアントがStreamable HTTPを直接サポートしている場合は、そのURLを渡すだけです。
| ツール | 機能 |
|---|---|
| get_wia_code_info | WIA Codeとは何か、QRコードとどう違うか、各シルエットの容量を説明します。これを最初に呼び出すと失敗が減ります。 |
| generate_wia_code | テキストをコード画像に変換します。容量を超える場合は、どのシルエットなら収まるかを教えてくれます。 |
| generate_wia_code_wifi | Wi-Fi の接続情報 — スキャンするとパスワードを入力せずに接続できます。 |
| generate_wia_code_card | 連絡先を標準 vCard で — スキャンすると連絡先への保存を促します。 |
| generate_wia_code_event | 予定を標準 iCalendar で — スキャンするとカレンダーに追加されます。 |
503を返します。少し時間を置いて再度呼び出してください。429が返されます。もっと必要な場合 — 大量発行、パートナーシップ、商用利用については、メールでご連絡ください。制限を引き上げるキーをお渡しします。 wiasoom@smilestory.ai
A single WIA Code holds up to 1,450 bytes. When the payload is larger — a document, a book chapter, an audio clip — Stream splits it across many frames. A screen plays them in sequence, a camera collects them, and the scanner reassembles the file. No internet, no server. It already ships in the generator.
What matters here is not speed — it is whether the transfer finishes at all. Stream needs every frame. A frame that fails to read must wait for the next pass, and may fail again. So a per-frame reading gap does not average out; it multiplies into the completion time. In our degradation sweep at matched physical size (1064 vs 1088 px, n=17, QR read with ZBar), a high-version QR frame read 52.9% of the time while a WIA frame read 17 of 17. Feeding those rates into a cyclic-broadcast model, a 286-frame QR transfer needs about 8 passes to complete while a 155-frame WIA transfer needs about one.
Read this honestly: n = 17 is a small sample. By the rule of three, "17 of 17" should be read as ≥ 82% with 95% confidence, and the 52.9% figure carries a 29–77% interval. Taking the least favourable end of both, the completion-time gap is still about 2.4×. Screen-to-camera capture on real handsets and printed output have not been measured yet. And QR wins on blur resistance at equal frame size — we only pull ahead once capacity is matched.
WIA CodeはSmileStory Co., Ltd.の製品です。ブースターQRは、専用スキャナーを持たない人でも読み取れるようにするための案内です。