Crea un WIA Code en una línia. No cal clau dins dels límits gratuïts.
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.
El QR booster sempre s'inclou. No hi ha opció per desactivar-lo — el mateix passa amb l'API, MCP i CLI. "Quan l'ús acumulat arribi a 100 milions de vegades, el booster se separa i el teu propi logotip ocupa el seu lloc" és una promesa del producte, per això no hem fet cap excepció per a cap via. Els paràmetres de codificació (grid, bpc, bridge) també estan fixats al servidor.
npx wiacode "https://wiacode.com" --shape heart
Funciona immediatament a Node 18 o posterior, sense instal·lació. No té dependències, així que descarregar-lo triga uns segons.
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
Tres tipus ja preparats. No cal que munteu les cadenes vosaltres mateixos — passeu els camps i el servidor construeix contingut Wi-Fi / vCard / iCalendar estàndard, idèntic byte a byte al que produeix el generador d'aquest lloc.
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 | obligatori | opcional |
|---|---|---|
| wifi | ssid, password | security (WPA·WEP·nopass), hidden |
| card | name | org, tel, email |
| event | title, start | end, location, desc |
Les hores són "2026-09-01 19:00". Per a una xarxa Wi-Fi oberta, passeu security=nopass i ometeu password. Els camps absents o mal formats retornen un HTTP 400 amb un missatge que indica el camp — no es genera cap imatge, de manera que una sol·licitud incorrecta mai ocupa un lloc de renderització.
Una línia per codi. En arribar al límit de velocitat, espera i continua en lloc d'aturar-se a mitges, i informa de les línies fallides amb el seu número de línia real.
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
La resposta és image/png. Afegeix ?format=json per obtenir base64 i metadades en 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"}'
Podeu cridar-lo directament des d'una aplicació web de qualsevol origen. És una API pública que no utilitza galetes, per la qual cosa el CORS està obert.
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
| nom | obligatori | descripció |
|---|---|---|
| text | ✓ | El text o URL a codificar. És millor escurçar primer els URL llargs. |
| type | — | wifi · card · event. S'indica en lloc de text — el servidor construeix la cadena estàndard a partir dels camps. Vegeu la secció Tipus més amunt. |
| shape | — | Silueta (per defecte heart). Consulta la taula de sota. |
| cellPx | — | Píxels per cel·la (3–20, per defecte 8). Un valor més gran vol dir una imatge més gran. |
| label | — | Una etiqueta que es guarda a les metadades. No es dibuixa a la imatge. |
Cada silueta admet una quantitat diferent (bytes UTF-8). Fes servir square per a contingut llarg; qualsevol forma funciona per a enllaços curts.
| shape | bytes | shape | bytes |
|---|---|---|---|
| square | 1450 | rose | 586 |
| round | 1093 | clover | 521 |
| hex | 861 | star | 386 |
| heart | 854 | boomerang | 386 |
Connecta'l a un client d'IA com Claude i crearà codis directament a la conversa. El punt final és https://mcp.wiacode.com/mcp i no cal cap clau.
{
"mcpServers": {
"wiacode": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
}
}
}
Si el teu client admet Streamable HTTP directament, només cal donar-li l'URL.
| eina | què fa |
|---|---|
| get_wia_code_info | Explica què és un WIA Code, en què es diferencia d'un codi QR i la capacitat de cada silueta. Cridar-lo primer redueix els errors. |
| generate_wia_code | Converteix text en una imatge de codi. Si supera la capacitat, indica quines siluetes hi encaixarien. |
| generate_wia_code_wifi | Credencials Wi-Fi — en escanejar-lo us connecteu a la xarxa sense escriure la contrasenya. |
| generate_wia_code_card | Un contacte com a vCard estàndard — en escanejar-lo es proposa desar-lo als contactes del telèfon. |
| generate_wia_code_event | Un esdeveniment com a iCalendar estàndard — en escanejar-lo s'afegeix al calendari. |
503. Torna a provar-ho al cap de poc.429 juntament amb els segons que cal esperar.Si en necessites més — per a emissió a l'engròs, col·laboracions o ús comercial, envia'ns un correu. Et donarem una clau que augmenta el límit. 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 és un producte de SmileStory Co., Ltd. El QR booster és una guia que ajuda també les persones sense l'escàner dedicat a llegir-lo.