Buckets:
| title: 명령어 | |
| description: 반복적인 작업을 위한 커스텀 명령을 만드세요. | |
| 커스텀 명령을 사용하면 TUI에서 해당 명령이 실행될 때 사용할 프롬프트를 미리 정의할 수 있습니다. | |
| ```bash frame="none" | |
| /my-command | |
| ``` | |
| 커스텀 명령은 `/init`, `/undo`, `/redo`, `/share`, `/help` 같은 내장 명령과 별도로 추가됩니다. [더 알아보기](/docs/tui#commands). | |
| ## 명령 파일 만들기 | |
| 커스텀 명령은 `commands/` 디렉터리에 Markdown 파일을 만들어 정의합니다. | |
| 예: `.opencode/commands/test.md` | |
| ```md title=".opencode/commands/test.md" | |
| description: Run tests with coverage | |
| agent: build | |
| model: anthropic/claude-3-5-sonnet-20241022 | |
| Run the full test suite with coverage report and show any failures. | |
| Focus on the failing tests and suggest fixes. | |
| ``` | |
| 프런트매터(frontmatter)에는 명령 속성을 정의하고, 본문은 템플릿 프롬프트가 됩니다. | |
| 명령 이름 앞에 `/`를 붙여 실행합니다. | |
| ```bash frame="none" | |
| "/test" | |
| ``` | |
| ## 구성 | |
| 커스텀 명령은 OpenCode 설정으로 추가하거나, `commands/` 디렉터리에 Markdown 파일을 만들어 추가할 수 있습니다. | |
| ### JSON | |
| OpenCode [config](/docs/config)의 `command` 옵션을 사용합니다. | |
| ```json title="opencode.jsonc" {4-12} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "command": { | |
| // This becomes the name of the command | |
| "test": { | |
| // This is the prompt that will be sent to the LLM | |
| "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.", | |
| // This is shown as the description in the TUI | |
| "description": "Run tests with coverage", | |
| "agent": "build", | |
| "model": "anthropic/claude-3-5-sonnet-20241022" | |
| } | |
| } | |
| } | |
| ``` | |
| 이제 TUI에서 다음처럼 실행할 수 있습니다. | |
| ```bash frame="none" | |
| /test | |
| ``` | |
| ### Markdown | |
| Markdown 파일로도 명령을 정의할 수 있습니다. 아래 경로 중 하나에 두면 됩니다. | |
| - 전역: `~/.config/opencode/commands/` | |
| - 프로젝트별: `.opencode/commands/` | |
| ```markdown title="~/.config/opencode/commands/test.md" | |
| description: Run tests with coverage | |
| agent: build | |
| model: anthropic/claude-3-5-sonnet-20241022 | |
| Run the full test suite with coverage report and show any failures. | |
| Focus on the failing tests and suggest fixes. | |
| ``` | |
| Markdown 파일명이 명령 이름이 됩니다. 예를 들어 `test.md`라면 아래처럼 실행합니다. | |
| ```bash frame="none" | |
| /test | |
| ``` | |
| ## 프롬프트 구성 | |
| 커스텀 명령 프롬프트는 몇 가지 특수 플레이스홀더(placeholder)와 문법을 지원합니다. | |
| ### 인수 | |
| `$ARGUMENTS` 플레이스홀더로 명령 인수를 전달할 수 있습니다. | |
| ```md title=".opencode/commands/component.md" | |
| description: Create a new component | |
| Create a new React component named $ARGUMENTS with TypeScript support. | |
| Include proper typing and basic structure. | |
| ``` | |
| 인수를 넣어 실행하면: | |
| ```bash frame="none" | |
| /component Button | |
| ``` | |
| `$ARGUMENTS`가 `Button`으로 치환됩니다. | |
| 위치 인수도 사용할 수 있습니다. | |
| - `$1` - 첫 번째 인수 | |
| - `$2` - 두 번째 인수 | |
| - `$3` - 세 번째 인수 | |
| - 이후 동일 | |
| 예시: | |
| ```md title=".opencode/commands/create-file.md" | |
| description: Create a new file with content | |
| Create a file named $1 in the directory $2 | |
| with the following content: $3 | |
| ``` | |
| 실행: | |
| ```bash frame="none" | |
| /create-file config.json src "{ \"key\": \"value\" }" | |
| ``` | |
| 치환 결과: | |
| - `$1` -> `config.json` | |
| - `$2` -> `src` | |
| - `$3` -> `{ "key": "value" }` | |
| ### 셸 출력 | |
| _!`command`_ 문법으로 [bash 명령](/docs/tui#bash-commands)의 출력 결과를 프롬프트에 주입할 수 있습니다. | |
| 예를 들어 테스트 커버리지 분석 명령을 만들면: | |
| ```md title=".opencode/commands/analyze-coverage.md" | |
| description: Analyze test coverage | |
| Here are the current test results: | |
| !`npm test` | |
| Based on these results, suggest improvements to increase coverage. | |
| ``` | |
| 최근 변경 리뷰용으로는: | |
| ```md title=".opencode/commands/review-changes.md" | |
| description: Review recent changes | |
| Recent git commits: | |
| !`git log --oneline -10` | |
| Review these changes and suggest any improvements. | |
| ``` | |
| 명령은 프로젝트 루트 디렉터리에서 실행되며, 출력 결과는 프롬프트 본문에 포함됩니다. | |
| ### 파일 참조 | |
| `@` 뒤에 파일명을 붙여 명령에 파일을 포함할 수 있습니다. | |
| ```md title=".opencode/commands/review-component.md" | |
| description: Review component | |
| Review the component in @src/components/Button.tsx. | |
| Check for performance issues and suggest improvements. | |
| ``` | |
| 파일 내용은 자동으로 프롬프트에 포함됩니다. | |
| ## 옵션 | |
| 구성 옵션을 자세히 살펴봅니다. | |
| ### 템플릿 | |
| `template` 옵션은 명령 실행 시 LLM에 전달할 프롬프트를 정의합니다. | |
| ```json title="opencode.json" | |
| { | |
| "command": { | |
| "test": { | |
| "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes." | |
| } | |
| } | |
| } | |
| ``` | |
| 이 옵션은 **필수**입니다. | |
| ### 설명 | |
| `description` 옵션으로 명령의 짧은 설명을 추가할 수 있습니다. | |
| ```json title="opencode.json" | |
| { | |
| "command": { | |
| "test": { | |
| "description": "Run tests with coverage" | |
| } | |
| } | |
| } | |
| ``` | |
| 이 설명은 TUI에서 명령을 입력할 때 표시됩니다. | |
| ### 에이전트 | |
| `agent` 설정으로 이 명령을 실행할 [agent](/docs/agents)를 지정할 수 있습니다. | |
| 지정한 값이 [subagent](/docs/agents/#subagents)면 기본적으로 subagent 호출이 실행됩니다. | |
| 이 동작을 끄려면 `subtask`를 `false`로 설정하세요. | |
| ```json title="opencode.json" | |
| { | |
| "command": { | |
| "review": { | |
| "agent": "plan" | |
| } | |
| } | |
| } | |
| ``` | |
| 이 옵션은 **선택**입니다. 지정하지 않으면 현재 에이전트가 기본값으로 사용됩니다. | |
| ### 서브태스크 | |
| `subtask` 불리언(boolean)을 사용하면 명령이 [subagent](/docs/agents/#subagents) 호출을 강제로 트리거합니다. | |
| 주 컨텍스트를 오염시키고 싶지 않을 때 유용하며, [agent](/docs/agents) 설정의 `mode`가 `primary`여도 subagent로 실행합니다. | |
| ```json title="opencode.json" | |
| { | |
| "command": { | |
| "analyze": { | |
| "subtask": true | |
| } | |
| } | |
| } | |
| ``` | |
| 이 옵션은 **선택**입니다. | |
| ### 모델 | |
| `model` 설정으로 이 명령의 기본 모델을 오버라이드할 수 있습니다. | |
| ```json title="opencode.json" | |
| { | |
| "command": { | |
| "analyze": { | |
| "model": "anthropic/claude-3-5-sonnet-20241022" | |
| } | |
| } | |
| } | |
| ``` | |
| 이 옵션은 **선택**입니다. | |
| ## 내장 명령 | |
| OpenCode는 `/init`, `/undo`, `/redo`, `/share`, `/help` 등 여러 내장 명령을 제공합니다. [더 알아보기](/docs/tui#commands). | |
| :::note | |
| 커스텀 명령은 내장 명령을 덮어쓸 수 있습니다. | |
| ::: | |
| 같은 이름으로 커스텀 명령을 정의하면 내장 명령보다 커스텀 명령이 우선합니다. | |
Xet Storage Details
- Size:
- 7.14 kB
- Xet hash:
- 6cdeff23f848ba4ce2fc3126f3f0a28023cf71d79cf631d00b1c5b55d368b2b0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.