
AI로 자신의 도구 확장하기 — Claude로 JSON을 생성하여 BMBoard에 붙여넣기만 하면 끝
요약
BMBoard의 확장 시스템인 'spell'을 활용하여 Claude로 JSON 기반의 커스텀 명령어를 생성하는 방법을 소개합니다. 코딩 지식 없이도 프롬프트만으로 캔버스 제어용 JavaScript 코드를 생성하고 즉시 적용할 수 있습니다.
핵심 포인트
- Claude를 활용해 BMBoard용 JSON 'spell' 생성 가능
- JSON 구조 내 command와 action(JS)을 통한 기능 확장
- 복사 및 붙여넣기만으로 즉시 도구 기능 등록 가능
- 원형 정렬, 크기 랜덤 변경 등 다양한 자동화 예시 제공
개요
Black Mirror Board (BMBoard)에는 「spell」이라는 확장 시스템이 있다.
그 JSON을 Claude나 ChatGPT에게 만들어 달라고 하면, 코드를 작성할 줄 모르더라도 캔버스 (Canvas)를 확장할 수 있다.
spell의 형태
{"command":"circle-layout","action":"const sel = BM.getSelected();\nif (!sel.length) { BM.log('select objects first.', 't-err'); return; }\nconst N = sel.length;\nconst vc = BM.viewCenter();\nconst R = 300;\nsel.forEach((o, i) => {\n const angle = (2 * Math.PI / N) * i - Math.PI / 2;\n o.data.x = vc.x + R * Math.cos(angle) - 40;\n o.data.y = vc.y + R * Math.sin(angle) - 40;\n});\nBM.redraw();\nBM.log('arranged ' + N + ' objects in a circle.');"}
command
→ 호출 이름 ($circle-layout으로 실행)
action
→ 실행되는 JavaScript
Claude를 위한 프롬프트
다음 내용을 그대로 Claude에 복사하여 붙여넣는다:
You are creating a "spell" for BMBoard, a single-page canvas web app.
Output only a single line of JSON: {"command":"NAME","action":"JS"}
BM API:
...
마지막 한 줄을 바꾸는 것만으로, 원하는 spell을 만들 수 있다.
구체적인 예시
「선택한 오브젝트를 원형으로 정렬하기」
Now create a spell: 選択したオブジェクトを円形に並べる
Claude의 출력:
{"command":"circle-layout","action":"const sel=BM.getSelected();if(!sel.length){BM.log('select first','t-err');return;}const N=sel.length,vc=BM.viewCenter(),R=280;sel.forEach((o,i)=>{const a=(2*Math.PI/N)*i-Math.PI/2;o.data.x=vc.x+R*Math.cos(a)-40;o.data.y=vc.y+R*Math.sin(a)-40;});BM.redraw();BM.log('circle layout: '+N+' objects');"}
「모든 오브젝트의 크기를 랜덤하게 변경하기」
{"command":"chaos-size","action":"for(const o of BM.all()){if(o.data.w){o.data.w=BM.rand(40,200);o.data.h=o.data.w;}}BM.redraw();BM.log('chaos applied.');"}
「오늘의 날짜를 텍스트로 캔버스 중앙에 배치하기」
{"command":"today","action":"const d=new Date(),s=d.getFullYear()+'/'+(d.getMonth()+1)+'/'+d.getDate(),vc=BM.viewCenter();BM.create('text',{x:vc.x-60,y:vc.y,text:s,fontSize:32});BM.redraw();BM.log('date placed: '+s);"}
BMBoard에 붙여넣는 방법
- Claude나 ChatGPT가 JSON을 반환하면
- 해당 JSON을 복사 (
Cmd+C) - BMBoard의 텍스트 박스에 붙여넣기 (
Cmd+V) - 자동으로 등록됨 (Enter도 필요 없음)
터미널에 [OK] spell acquired — run: $circle-layout
이라고 표시되면 완료.
그 후에는 $circle-layout이라고 입력하기만 하면 된다.
spell 공유하기
만든 spell은 다른 사람에게도 전달할 수 있다.
share circle-layout
터미널(Terminal)에 입력하면 JSON이 클립보드(Clipboard)에 복사된다. 그것을 Slack이나 Discord로 보내면, 받은 사람도 동일한 spell을 사용할 수 있다.
왜 이런 설계로 만들었는가
"자신의 도구를 스스로 확장할 수 있다"라는 컨셉에서 탄생했다.
플러그인(Plugin) 시스템을 만들려고 하면, 로컬 서버(Local Server)가 필요해지거나 설정 파일(Configuration File)이 필요해지는 등 복잡해지기 쉽다.
JSON 하나를 붙여넣기만 하면 끝—이 단순함이 전부라고 생각했다.
AI가 생성한 코드를 그대로 실행할 수 있다. 코드를 읽지 못하더라도, 일본어(한국어)로 "이런 동작을 하는 spell을 만들어줘"라고 말하면 확장할 수 있다.
자신의 도구를 AI로 키워나가는 경험—이것이 Terminal Magic의 본질이다.
BMBoard → bmboard.studio (무료·등록 불필요·오프라인 동작)
spell 사양 상세 → bmboard.studio/spell-spec.html
Kinoshita Studio → https://kinoshita.studio/
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기