Abathuthukisi — API · MCP · CLI

Yenza i-WIA Code ngomugqa owodwa. Akudingeki ukhiye ngaphakathi kwemikhawulo yamahhala.

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.

I-booster QR ihlala ifakiwe. Ayikho inketho yokuyivala — kuyefana ne-API, i-MCP ne-CLI. "Uma ukusetshenziswa okuhlangene kufinyelela emakhulwini ayikhulu ezigidi zezikhathi, i-booster iyahlukana futhi ilogo yakho iyongena esikhundleni sayo" siyisithembiso somkhiqizo, ngakho asenzanga umehluko nakuyiphi indlela. Amaphara okubhala ikhodi (grid, bpc, bridge) nawo alungiselwe eseva.

I-CLI — umugqa owodwa, ngaphandle kokufaka

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

Isebenza ngokushesha ku-Node 18 noma engaphezulu, ngaphandle kokuyifaka. Ayinazo izincike, ngakho ukuyithola kuthatha imizuzwana embalwa.

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

Izinhlobo — Wi-Fi, ikhadi loxhumana, umcimbi

Izinhlobo ezintathu ezikulungele ukusetshenziswa. Awudingi ukuhlanganisa izintambo (strings) ngokwakho — dlulisela amasimu (fields) bese iseva yakha okuqukethwe okujwayelekile kwe-Wi-Fi / vCard / iCalendar, okufana ngokuphelele, ibhayithi ngebhayithi, nalokho okukhiqizwa yisikhiqizi salesi sayithi.

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

Amasimu

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

Izikhathi zibhalwe njenge- "2026-09-01 19:00". Uma kuyinethiwekhi ye-Wi-Fi evulekile, dlulisela security=nopass bese ushiya iphasiwedi. Amasimu angekho noma anefomethi engalungile abuya njenge-HTTP 400 enomlayezo osho isimu — asikho isithombe esikhiqizwayo, ngakho isicelo esingalungile asisoze sathatha isikhala sokukhiqiza.

Amaningi kanyekanye

Umugqa owodwa ngekhodi ngayinye. Uma kufinyelelwe umkhawulo wesivinini, ilinda bese iqhubeka esikhundleni sokuma phakathi nendlela, futhi ibika imigqa ehlulekile kanye nezinombolo zayo zangempela zomugqa.

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

I-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

Impendulo ithi image/png. Engeza ?format=json ukuze uthole i-base64 nemininingwane njenge-JSON.

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

Ukuyibiza kusuka kusiphequluli

Ungayibiza ngokuqondile kusuka ku-app yewebhu kunoma yimuphi umsuka (origin). Yi-API yomphakathi engasebenzisi amakhukhi (cookies), ngakho i-CORS ivuliwe.

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

Amaphara

igamakudingekileincazelo
textUmbhalo noma i-URL okumele ibhalwe ngekhodi. Ama-URL amade kungcono aqale afinyezwe.
typewifi · card · event. Kunikezwa esikhundleni se-text — iseva yakha uhlu olujwayelekile lwezintambo kusuka kumasimu. Bheka isigaba Izinhlobo ngenhla.
shapeIsibopho (okuzenzakalelayo heart). Bheka ithebula elingezansi.
cellPxAmaphikseli ngesele ngasinye (3–20, okuzenzakalelayo 8). Inani elikhulu lisho isithombe esikhudlwana.
labelIleyibula elilondolozwa emininingwaneni. Alidwetshwa esithombeni.

Izibopho namandla okugcina

Isibopho ngasinye sigcina inani elihlukile (amabhayithi e-UTF-8). Sebenzisa i-square kokuqukethwe okude; noma isiphi isimo siyasebenza ezixhumanisweni ezimfushane.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

I-MCP — vumela i-AI ukuba iyenze

Ixhume ku-inkilayenti ye-AI efana ne-Claude bese iyenza amakhodi ngqo engxoxweni. I-endpoint ithi https://mcp.wiacode.com/mcp futhi akudingeki ukhiye.

Ukusetha kwe-Claude Desktop

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

Uma inkilayenti yakho isekela i-Streamable HTTP ngokuqondile, nikeza nje i-URL.

Amathuluzi

ithuluziokwenzayo
get_wia_code_infoIchaza ukuthi i-WIA Code yini, ihluke kanjani kukhodi ye-QR, namandla okugcina esibopho ngasinye. Ukubiza lokhu kuqala kunciphisa ukwehluleka.
generate_wia_codeIguqula umbhalo ube isithombe sekhodi. Uma sedlula amandla okugcina, itshela ukuthi yiziphi izibopho ezizolingana.
generate_wia_code_wifiImininingwane ye-Wi-Fi — ukuskena kujoyina inethiwekhi ngaphandle kokuthayipha iphasiwedi.
generate_wia_code_cardOxhumana naye njenge-vCard ejwayelekile — ukuskena kunikeza ukusindisa kuzoxhumana ocingweni.
generate_wia_code_eventUmcimbi njenge-iCalendar ejwayelekile — ukuskena kuwufaka kukhalenda.

Imikhawulo yamahhala

Uma udinga okwengeziwe — ukuze ukhiphe iningi, ubambiswano noma ukusetshenziswa kwezentengiselwano, sithumele i-imeyili. Sizokunika ukhiye ophakamisa umkhawulo. 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.

Okuningi

Vula isakhi →

I-WIA Code ingumkhiqizo we-SmileStory Co., Ltd. I-booster QR iwuhlahlandlela osiza abantu abangenayo iskena ekhethekile ukuthi nabo bakwazi ukuyifunda.