개발자 — API · MCP · CLI

코드 한 줄로 WIA Code를 만듭니다. 무료 상한 안에서는 키 없이 바로 씁니다.

AI·비전 시스템을 만드시나요? AI 시스템을 위한 WIA Code 식별 레퍼런스 — 중심의 세 요소, 외곽이 자유로운 이유, 피해야 할 오인식을 정리했습니다. 평문판: /llms.txt.

부스터 QR은 항상 포함됩니다. 끄는 옵션이 없습니다 — API·MCP·CLI 모두 같습니다. "누적 사용 1억 번에 이르면 부스터가 분리되고 그 자리에 원하는 로고가 들어간다"가 제품의 약속이라, 어느 한 경로에만 예외를 만들지 않았습니다. 인코딩 파라미터(grid·bpc·bridge)도 서버가 고정합니다.

CLI — 설치 없이 한 줄

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

Node 18 이상이면 설치 없이 바로 실행됩니다. 의존성이 없어 받는 데 몇 초면 됩니다.

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

타입 — 와이파이·명함·일정

바로 쓰는 세 가지입니다. 문자열을 직접 조립할 필요가 없습니다 — 필드만 주면 서버가 표준 Wi-Fi·vCard·iCalendar 내용을 만듭니다. 이 사이트 생성기가 만드는 것과 바이트 단위로 동일합니다.

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

필드

type필수선택
wifissid, passwordsecurity (WPA·WEP·nopass), hidden
cardnameorg, tel, email
eventtitle, startend, location, desc

시각은 "2026-09-01 19:00" 형식입니다. 개방망이면 security 를 nopass 로 주고 비밀번호는 생략합니다. 필드가 빠지거나 형식이 틀리면 어느 필드인지 적힌 HTTP 400 으로 돌아옵니다 — 이미지를 만들지 않으므로 잘못된 요청이 렌더 자리를 차지하지 않습니다.

여러 장 한 번에

한 줄이 코드 하나입니다. 분당 상한에 걸리면 중간에 멈추지 않고 기다렸다 이어서 하며, 실패한 줄은 파일에서의 실제 줄번호와 함께 알려줍니다.

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

응답은 image/png입니다. ?format=json을 붙이면 base64와 메타를 JSON으로 받습니다.

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

브라우저에서 부르기

다른 출처의 웹앱에서도 바로 부를 수 있습니다. 쿠키를 쓰지 않는 공개 API라 CORS를 열어 뒀습니다.

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

파라미터

이름필수설명
text담을 텍스트 또는 URL. 긴 URL은 먼저 줄이는 편이 좋습니다.
typewifi · card · event. text 대신 줍니다 — 필드로 주면 서버가 표준 문자열을 조립합니다. 위 타입 절 참고.
shape실루엣(기본 heart). 아래 표 참고.
cellPx셀 한 칸의 픽셀(3~20, 기본 8). 클수록 이미지가 큽니다.
label메타에 남는 라벨. 이미지에는 그리지 않습니다.

실루엣과 용량

실루엣마다 담을 수 있는 양이 다릅니다(UTF-8 바이트). 긴 내용은 square, 짧은 링크는 아무거나.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — AI가 직접 만들게

Claude 같은 AI 클라이언트에 연결하면 대화 중에 코드를 바로 만듭니다. 엔드포인트는 https://mcp.wiacode.com/mcp이고 키가 필요 없습니다.

Claude Desktop 설정

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

Streamable HTTP를 직접 지원하는 클라이언트라면 URL만 넣으면 됩니다.

도구

도구하는 일
get_wia_code_infoWIA Code가 무엇인지, QR과 뭐가 다른지, 실루엣별 용량은 얼마인지 알려줍니다. 만들기 전에 먼저 부르면 실패가 줄어듭니다.
generate_wia_code텍스트를 코드 이미지로 만듭니다. 용량을 넘으면 어떤 실루엣이면 담기는지 알려줍니다.
generate_wia_code_wifi와이파이 접속 정보 — 스캔하면 비밀번호를 입력하지 않고 접속됩니다.
generate_wia_code_card연락처를 표준 vCard 로 — 스캔하면 폰이 연락처 저장을 제안합니다.
generate_wia_code_event일정을 표준 iCalendar 로 — 스캔하면 캘린더에 추가됩니다.

무료 상한

더 많이 쓰셔야 한다면 — 대량 발급·제휴·상용 도입은 메일로 알려주세요. 키를 드리면 상한이 올라갑니다. wiasoom@smilestory.ai

WIA Stream — 코드 한 장으로 부족할 때

WIA Code 한 장에는 최대 1,450바이트가 들어갑니다. 문서·책 한 챕터·음성 클립처럼 그보다 크면 Stream이 여러 프레임으로 나눕니다. 화면이 차례로 재생하고, 카메라가 모으고, 스캐너가 파일을 다시 조립합니다. 인터넷도 서버도 필요 없습니다. 생성기에 이미 들어 있습니다.

여기서 중요한 건 속도가 아니라 전송이 끝나기는 하느냐입니다. Stream은 모든 프레임이 필요합니다. 못 읽은 프레임은 다음 바퀴를 기다려야 하고, 그때도 실패할 수 있습니다. 그래서 프레임당 판독률 차이는 평균으로 상쇄되지 않고 완주 시간으로 곱해집니다. 같은 물리 크기(1064 대 1088px, n=17, QR은 ZBar로 판독)에서 열화 스윕을 돌리니 고버전 QR 프레임은 52.9% 읽혔고 WIA 프레임은 17장 중 17장이 읽혔습니다. 이 값을 순환 방송 모형에 넣으면 286프레임 QR 전송은 완주까지 약 8바퀴, 155프레임 WIA 전송은 약 1바퀴가 걸립니다.

정직하게 읽어 주세요: n=17은 작은 표본입니다. 3의 법칙에 따르면 "17장 중 17장"은 95% 신뢰수준에서 82% 이상으로 읽어야 하고, 52.9%라는 값도 29~77% 구간을 함께 갖습니다. 양쪽 모두 가장 불리한 끝을 잡아도 완주 시간 격차는 약 2.4배입니다. 실제 단말의 화면 촬영과 인쇄물은 아직 측정하지 않았습니다. 또 같은 프레임 크기에서는 흐림 내성이 QR이 낫습니다 — 용량을 맞췄을 때에야 우리가 앞섭니다.

더 보기

생성기 열어보기 →

WIA Code는 SmileStory Co., Ltd.의 제품입니다. 부스터 QR은 전용 스캐너가 없는 분도 읽을 수 있게 돕는 안내자입니다.