Garatzaileak — API · MCP · CLI

Sortu WIA Code bat lerro batean. Ez da gakorik behar doako mugen barruan.

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.

Booster QR beti dago barne. Ez dago hura desaktibatzeko aukerarik — gauza bera gertatzen da API, MCP eta CLIrekin. "Erabilera metatua 100 milioi bider iristen denean, boosterra bereizi eta zure logoa jarriko da haren lekuan" produktu-promesa da, beraz ez dugu salbuespenik egin bide bakar batentzat ere. Kodetze-parametroak (grid, bpc, bridge) ere zerbitzarian finkatuta daude.

CLI — lerro bat, instalatu gabe

npx wiacode "https://wiacode.com" --shape heart

Zuzenean exekutatzen da Node 18 edo berriagoan, instalatu gabe. Ez du mendekotasunik, beraz eskuratzeak segundo batzuk baino ez ditu behar.

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

Motak — Wi-Fi, kontaktu-txartela, ekitaldia

Hiru mota prest erabiltzeko. Ez duzu katea zeuk osatu behar — eremuak pasatzen dituzu eta zerbitzariak Wi-Fi / vCard / iCalendar eduki estandarra sortzen du, gune honetako sortzaileak ekoizten duenaren berdin-berdina byte bakoitzean.

CLI

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"

REST

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

Eremuak

typebeharrezkoaaukerakoa
wifissid, passwordsecurity (WPA·WEP·nopass), hidden
cardnameorg, tel, email
eventtitle, startend, location, desc

Orduak "2026-09-01 19:00" moduan idazten dira. Wi-Fi sare irekirako, pasatu security=nopass eta ez jarri password. Falta diren edo gaizki osatutako eremuek HTTP 400 erantzuna ematen dute, eremuaren izena aipatuz — irudirik ez da sortzen, beraz eskaera oker batek ez du inoiz errendatze-txandarik hartzen.

Hainbat batera

Lerro bat kode bakoitzeko. Muga bat betetzen bada, itxaron eta jarraitzen du, erdian gelditu ordez, eta huts egindako lerroak beren benetako lerro-zenbakiarekin jakinarazten ditu.

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"}

REST API

POST /api/v1/code

curl -X POST https://wiacode.com/api/v1/code \
  -H 'Content-Type: application/json' \
  -d '{"text":"https://wiacode.com","shape":"heart"}' \
  -o wiacode.png

Erantzuna image/png da. Gehitu ?format=json base64 eta metadatuak JSON gisa lortzeko.

curl -X POST 'https://wiacode.com/api/v1/code?format=json' \
  -H 'Content-Type: application/json' \
  -d '{"text":"https://wiacode.com","shape":"square"}'

Nabigatzailetik deitzea

Edozein jatorritako web-aplikaziotik zuzenean deitu dakioke. Cookierik erabiltzen ez duen API publikoa da, beraz CORS irekita dago.

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,...

GET /api/v1/shapes

curl https://wiacode.com/api/v1/shapes

Parametroak

izenabeharrezkoadeskribapena
textKodetu beharreko testua edo URLa. URL luzeak lehenago laburtzea hobe.
typewifi · card · event. text-en ordez ematen da — zerbitzariak eremuetatik kate estandarra osatzen du. Ikus goiko Motak atala.
shapeSilueta (lehenetsia heart). Ikus beheko taula.
cellPxPixelak zelulako (3–20, lehenetsia 8). Zenbat eta handiagoa, orduan eta irudi handiagoa.
labelMetadatuetan gordetzen den etiketa. Ez da irudian marrazten.

Siluetak eta edukiera

Silueta bakoitzak kopuru desberdina hartzen du (UTF-8 byte). Erabili square eduki luzerako; edozein forma balio du esteka laburretarako.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — utzi AIri egiten

Konektatu Claude bezalako AI bezero batekin eta kodeak elkarrizketan bertan sortuko ditu. Amaiera-puntua https://mcp.wiacode.com/mcp da eta ez da gakorik behar.

Claude Desktop konfigurazioa

{
  "mcpServers": {
    "wiacode": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
    }
  }
}

Zure bezeroak Streamable HTTP zuzenean onartzen badu, eman URLa besterik ez.

Tresnak

tresnazer egiten duen
get_wia_code_infoWIA Code zer den, QR kodetik nola bereizten den eta silueta bakoitzaren edukiera azaltzen du. Hau lehenengo deitzeak akatsak murrizten ditu.
generate_wia_codeTestua kode-irudi bihurtzen du. Edukierari gainditzen badio, zein silueta egokituko liratekeen esaten du.
generate_wia_code_wifiWi-Fi kredentzialak — eskaneatzean sarera konektatzen zara password idatzi gabe.
generate_wia_code_cardKontaktu bat vCard estandar gisa — eskaneatzean telefonoaren kontaktuetan gordetzea proposatzen du.
generate_wia_code_eventEkitaldi bat iCalendar estandar gisa — eskaneatzean egutegira gehitzen du.

Doako mugak

Gehiago behar baduzu — jaulkipen masiborako, elkarlanerako edo erabilera komertzialerako, bidali mezu elektroniko bat. Muga igotzen duen gakoa emango dizugu. wiasoom@smilestory.ai

WIA Stream — when one code isn't enough

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.

Gehiago

Ireki sortzailea →

WIA Code SmileStory Co., Ltd. enpresaren produktua da. Booster QR eskaner berezirik ez dutenei ere irakurtzen laguntzen dien gida bat da.