Waendelezaji — API · MCP · CLI

Tengeneza WIA Code kwa mstari mmoja. Hakuna ufunguo unaohitajika ndani ya mipaka ya bure.

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 ya nyongeza (booster) daima imejumuishwa. Hakuna chaguo la kuizima — hali kadhalika kwa API, MCP na CLI. "Matumizi ya jumla yanapofikia mara milioni 100, booster hujitenga na nembo yako mwenyewe huchukua nafasi yake" ni ahadi ya bidhaa, kwa hivyo hatukufanya ubaguzi kwa njia yoyote. Vigezo vya usimbaji (grid, bpc, bridge) vimewekwa pia kwenye seva.

CLI — mstari mmoja, bila usakinishaji

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

Inaendesha papo hapo kwenye Node 18 au toleo jipya zaidi, bila usakinishaji. Haina utegemezi, hivyo kuipata huchukua sekunde chache tu.

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

Aina — Wi-Fi, kadi ya mawasiliano, tukio

Aina tatu tayari. Huhitaji kuunganisha mfuatano (strings) mwenyewe — unatuma fields na seva hujenga maudhui ya kawaida ya Wi-Fi / vCard / iCalendar, sawa kabisa byte kwa byte na yale ambayo jenereta ya tovuti hii huzalisha.

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

Fields

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

Nyakati zina umbo "2026-09-01 19:00". Kwa mtandao wa Wi-Fi ulio wazi, tuma security=nopass na uache password. Fields zinazokosekana au zenye umbo baya hurudi kama HTTP 400 yenye ujumbe unaotaja field husika — hakuna picha inayotolewa, hivyo ombi baya kamwe halichukui nafasi ya kutengeneza picha.

Nyingi kwa mara moja

Mstari mmoja kwa kila code. Ukifikia kikomo cha kasi (rate limit), inasubiri kisha inaendelea badala ya kusimama katikati, na inaripoti mistari iliyoshindwa pamoja na namba zake halisi za mstari.

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

Jibu ni image/png. Ongeza ?format=json kupata base64 na metadata kama JSON.

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

Kuiita kutoka kivinjari

Unaweza kuiita moja kwa moja kutoka kwa programu ya wavuti kwenye chanzo (origin) chochote. Ni API ya umma isiyotumia vidakuzi (cookies), hivyo CORS iko wazi.

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

Vigezo

jinalazimamaelezo
textMaandishi au URL ya kusimba. URL ndefu ni bora kuzifupisha kwanza.
typewifi · card · event. Hutolewa badala ya text — seva hujenga mfuatano wa kawaida kutoka kwa fields. Angalia sehemu ya Aina hapo juu.
shapeUmbo (chaguo-msingi heart). Angalia jedwali hapa chini.
cellPxPikseli kwa kila seli (3–20, chaguo-msingi 8). Thamani kubwa zaidi humaanisha picha kubwa zaidi.
labelLebo inayohifadhiwa kwenye metadata. Haichorwi kwenye picha.

Maumbo na uwezo

Kila umbo lina uwezo tofauti (baiti za UTF-8). Tumia square kwa maudhui marefu; umbo lolote linafanya kazi kwa viungo vifupi.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — acha AI iitengeneze

Iunganishe na mteja wa AI kama Claude na itatengeneza misimbo moja kwa moja katika mazungumzo. Kiungo (endpoint) ni https://mcp.wiacode.com/mcp na hakuna ufunguo unaohitajika.

Usanidi wa Claude Desktop

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

Ikiwa mteja wako unasaidia Streamable HTTP moja kwa moja, mpe tu URL.

Zana

zanakinachofanya
get_wia_code_infoInaeleza WIA Code ni nini, jinsi inavyotofautiana na msimbo wa QR, na uwezo wa kila umbo. Kuita hii kwanza hupunguza makosa.
generate_wia_codeHubadilisha maandishi kuwa picha ya msimbo. Ikiwa inazidi uwezo, hukuambia ni maumbo gani yatakayotosha.
generate_wia_code_wifiTaarifa za kuingia Wi-Fi — kusoma (scanning) hujiunga na mtandao bila kuandika password.
generate_wia_code_cardMawasiliano kama vCard ya kawaida — kusoma hutoa pendekezo la kuhifadhi kwenye anwani za simu.
generate_wia_code_eventTukio kama iCalendar ya kawaida — kusoma huliongeza kwenye kalenda.

Mipaka ya bure

Ikiwa unahitaji zaidi — kwa utoaji kwa wingi, ushirikiano au matumizi ya kibiashara, tutumie barua pepe. Tutakupa ufunguo unaoongeza mpaka. 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.

Zaidi

Fungua kitengenezaji →

WIA Code ni bidhaa ya SmileStory Co., Ltd. QR ya nyongeza ni mwongozo unaosaidia watu wasio na skana maalum kuisoma pia.