[{"data":1,"prerenderedAt":370},["ShallowReactive",2],{"docs:\u002Fko\u002Freference\u002Fcli":3},{"page":4,"untranslated":369,"translated":362},{"id":5,"title":6,"body":7,"description":359,"extension":360,"meta":361,"navigation":362,"path":363,"publishedAt":364,"seo":365,"stem":366,"updatedAt":367,"__hash__":368},"docs_ko\u002Fko\u002Freference\u002Fcli.md","CLI",{"type":8,"value":9,"toc":348},"minimark",[10,14,39,61,66,69,116,172,177,228,232,255,259,262,288,325,329,344],[11,12,6],"h1",{"id":13},"cli",[15,16,17,21,22,25,26,28,29,32,33,35,36,38],"p",{},[18,19,20],"code",{},"tsumugi"," 패키지에는 설정용 CLI가 포함되어 있습니다.",[23,24],"br",{},"\n별도로 설치할 필요는 없습니다.",[23,27],{},"\n패키지를 추가한 프로젝트에서 ",[18,30,31],{},"npx tsumugi","를 실행합니다.",[23,34],{},"\n인수 없이 실행하면 대화 모드로 시작합니다.",[23,37],{},"\n파이프나 CI처럼 TTY가 아닌 환경에서는 대화 모드로 전환되지 않고, 사용 방법을 출력한 뒤 종료합니다.",[40,41,46],"pre",{"className":42,"code":43,"language":44,"meta":45,"style":45},"language-bash shiki shiki-themes github-light github-dark","npx tsumugi\n","bash","",[18,47,48],{"__ignoreMap":45},[49,50,53,57],"span",{"class":51,"line":52},"line",1,[49,54,56],{"class":55},"sScJk","npx",[49,58,60],{"class":59},"sZZnC"," tsumugi\n",[62,63,65],"h2",{"id":64},"tsumugi-init","tsumugi init",[15,67,68],{},"프로젝트에 Tsumugi를 설정합니다.",[40,70,72],{"className":42,"code":71,"language":44,"meta":45,"style":45},"npx tsumugi init [--name \u003Cname>] [--format jsonc|toml]\n",[18,73,74],{"__ignoreMap":45},[49,75,76,78,81,84,88,92,95,98,101,104,107,110,113],{"class":51,"line":52},[49,77,56],{"class":55},[49,79,80],{"class":59}," tsumugi",[49,82,83],{"class":59}," init",[49,85,87],{"class":86},"sVt8B"," [--name ",[49,89,91],{"class":90},"szBVR","\u003C",[49,93,94],{"class":59},"nam",[49,96,97],{"class":86},"e",[49,99,100],{"class":90},">",[49,102,103],{"class":59},"]",[49,105,106],{"class":86}," [--format ",[49,108,109],{"class":59},"jsonc",[49,111,112],{"class":90},"|",[49,114,115],{"class":55},"toml]\n",[15,117,118,121,122,125,126,129,130,132,133,136,137,140,141,143,144,147,148,147,151,154,155,157,158,161,162,125,165,168,169,32],{},[18,119,120],{},"init","은 ",[18,123,124],{},"wrangler queues create \u003Cname>","과 ",[18,127,128],{},"wrangler d1 create \u003Cname>","으로 리소스를 생성합니다.",[23,131],{},"\nwrangler 설정 파일이 없으면 새로 생성하고, ",[18,134,135],{},"wrangler d1 create","가 출력한 ",[18,138,139],{},"database_id","를 기록합니다.",[23,142],{},"\n다음으로 ",[18,145,146],{},"src\u002Findex.ts",", ",[18,149,150],{},"src\u002Fperformers\u002F",[18,152,153],{},".dev.vars","를 생성합니다.",[23,156],{},"\n마지막으로 ",[18,159,160],{},"wrangler d1 migrations apply","(",[18,163,164],{},"--local",[18,166,167],{},"--remote",")와 ",[18,170,171],{},"wrangler types",[173,174,176],"h3",{"id":175},"オプション","옵션",[178,179,180,192],"table",{},[181,182,183],"thead",{},[184,185,186,189],"tr",{},[187,188,176],"th",{},[187,190,191],{},"내용",[193,194,195,216],"tbody",{},[184,196,197,203],{},[198,199,200],"td",{},[18,201,202],{},"--name \u003Cname>",[198,204,205,206,147,209,212,213,215],{},"Worker의 이름. 생략하면 기존 설정 파일의 ",[18,207,208],{},"name",[18,210,211],{},"package.json","의 ",[18,214,208],{},", 디렉터리 이름 순으로 사용",[184,217,218,223],{},[198,219,220],{},[18,221,222],{},"--format \u003Cjsonc|toml>",[198,224,225,226],{},"생성할 설정 파일의 형식. 기본값은 ",[18,227,109],{},[173,229,231],{"id":230},"既存ファイルの扱い","기존 파일의 처리",[15,233,234,236,237,239,240,147,243,147,246,249,250,252,254],{},[18,235,120],{},"은 기존 파일을 변경하지 않습니다.",[23,238],{},"\nwrangler 설정 파일(",[18,241,242],{},"wrangler.json",[18,244,245],{},"wrangler.jsonc",[18,247,248],{},"wrangler.toml",")이 이미 존재하는 경우에는 추가할 내용을 해당 파일의 형식으로 출력합니다.",[23,251],{},[18,253,146],{}," 등의 템플릿 중 이미 존재하는 파일은 다시 생성하지 않습니다.",[62,256,258],{"id":257},"tsumugi-add-performer","tsumugi add-performer",[15,260,261],{},"performer를 추가합니다.",[40,263,265],{"className":42,"code":264,"language":44,"meta":45,"style":45},"npx tsumugi add-performer \u003CNAME>\n",[18,266,267],{"__ignoreMap":45},[49,268,269,271,273,276,279,282,285],{"class":51,"line":52},[49,270,56],{"class":55},[49,272,80],{"class":59},[49,274,275],{"class":59}," add-performer",[49,277,278],{"class":90}," \u003C",[49,280,281],{"class":59},"NAM",[49,283,284],{"class":86},"E",[49,286,287],{"class":90},">\n",[15,289,290,293,294,297,298,300,303,304,306,307,309,310,312,313,316,317,320,321,324],{},[18,291,292],{},"add-performer","는 ",[18,295,296],{},"src\u002Fperformers\u002F\u003Cname>.ts","에 performer 클래스를 생성합니다.",[23,299],{},[18,301,302],{},"src\u002Fperformers\u002Findex.ts","에는 export 줄을 한 줄 추가합니다.",[23,305],{},"\n이름은 kebab-case, camelCase, PascalCase, SNAKE_CASE 중 어느 형식이든 받아들입니다.",[23,308],{},"\n클래스 이름은 PascalCase로, 파일 이름은 kebab-case로 변환합니다.",[23,311],{},"\n예를 들어 ",[18,314,315],{},"send-mail","은 클래스 ",[18,318,319],{},"SendMail","과 파일 ",[18,322,323],{},"send-mail.ts","로 생성됩니다.",[173,326,328],{"id":327},"service-bindingの設定","Service Binding 설정",[15,330,331,332,335,336,338,340,341,343],{},"다른 Worker에서 이 performer를 호출하는 경우에는 호출하는 쪽의 설정 파일에 ",[18,333,334],{},"services"," 값을 추가하세요.",[23,337],{},[18,339,292],{},"는 추가해야 할 값을 출력합니다.",[23,342],{},"\n같은 Worker 안에서 performer를 실행하는 경우에는 추가할 필요가 없습니다.",[345,346,347],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":45,"searchDepth":349,"depth":349,"links":350},3,[351,356],{"id":64,"depth":352,"text":65,"children":353},2,[354,355],{"id":175,"depth":349,"text":176},{"id":230,"depth":349,"text":231},{"id":257,"depth":352,"text":258,"children":357},[358],{"id":327,"depth":349,"text":328},"tsumugi 패키지에 포함된 CLI 명령인 tsumugi init과 tsumugi add-performer의 옵션과 동작에 대해","md",{},true,"\u002Fko\u002Freference\u002Fcli","2026-07-22",{"title":6,"description":359},"ko\u002Freference\u002Fcli","2026-10-25","oACl0zibviPfFYOIt9V9jy8ZYOX6Y7WyUwAL26HW_PU",false,1794027574148]