یک WIA Code را در یک خط بسازید. در محدودهٔ رایگان نیازی به کلید نیست.
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 هم صادق است. «وقتی استفادهٔ تجمعی به ۱۰۰ میلیون بار برسد، تقویتکننده جدا میشود و لوگوی خودتان جای آن قرار میگیرد» یک وعدهٔ محصول است، پس برای هیچ مسیری استثنا قائل نشدیم. پارامترهای کدگذاری (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
سه نوع آماده وجود دارد. لازم نیست خودتان رشتهها را بسازید — فیلدها را میدهید و سرور محتوای استاندارد 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 بدهید و password را حذف کنید. فیلدهای گمشده یا نادرست با پاسخ HTTP 400 برمیگردند که نام فیلد را مشخص میکند — تصویری ساخته نمیشود، بنابراین یک درخواست نادرست هرگز نوبت رندر را اشغال نمیکند.
هر خط یک کد. اگر به محدودیت نرخ برسد، بهجای توقف در میانه، صبر میکند و ادامه میدهد، و خطهای ناموفق را همراه با شمارهی واقعی خط گزارش میکند.
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 است. برای دریافت base64 و فراداده بهصورت JSON، ?format=json را اضافه کنید.
curl -X POST 'https://wiacode.com/api/v1/code?format=json' \
-H 'Content-Type: application/json' \
-d '{"text":"https://wiacode.com","shape":"square"}'
میتوانید آن را مستقیماً از یک وباپ در هر خاستگاهی فراخوانی کنید. این یک 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 | — | پیکسل در هر سلول (۳ تا ۲۰، پیشفرض ۸). هرچه بزرگتر باشد، تصویر بزرگتر خواهد بود. |
| 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 متصل کنید تا کدها را درست در همان گفتگو بسازد. نشانی سرویس https://mcp.wiacode.com/mcp است و نیازی به کلید نیست.
{
"mcpServers": {
"wiacode": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
}
}
}
اگر کلاینت شما مستقیماً از Streamable HTTP پشتیبانی میکند، فقط آدرس را به آن بدهید.
| ابزار | عملکرد |
|---|---|
| get_wia_code_info | توضیح میدهد WIA Code چیست، چه تفاوتی با کد QR دارد و ظرفیت هر شکل چقدر است. فراخوانی این ابزار در ابتدا خطاها را کاهش میدهد. |
| generate_wia_code | متن را به تصویر کد تبدیل میکند. اگر از ظرفیت فراتر رود، میگوید کدام شکلها جا میشوند. |
| generate_wia_code_wifi | اطلاعات ورود Wi-Fi — با اسکن کردن، بدون تایپ password به شبکه متصل میشوید. |
| 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 تقویتکننده راهنمایی است که به افرادی که اسکنر اختصاصی ندارند نیز کمک میکند آن را بخوانند.