명령어
Commands
커스텀 명령어를 사용하면 해당 명령어가 TUI에서 실행될 때 실행할 프롬프트를 지정할 수 있습니다.
/my-command
커스텀 명령어는 /init, /undo, /redo, /share, /help와 같은 기본 제공 명령어에 추가로 제공됩니다. 자세히 알아보기.
명령어 파일 생성
commands/ 디렉토리에 마크다운 파일을 생성하여 커스텀 명령어를 정의합니다.
.opencode/commands/test.md 생성:
---
description: 커버리지와 함께 테스트 실행
agent: build
model: anthropic/claude-3-5-sonnet-20241022
---
전체 테스트 스위트를 커버리지 보고서와 함께 실행하고 실패를 표시합니다.
실패한 테스트에 집중하여 수정 방안을 제안합니다.
frontmatter는 명령어 속성을 정의합니다. 콘텐츠는 템플릿이 됩니다.
/ 다음에 명령어 이름을 입력하여 명령어를 사용합니다.
"/test"
구성
OpenCode 구성 또는 commands/ 디렉토리에 마크다운 파일을 생성하여 커스텀 명령어를 추가할 수 있습니다.
JSON
OpenCode 구성에서 command 옵션을 사용합니다:
{
"$schema": "https://opencode.ai/config.json",
"command": {
// 이것이 명령어 이름이 됩니다
"test": {
// 이것은 LLM에 전송될 프롬프트입니다
"template": "전체 테스트 스위트를 커버리지 보고서와 함께 실행하고 실패를 표시합니다.\n실패한 테스트에 집중하여 수정 방안을 제안합니다.",
// 이것은 TUI에 설명으로 표시됩니다
"description": "커버리지와 함께 테스트 실행",
"agent": "build",
"model": "anthropic/claude-3-5-sonnet-20241022"
}
}
} 이제 TUI에서 이 명령어를 실행할 수 있습니다:
/test
Markdown
마크다운 파일을 사용하여 명령어를 정의할 수도 있습니다. 다음에 배치합니다:
- 전역:
~/.config/opencode/commands/ - 프로젝트별:
.opencode/commands/
---
description: 커버리지와 함께 테스트 실행
agent: build
model: anthropic/claude-3-5-sonnet-20241022
---
전체 테스트 스위트를 커버리지 보고서와 함께 실행하고 실패를 표시합니다.
실패한 테스트에 집중하여 수정 방안을 제안합니다.
마크다운 파일 이름이 명령어 이름이 됩니다. 예를 들어, test.md를 사용하면 다음을 실행할 수 있습니다:
/test
프롬프트 구성
커스텀 명령어의 프롬프트는 여러 특수 플레이스홀더와 구문을 지원합니다.
인수
$ARGUMENTS 플레이스홀더를 사용하여 명령어에 인수를 전달합니다.
---
description: 새 컴포넌트 생성
---
TypeScript 지원으로 $ARGUMENTS라는 이름의 새 React 컴포넌트를 생성합니다.
적절한 타입 지정과 기본 구조를 포함합니다.
인수로 명령어 실행:
/component Button
그러면 $ARGUMENTS가 Button으로 대체됩니다.
위치 매개변수를 사용하여 개별 인수에도 접근할 수 있습니다:
$1- 첫 번째 인수$2- 두 번째 인수$3- 세 번째 인수- 등…
예를 들어:
---
description: 내용으로 새 파일 생성
---
다음 내용으로 $2 디렉토리에 $1이라는 이름의 파일 생성: $3
다음으로 명령어 실행:
/create-file config.json src "{ \"key\": \"value\" }"
이것이 대체됩니다:
$1을config.json로$2를src로$3를{ "key": "value" }로
쉘 출력
*!command*를 사용하여 bash 명령어 출력을 프롬프트에 주입합니다.
예를 들어, 테스트 커버리지를 분석하는 커스텀 명령어를 생성하려면:
---
description: 테스트 커버리지 분석
---
현재 테스트 결과:
!`npm test`
이 결과를 기반으로 커버리지를 높이기 위한 개선 방안을 제안합니다.
또는 최근 변경 사항 검토:
---
description: 최근 변경 사항 검토
---
최근 git 커밋:
!`git log --oneline -10`
이러한 변경 사항을 검토하고 개선 방안을 제안합니다.
명령어는 프로젝트 루트 디렉토리에서 실행되며 출력이 프롬프트의 일부가 됩니다.
파일 참조
@ 뒤에 파일 이름을 사용하여 명령어에 파일을 포함합니다.
---
description: 컴포넌트 검토
---
@src/components/Button.tsx의 컴포넌트를 검토합니다.
성능 문제를 확인하고 개선 방안을 제안합니다.
파일 콘텐츠가 자동으로 프롬프트에 포함됩니다.
옵션
구성 옵션을 자세히 살펴보겠습니다.
템플릿
template 옵션은 명령어가 실행될 때 LLM에 전송될 프롬프트를 정의합니다.
{
"command": {
"test": {
"template": "전체 테스트 스위트를 커버리지 보고서와 함께 실행하고 실패를 표시합니다.\n실패한 테스트에 집중하여 수정 방안을 제안합니다."
}
}
} 이것은 필수 구성 옵션입니다.
설명
description 옵션을 사용하여 명령어가 수행하는 작업에 대한 간단한 설명을 제공합니다.
{
"command": {
"test": {
"description": "커버리지와 함께 테스트 실행"
}
}
} TUI에서 명령어를 입력할 때 설명으로 표시됩니다.
에이전트
agent 구성을 사용하여 이 명령어를 실행할 에이전트를 선택적으로 지정합니다. 이것이 서브 에이전트인 경우 기본적으로 명령어가 서브 에이전트 호출을 트리거합니다. 이 동작을 비활성화하려면 subtask를 false로 설정합니다.
{
"command": {
"review": {
"agent": "plan"
}
}
} 이것은 선택적 구성 옵션입니다. 지정하지 않으면 현재 에이전트가 기본값입니다.
서브태스크
subtask 부울을 사용하여 명령어가 서브 에이전트 호출을 트리거하도록 강제합니다. 기본 컨텍스트를 오염시키지 않으려는 경우에 유용하며, 에이전트 구성에서 mode가 primary로 설정되어 있어도 강제로 에이전트가 서브 에이전트로 동작하게 합니다.
{
"command": {
"analyze": {
"subtask": true
}
}
} 이것은 선택적 구성 옵션입니다.
모델
model 구성을 사용하여 이 명령어의 기본 모델을 재정의합니다.
{
"command": {
"analyze": {
"model": "anthropic/claude-3-5-sonnet-20241022"
}
}
} 이것은 선택적 구성 옵션입니다.
기본 제공
opencode에는 /init, /undo, /redo, /share, /help와 같은 여러 기본 제공 명령어가 포함되어 있습니다; 자세히 알아보기.