샘플 사용해 보기
이 페이지의 샘플은 완전한 모드가 아니라 코드 조각입니다. 각 샘플은 하나의 요소와 그 안에 중첩된 모든 항목에 대한 코드입니다. 샘플을 직접 터미널에서 확인하려면 다음 단계에 따라 작은 모드를 만들고 샘플을 붙여 넣으십시오. 이 모드는 창을 열고 그 안에 샘플을 그리는/gallery 명령을 추가합니다. 창은 넓은 전체 화면 터미널에서는 트랜스크립트 옆의 사이드바이고, 그 외의 경우에는 프롬프트 위의 테두리가 있는 영역입니다.
1
모드 만들기
gallery라는 디렉터리를 만들고 그 안에 .claude-plugin 및 hooks 디렉터리를 만드십시오. 파일에 대한 설명은 모드 만들기를 참조하십시오.매니페스트를 gallery/.claude-plugin/plugin.json으로 저장합니다.gallery/.claude-plugin/plugin.json
gallery/hooks/hooks.json에 진입점을 지정합니다.gallery/hooks/hooks.json
gallery/hooks/register.js로 저장합니다. 이 코드는 창을 여는 /gallery 명령을 추가하고 그 창에 Plain text를 그립니다.gallery/hooks/register.js
2
모드 실행하기
셸에서 Claude Code 프롬프트에서
gallery가 있는 디렉터리에서 Claude Code를 시작합니다./gallery를 실행합니다. Plain text가 표시된 창이 열립니다.3
샘플로 교체하기
이 페이지에서 샘플을 복사합니다.
register.js에서 Text({ children: ['Plain text'] }) 위치에 샘플을 붙여 넣어 return 뒤에 오도록 한 다음 파일을 저장합니다. Claude Code는 저장할 때마다 모듈을 다시 로드하므로, /gallery를 다시 실행하면 새 샘플을 볼 수 있습니다.요소 선택하기
샘플은 화면에 표시하려는 내용에 따라 분류되어 있습니다.- 텍스트 표시하기:
Text,Markdown,Link - 코드 및 변경 사항 표시하기:
Code - 요소 배치하기:
Box - 입력 받기:
Button,Input,Select - 그림 그리기:
Raster,Svg,Image,Client
텍스트 표시하기
화면에 글자를 표시하는 요소는 세 가지입니다. 직접 스타일을 지정할 때는Text, 이미 서식이 지정된 콘텐츠에는 Markdown, URL에는 Link를 사용합니다.
Text
Text는 지정한 스타일로 문자열을 그립니다. 이 샘플은 각 스타일마다 한 줄씩 보여 줍니다.


dimColor는 텍스트를 회색으로 그립니다. backgroundColor는 텍스트 너비만큼만 채웁니다.
Markdown
Markdown은 Claude의 응답과 같은 방식으로 텍스트 서식을 지정합니다. 콘텐츠는 children이 아닌 text로 전달하십시오.


# 기호 없이 굵게 그려집니다. 인라인 코드는 백틱 없이 색으로 그려집니다. 인용문은 왼쪽에 막대가 있는 기울임꼴로 그려집니다.
Link
Link는 레이블과 그 뒤에 URL을 그립니다.


코드 및 변경 사항 표시하기
Code는 Claude Code 자체의 구문 색상으로 소스 텍스트를 그리거나 diff를 그립니다.
Code
language를 지정하거나, Claude Code가 언어를 추론할 수 있도록 path를 전달하십시오. startLine을 지정하면 해당 번호부터 줄 번호가 매겨집니다.


diff로 표시하는 Code
format: 'diff'를 지정하면 source는 하나 이상의 unified diff 헝크가 됩니다.


@@ 줄 대신 줄 번호를 그립니다. 삭제된 줄과 추가된 줄이 비슷한 경우, 변경된 단어는 더 진한 음영으로 표시됩니다.
요소 배치하기
Box
Box는 내부 요소를 행 또는 열로 배치하며 테두리를 그릴 수 있습니다. 이 샘플은 단어 한 행을 테두리가 있는 박스 위에 배치합니다.


입력 받기
Button, Input, Select는 컨트롤입니다. 사용자는 Tab으로 컨트롤 사이를 이동하고 포커스가 있는 컨트롤을 사용합니다. 어떤 키가 컨트롤에 전달되는지는 키보드 포커스 및 단축키에서 설명합니다.
focus: true로 창을 열면 창에 키보드 포커스가 주어집니다. 입력한 글자는 Input에 포커스가 있을 때 전달되므로, 창이 열리자마자 입력을 받아야 하는 필드에는 autoFocus: true를 추가하십시오.
Button
버튼은 onPress를 실행합니다. 이 샘플은 기본 형태, 단축키가 있는 plain 버튼, 흐리게 표시된 버튼을 보여 줍니다.




Input
Input은 사용자가 Enter를 누르면 onSubmit을 실행하는 한 줄 텍스트 필드입니다.


⏎ 뒤에 submitLabel이 표시됩니다.




Select
Select를 사용하면 사용자가 여러 옵션 중 하나를 선택할 수 있으며, 선택한 옵션의 value로 onSelect를 실행합니다.






그림 그리기
Raster
Raster는 색이 입혀진 문자 셀의 격자로, 히트맵, 스파크라인, 게임 보드 등에 사용합니다. 터미널이 이를 그립니다. 이 샘플은 시작 모듈의 cellsOf 함수를 사용하며, 이 함수는 셀을 Raster가 받는 문자열로 압축합니다. 자세한 설명은 색이 입혀진 셀 격자 그리기를 참조하십시오.


Raster는 각 색상을 더 작은 팔레트로 반올림하므로 0x2e7d32는 #337733으로 그려집니다.
Svg
Svg는 Desktop 앱에서 SVG 문서를 그립니다.
Svg만 반환하는 창이 빈 상태로 열립니다. 터미널에서 다른 것을 그리려면 e.surface를 확인하고 다른 트리를 반환하십시오.
Image 및 Client
두 요소는 여기에 샘플이 없습니다. Image는 터미널에서 PNG 또는 원시 픽셀을 그립니다. Client는 애니메이션과 포인터 입력을 위해 사용자가 작성한 두 번째 파일이 그리는 영역입니다. 해당 props는 요소 레퍼런스에 나열되어 있습니다.
모드가 그릴 수 있는 위치 확인하기
모든 샘플은 창에 그립니다. 모드는 다른 위치에도 그릴 수 있으며, Claude Code를 호출해 무언가를 대신 표시하게 할 수도 있습니다.- 창 및 밴드: 그릴 위치 선택하기
- 스피너 등 Claude Code 자체의 행: Claude Code가 이미 그리는 내용 변경하기
- 토스트, 상태줄, 로그 줄: 턴을 시작하지 않고 무언가 표시하기
- 질문 대화 상자: 사용자가 결정할 때까지 도구 호출 보류하기
다음 단계
- 인터페이스에 그리기: 탭이 있는 창을 단계별로 만들어 봅니다
- 그리기 테스트하기: 테스트에서 버튼을 눌러 봅니다
- 요소 레퍼런스: 각 요소의 주요 props와 해당 요소를 그리는 앱을 확인합니다