Zhvillues — API · MCP · CLI

Krijo një WIA Code me një rresht. Nuk nevojitet çelës brenda kufijve falas.

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-i përforcues (booster) përfshihet gjithmonë. Nuk ka opsion për ta çaktivizuar — e njëjta gjë vlen për API-në, MCP-në dhe CLI-në. "Kur përdorimi kumulativ arrin 100 milionë herë, booster-i ndahet dhe logoja juaj zë vendin e tij" është një premtim i produktit, prandaj nuk bëmë përjashtim për asnjë rrugë. Parametrat e kodimit (grid, bpc, bridge) janë të fiksuar edhe në server.

CLI — një rresht, pa instalim

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

Funksionon menjëherë me Node 18 ose më të ri, pa instalim. Nuk ka varësi, kështu që marrja e tij zgjat vetëm pak sekonda.

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

Llojet — Wi-Fi, kartë kontakti, ngjarje

Tri lloje gati për përdorim. Nuk keni pse t'i montoni vetë vargjet — kaloni fushat dhe serveri ndërton përmbajtje standarde Wi-Fi / vCard / iCalendar, bajt për bajt identike me atë që prodhon gjeneratori në këtë faqe.

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

Fushat

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

Orët janë në formën "2026-09-01 19:00". Për një rrjet Wi-Fi të hapur kaloni security=nopass dhe hiqni fjalëkalimin. Fushat që mungojnë ose janë të gabuara kthehen si HTTP 400 me një mesazh që emërton fushën — asnjë imazh nuk krijohet, kështu që një kërkesë e gabuar nuk zë kurrë vend në radhën e krijimit.

Shumë njëherësh

Një rresht për çdo kod. Kur arrihet kufiri i shpeshtësisë, pret dhe vazhdon në vend që të ndalojë në gjysmë të rrugës, dhe raporton rreshtat e dështuar me numrat e tyre të vërtetë të rreshtit.

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

Përgjigja është image/png. Shtoni ?format=json për të marrë base64 dhe metadata si JSON.

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

Thirrja e tij nga shfletuesi

Mund ta thërrasësh drejtpërdrejt nga një aplikacion web në çdo origjinë. Është një API publik që nuk përdor cookie, kështu që CORS është i hapur.

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

Parametrat

emrie detyrueshmepërshkrimi
textTeksti ose URL-ja për t'u koduar. URL-të e gjata është më mirë të shkurtohen më parë.
typewifi · card · event. Jepet në vend të text — serveri e ndërton vargun standard nga fushat. Shihni seksionin Llojet më sipër.
shapeSiluetë (parazgjedhje heart). Shihni tabelën më poshtë.
cellPxPiksela për qelizë (3–20, parazgjedhje 8). Vlera më e madhe do të thotë imazh më i madh.
labelNjë etiketë e ruajtur në metadata. Nuk vizatohet mbi imazh.

Siluetat dhe kapaciteti

Çdo siluetë mban një sasi të ndryshme (bajte UTF-8). Përdorni square për përmbajtje të gjatë; çdo formë funksionon për lidhje të shkurtra.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — lëreni AI-në ta krijojë

Lidheni me një klient AI si Claude dhe ai krijon kodet direkt në bisedë. Endpoint-i është https://mcp.wiacode.com/mcp dhe nuk nevojitet çelës.

Konfigurimi i Claude Desktop

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

Nëse klienti juaj mbështet Streamable HTTP drejtpërdrejt, thjesht jepini URL-në.

Mjetet

mjetiçfarë bën
get_wia_code_infoShpjegon çfarë është një WIA Code, si ndryshon nga një kod QR dhe kapacitetin e çdo siluete. Thirrja e këtij të parit ul dështimet.
generate_wia_codeE kthen tekstin në imazh kodi. Nëse tejkalon kapacitetin, tregon se cilat siluetat do të përshtaten.
generate_wia_code_wifiKredencialet e Wi-Fi — skanimi bashkohet me rrjetin pa shtypur fjalëkalimin.
generate_wia_code_cardNjë kontakt si vCard standard — skanimi ofron ta ruajë te kontaktet e telefonit.
generate_wia_code_eventNjë ngjarje si iCalendar standard — skanimi e shton në kalendar.

Kufijtë falas

Nëse ju duhet më shumë — për lëshim me shumicë, partneritete ose përdorim komercial, na dërgoni një email. Do t'ju japim një çelës që rrit kufirin. 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.

Më shumë

Hap gjeneruesin →

WIA Code është një produkt i SmileStory Co., Ltd. QR-i përforcues është një udhëzues që ndihmon njerëzit pa skaner të dedikuar ta lexojnë gjithashtu.