Kūrėjams — API · MCP · CLI

Sukurkite WIA Code viena eilute. Nemokamose ribose raktas nereikalingas.

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 visada įtrauktas. Nėra galimybės jo išjungti — tas pats galioja API, MCP ir CLI. „Kai bendras naudojimas pasieks 100 milijonų kartų, booster atsiskirs ir jo vietą užims jūsų pačių logotipas“ yra produkto pažadas, todėl jokiam keliui netaikėme išimties. Kodavimo parametrai (grid, bpc, bridge) taip pat fiksuoti serverio pusėje.

CLI — viena eilutė, be diegimo

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

Veikia iškart su Node 18 ar naujesne versija, be diegimo. Neturi priklausomybių, todėl parsisiuntimas trunka vos kelias sekundes.

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

Tipai — Wi-Fi, kontaktinė kortelė, įvykis

Trys paruošti tipai. Jums nereikia patiems sudarinėti eilučių — perduokite laukus, o serveris sukurs standartinį Wi-Fi / vCard / iCalendar turinį, baitas į baitą tapatų tam, ką generuoja šios svetainės generatorius.

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

Laukai

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

Laikas nurodomas kaip "2026-09-01 19:00". Atviram Wi-Fi tinklui perduokite security=nopass ir praleiskite slaptažodį. Trūkstami ar neteisingo formato laukai grąžinami kaip HTTP 400 su pranešimu, nurodančiu lauką — vaizdas nekuriamas, todėl neteisinga užklausa niekada neužima generavimo vietos.

Daug vienu metu

Viena eilutė — vienas kodas. Pasiekus dažnio ribą, procesas laukia ir tęsia, o ne sustoja pusiaukelėje, ir praneša apie nepavykusias eilutes su jų tikraisiais eilučių numeriais.

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

Atsakymas yra image/png. Pridėkite ?format=json, kad gautumėte base64 ir metaduomenis JSON formatu.

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

Iškvietimas iš naršyklės

Galite jį iškviesti tiesiogiai iš žiniatinklio programos bet kuriame origin. Tai vieša API, nenaudojanti slapukų, todėl CORS yra atviras.

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

Parametrai

pavadinimasprivalomaaprašymas
textKoduojamas tekstas arba URL. Ilgus URL geriau iš anksto sutrumpinti.
typewifi · card · event. Naudojama vietoj text — serveris sudaro standartinę eilutę iš laukų. Žr. skyrių „Tipai“ aukščiau.
shapeSiluetas (numatytasis heart). Žr. lentelę žemiau.
cellPxPikseliai ląstelėje (3–20, numatytasis 8). Didesnė reikšmė reiškia didesnį vaizdą.
labelMetaduomenyse saugoma žymė. Ji nepiešiama ant vaizdo.

Siluetai ir talpa

Kiekvienas siluetas talpina skirtingą kiekį (UTF-8 baitų). Ilgam turiniui naudokite square; trumpoms nuorodoms tinka bet kuri forma.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — leiskite AI sukurti

Sujunkite jį su AI klientu, pvz., Claude, ir jis kuria kodus tiesiai pokalbyje. Galutinis taškas yra https://mcp.wiacode.com/mcp, raktas nereikalingas.

Claude Desktop nustatymas

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

Jei jūsų klientas tiesiogiai palaiko Streamable HTTP, tiesiog nurodykite jam URL.

Įrankiai

įrankiską daro
get_wia_code_infoPaaiškina, kas yra WIA Code, kuo jis skiriasi nuo QR kodo, ir kiekvieno siluetuose talpa. Iškvietus tai pirmiausia, sumažėja klaidų.
generate_wia_codePaverčia tekstą kodo vaizdu. Jei jis viršija talpą, praneša, kurie siluetai tiktų.
generate_wia_code_wifiWi-Fi prisijungimo duomenys — nuskaitymas prijungia prie tinklo neįvedant slaptažodžio.
generate_wia_code_cardKontaktas kaip standartinė vCard — nuskaitymas pasiūlo išsaugoti jį telefono kontaktuose.
generate_wia_code_eventĮvykis kaip standartinis iCalendar — nuskaitymas prideda jį į kalendorių.

Nemokamos ribos

Jei jums reikia daugiau — dėl masinio išdavimo, partnerystės ar komercinio naudojimo parašykite mums el. laišką. Suteiksime raktą, kuris padidina ribą. 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.

Daugiau

Atidaryti generatorių →

WIA Code yra SmileStory Co., Ltd. produktas. Booster QR yra gidas, padedantis jį perskaityti ir tiems, kurie neturi specialaus skenerio.