| --- |
| 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 ํ์ผ์ ๋ง๋ค์ด ์ถ๊ฐํ ์ ์์ต๋๋ค. |
|
|
| --- |
| |
| |
|
|
| 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 ํ์ผ๋ก๋ ๋ช
๋ น์ ์ ์ํ ์ ์์ต๋๋ค. ์๋ ๊ฒฝ๋ก ์ค ํ๋์ ๋๋ฉด ๋ฉ๋๋ค. |
|
|
| - ์ ์ญ: `~/.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 |
| ์ปค์คํ
๋ช
๋ น์ ๋ด์ฅ ๋ช
๋ น์ ๋ฎ์ด์ธ ์ ์์ต๋๋ค. |
| ::: |
|
|
| ๊ฐ์ ์ด๋ฆ์ผ๋ก ์ปค์คํ
๋ช
๋ น์ ์ ์ํ๋ฉด ๋ด์ฅ ๋ช
๋ น๋ณด๋ค ์ปค์คํ
๋ช
๋ น์ด ์ฐ์ ํฉ๋๋ค. |
|
|