chore(docs): i18n sync (#15417)

This commit is contained in:
Adam
2026-02-28 15:27:11 -06:00
committed by GitHub
parent 971bd30516
commit e1e18c7abd
174 changed files with 6358 additions and 4392 deletions

View File

@@ -14,10 +14,11 @@ OpenCode는 **JSON**과 **JSONC**(주석이 포함된 JSON) 형식을 모두 지
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
// Theme configuration
"theme": "opencode",
"model": "anthropic/claude-sonnet-4-5",
"autoupdate": true,
"server": {
"port": 4096,
},
}
```
@@ -33,7 +34,7 @@ config 파일은 **교체되지 않고 병합**됩니다.
config 파일은 서로 대체되는 방식이 아니라 병합됩니다. 아래 config 위치의 설정이 결합되며, 충돌하는 key에 대해서만 나중에 로드된 config가 앞선 값을 override합니다. 충돌하지 않는 설정은 모두 유지됩니다.
예를 들어, 전역 config에 `theme: "opencode"`와 `autoupdate: true`가 있고 프로젝트 config에 `model: "anthropic/claude-sonnet-4-5"`가 있으면 최종 config에는 이 설정이 모두 포함됩니다.
예를 들어, 전역 config에 `autoupdate: true`가 있고 프로젝트 config에 `model: "anthropic/claude-sonnet-4-5"`가 있으면 최종 config에는 이 설정이 모두 포함됩니다.
---
@@ -94,7 +95,9 @@ Remote config는 가장 먼저 로드되어 기본 레이어 역할을 합니다
### Global
전역 OpenCode config는 `~/.config/opencode/opencode.json`에 두세요. theme, provider, keybind 같은 사용자 전체 기본 설정은 전역 config로 관리하세요.
전역 OpenCode config는 `~/.config/opencode/opencode.json`에 두세요. provider, model, permissions 같은 사용자 전체 기본 설정은 전역 config로 관리하세요.
TUI 관련 설정은 `~/.config/opencode/tui.json`을 사용하세요.
전역 config는 조직의 Remote 기본값을 override합니다.
@@ -104,6 +107,8 @@ Remote config는 가장 먼저 로드되어 기본 레이어 역할을 합니다
프로젝트 루트에 `opencode.json`을 추가하세요. 프로젝트 config는 표준 config 파일 중 우선순위가 가장 높아 전역 및 Remote config를 모두 override합니다.
프로젝트별 TUI 설정은 `tui.json`을 함께 추가하세요.
:::tip
프로젝트별 config는 프로젝트 루트에 두세요.
:::
@@ -142,7 +147,9 @@ custom 디렉토리는 전역 config와 `.opencode` 디렉토리 뒤에 로드
## Schema
config 파일의 schema는 [**`opencode.ai/config.json`**](https://opencode.ai/config.json)에 정의되어 있습니다.
server/runtime config schema는 [**`opencode.ai/config.json`**](https://opencode.ai/config.json)에 정의되어 있습니다.
TUI config는 [**`opencode.ai/tui.json`**](https://opencode.ai/tui.json)을 사용합니다.
편집기에서 이 schema를 기반으로 validation과 autocomplete를 사용할 수 있습니다.
@@ -150,28 +157,24 @@ config 파일의 schema는 [**`opencode.ai/config.json`**](https://opencode.ai/c
### TUI
`tui` 옵션으로 TUI 관련 설정을 구성할 수 있습니다.
TUI 관련 설정에는 전용 `tui.json` (또는 `tui.jsonc`) 파일을 사용하세요.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"tui": {
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
"$schema": "https://opencode.ai/tui.json",
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
```
사용 가능한 옵션:
`OPENCODE_TUI_CONFIG`를 사용하여 사용자 지정 TUI 설정 파일을 가리킬 수 있습니다.
- `scroll_acceleration.enabled` - macOS 스타일 스크롤 가속을 활성화합니다. **`scroll_speed`보다 우선합니다.**
- `scroll_speed` - 사용자 정의 스크롤 속도 배수(기본: `3`, 최소: `1`). `scroll_acceleration.enabled`가 `true`이면 무시됩니다.
- `diff_style` - diff 렌더링 방식을 제어합니다. `"auto"`는 터미널 너비에 맞춰 조정되고, `"stacked"`는 항상 단일 컬럼으로 표시합니다.
`opencode.json`의 기존 `theme`, `keybinds`, `tui` 키는 더 이상 사용되지 않으며(deprecated) 가능한 경우 자동으로 마이그레이션됩니다.
[TUI에 대해 더 알아보기](/docs/tui).
[TUI 구성에 대해 더 알아보기](/docs/tui#configure).
---
@@ -297,12 +300,12 @@ Bearer token(`AWS_BEARER_TOKEN_BEDROCK` 또는 `/connect`)은 profile 기반 인
### Themes
`theme` 옵션으로 OpenCode config에서 사용할 theme를 설정할 수 있습니다.
`tui.json`에서 UI 테마를 설정하세요.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"theme": ""
"$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}
```
@@ -402,11 +405,11 @@ Bearer token(`AWS_BEARER_TOKEN_BEDROCK` 또는 `/connect`)은 profile 기반 인
### Keybinds
`keybinds` 옵션으로 keybind를 커스터마이즈할 수 있습니다.
`tui.json`에서 단축키를 사용자 지정하세요.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"keybinds": {}
}
```

View File

@@ -79,6 +79,32 @@ export const multiply = tool({
---
#### 기본 도구와 이름 충돌
커스텀 도구는 도구 이름으로 식별됩니다. 커스텀 도구가 기본 도구와 같은 이름을 사용하면 커스텀 도구가 우선순위를 갖습니다.
예를 들어, 이 파일은 기본 `bash` 도구를 대체합니다:
```ts title=".opencode/tools/bash.ts"
import { tool } from "@opencode-ai/plugin"
export default tool({
description: "Restricted bash wrapper",
args: {
command: tool.schema.string(),
},
async execute(args) {
return `blocked: ${args.command}`
},
})
```
:::note
의도적으로 기본 도구를 대체하려는 경우가 아니라면 고유한 이름을 사용하는 것이 좋습니다. 도구를 오버라이드하지 않고 비활성화만 하려면 [permissions](/docs/permissions)를 사용하세요.
:::
---
### 인자
인자 타입은 `tool.schema`로 정의할 수 있습니다. `tool.schema`는 [Zod](https://zod.dev) 기반입니다.

View File

@@ -3,11 +3,11 @@ title: 키바인드
description: 키바인드를 커스터마이즈하세요.
---
OpenCode에는 OpenCode config를 통해 커스터마이즈할 수 있는 keybinds 목록이 있습니다.
OpenCode에는 `tui.json`을 통해 커스터마이즈할 수 있는 키바인드 목록이 있습니다.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"app_exit": "ctrl+c,ctrl+d,<leader>q",
@@ -117,11 +117,11 @@ keybinds에 리더 키를 꼭 사용할 필요는 없지만, 사용하는 것을
## 키바인드 비활성화
config에 해당 키를 값 `"none"`으로 추가하면 keybind를 비활성화할 수 있습니다.
`tui.json`에 해당 키를 값 `"none"`으로 추가하면 키바인드를 비활성화할 수 있습니다.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}

View File

@@ -3,7 +3,7 @@ title: 플러그인
description: OpenCode를 확장하기 위해 자신만의 플러그인을 작성하세요.
---
플러그인은 다양한 이벤트와 사용자 정의 행동으로 후킹하여 opencode를 확장 할 수 있습니다. 플러그인을 만들 수 있습니다 새로운 기능을 추가, 외부 서비스와 통합, 또는 opencode의 기본 동작을 수정.
플러그인은 다양한 이벤트와 사용자 정의 행동으로 후킹하여 opencode를 확장 할 수 있습니다. 플러그인을 사용하여 새로운 기능을 추가하거나, 외부 서비스와 통합하거나, opencode의 기본 동작을 수정할 수 있습니다.
예를 들어, 커뮤니티에 의해 생성 된 [plugins](/docs/ecosystem#plugins)를 확인하십시오.
@@ -11,18 +11,18 @@ description: OpenCode를 확장하기 위해 자신만의 플러그인을 작성
## 플러그인 사용
플러그인을로드하는 두 가지 방법이 있습니다.
플러그인을 로드하는 두 가지 방법이 있습니다.
---
## 로컬 파일에서
### 로컬 파일에서
플러그인 디렉토리에 JavaScript 또는 TypeScript 파일을 배치합니다.
- `.opencode/plugins/` - 프로젝트 레벨 플러그인
- `~/.config/opencode/plugins/` - 글로벌 플러그인
이 디렉토리의 파일은 자동으로 시작에로드됩니다.
이 디렉토리의 파일은 시작 시 자동으로 로드됩니다.
---
@@ -37,43 +37,42 @@ config 파일에 npm 패키지를 지정합니다.
}
```
일반 및 범위의 npm 패키지 모두 지원됩니다.
일반 패키지 및 스코프 npm 패키지 모두 지원됩니다.
[ecosystem](/docs/ecosystem#plugins)에서 사용할 수 있는 플러그인을 찾아보세요.
---
## 플러그인이 설치되는 방법
### 플러그인이 설치되는 방법
**npm 플러그인**은 시작시 Bun을 사용하여 자동으로 설치됩니다. 패키지와 그들의 의존성은 `~/.cache/opencode/node_modules/`에 캐시됩니다.
**npm 플러그인**은 시작시 Bun을 사용하여 자동으로 설치됩니다. 패키지와 그 의존성은 `~/.cache/opencode/node_modules/`에 캐시됩니다.
**로컬 플러그인**은 플러그인 디렉토리에서 직접로드됩니다. 외부 패키지를 사용하려면 구성 디렉토리 내 `package.json` 작성해야 합니다 ([Dependencies](#dependencies)), 또는 플러그인을 npm에 게시하고 [config에 추가](/docs/config#plugins).
**로컬 플러그인**은 플러그인 디렉토리에서 직접 로드됩니다. 외부 패키지를 사용하려면 구성 디렉토리 내 `package.json` 작성해야 하거나([의존성](#의존성) 참조), 플러그인을 npm에 게시하고 [config에 추가](/docs/config#plugins)해야 합니다.
---
## 로드 순서
### 로드 순서
플러그인은 모든 소스에서로드되며 모든 후크는 순서대로 실행됩니다. 로드 순서는 다음과 같습니다:
플러그인은 모든 소스에서 로드되며 모든 후크는 순서대로 실행됩니다. 로드 순서는 다음과 같습니다:
1. 글로벌 구성 (`~/.config/opencode/opencode.json`)
2. 프로젝트 구성 (`opencode.json`)
3. 글로벌 플러그인 디렉토리 (`~/.config/opencode/plugins/`)
4. 프로젝트 플러그인 디렉토리 (`.opencode/plugins/`)
중복 npm 패키지는 한 번만 로드됩니다. 하지만, 로컬 플러그인과 같은 이름과 npm 플러그인은 모두 별도로로드됩니다.
중복된 이름과 버전의 npm 패키지는 한 번만 로드됩니다. 하지만 로컬 플러그인과 npm 플러그인의 이름이 비슷하더라도 둘 다 별도로 로드됩니다.
---
## 플러그인 만들기
플러그인은 **JavaScript/TypeScript 모듈**입니다.
기능. 각 함수는 context 객체를 수신하고 Hooks 객체를 반환합니다.
플러그인은 하나 이상의 플러그인 함수를 내보내는 **JavaScript/TypeScript 모듈**입니다. 각 함수는 context 객체를 수신하고 hooks 객체를 반환합니다.
---
### 의존성
로컬 플러그인 및 사용자 정의 도구는 외부 npm 패키지를 사용할 수 있습니다. `package.json`를 config 디렉토리에 추가하 필요한 의존도가 있습니다.
로컬 플러그인 및 사용자 정의 도구는 외부 npm 패키지를 사용할 수 있습니다. config 디렉토리에 `package.json` 추가하 필요한 의존성을 명시하십시오.
```json title=".opencode/package.json"
{
@@ -83,7 +82,7 @@ config 파일에 npm 패키지를 지정합니다.
}
```
opencode는 `bun install`를 시작합니다. 플러그인 및 도구 가져올 수 있습니다.
opencode는 시작 시 `bun install`을 실행하여 이를 설치합니다. 이후 플러그인 및 도구에서 가져올 수 있습니다.
```ts title=".opencode/plugins/my-plugin.ts"
import { escape } from "shescape"
@@ -113,19 +112,19 @@ export const MyPlugin = async ({ project, client, $, directory, worktree }) => {
}
```
플러그인 기능 수신:
플러그인 함수가 받는 인자:
- `project`: 현재 프로젝트 정보.
- `directory`: 현재 작업 디렉토리.
- `worktree`: git worktree 경로.
- `client`: AI와 상호 작용을 위한 opencode SDK 클라이언트.
- `$`: Bun's [shell API](https://bun.com/docs/runtime/shell) 명령어를 실행합니다.
- `$`: 명령어를 실행하기 위한 Bun [shell API](https://bun.com/docs/runtime/shell).
---
### TypeScript 지원
TypeScript 플러그인의 경우 플러그인 패키지에서 유형을 가져올 수 있습니다.
TypeScript 플러그인의 경우 플러그인 패키지에서 타입을 가져올 수 있습니다.
```ts title="my-plugin.ts" {1}
import type { Plugin } from "@opencode-ai/plugin"
@@ -139,29 +138,29 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree
---
## 이벤트
### 이벤트
플러그인은 예제 섹션에서 아래에서 볼 때 이벤트에 가입 할 수 있습니다. 여기에 다른 이벤트 목록니다.
플러그인은 아래 예제 섹션에서 볼 수 있듯이 이벤트를 구독할 수 있습니다. 사용 가능한 이벤트 목록은 다음과 같습니다.
### 명령어 이벤트
#### 명령어 이벤트
- `command.executed`
### 파일 이벤트
#### 파일 이벤트
- `file.edited`
- `file.watcher.updated`
### 설치 이벤트
#### 설치 이벤트
- `installation.updated`
### LSP 이벤트
#### LSP 이벤트
- `lsp.client.diagnostics`
- `lsp.updated`
### 메시지 이벤트
#### 메시지 이벤트
- `message.part.removed`
- `message.part.updated`
@@ -173,11 +172,11 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree
- `permission.asked`
- `permission.replied`
### 서버 이벤트
#### 서버 이벤트
- `server.connected`
### 세션 이벤트
#### 세션 이벤트
- `session.created`
- `session.compacted`
@@ -188,7 +187,7 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree
- `session.status`
- `session.updated`
### Todo 이벤트
#### Todo 이벤트
- `todo.updated`
@@ -196,7 +195,7 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree
- `shell.env`
##### 도구 이벤트
#### 도구 이벤트
- `tool.execute.after`
- `tool.execute.before`
@@ -211,11 +210,11 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree
## 예제
opencode를 확장하기 위해 사용할 수있는 플러그인의 몇 가지 예입니다.
opencode를 확장하기 위해 사용할 수 있는 플러그인 예입니다.
---
## 알림 보내기
### 알림 보내기
특정 이벤트가 발생할 때 알림을 전송:
@@ -232,7 +231,7 @@ export const NotificationPlugin = async ({ project, client, $, directory, worktr
}
```
macOS에서 AppleScript를 실행하려면 `osascript`를 사용하고 있습니다. 여기에 우리는 그것을 사용하여 알림을 보낼 수 있습니다.
macOS에서 AppleScript를 실행하기 위해 `osascript`를 사용하고 있습니다. 여기서는 알림을 보내는 데 사용합니다.
:::note
opencode 데스크톱 앱을 사용하는 경우 응답이 준비되어 있거나 세션 오류가 있을 때 시스템 알림을 자동으로 보낼 수 있습니다.
@@ -242,7 +241,7 @@ opencode 데스크톱 앱을 사용하는 경우 응답이 준비되어 있거
### .env 보호
읽기 `.env` 파일에서 opencode를 방지하십시오:
opencode가 `.env` 파일을 읽지 못하도록 방지:
```javascript title=".opencode/plugins/env-protection.js"
export const EnvProtection = async ({ project, client, $, directory, worktree }) => {
@@ -260,7 +259,7 @@ export const EnvProtection = async ({ project, client, $, directory, worktree })
### Inject 환경 변수
환경 변수를 모든 shell 실행 (AI 도구 및 사용자 terminal)로 주사하십시오.
모든 shell 실행(AI 도구 및 사용자 terminal)에 환경 변수 주입:
```javascript title=".opencode/plugins/inject-env.js"
export const InjectEnvPlugin = async () => {
@@ -277,7 +276,7 @@ export const InjectEnvPlugin = async () => {
### 사용자 정의 도구
플러그인은 opencode에 사용자 정의 도구를 추가 할 수 있습니다 :
플러그인은 opencode에 사용자 정의 도구를 추가할 수 있습니다:
```ts title=".opencode/plugins/custom-tools.ts"
import { type Plugin, tool } from "@opencode-ai/plugin"
@@ -300,13 +299,17 @@ export const CustomToolsPlugin: Plugin = async (ctx) => {
}
```
`tool` helper는 opencode가 호출 할 수있는 사용자 정의 도구를 만듭니다. Zod schema 기능을 가지고 도구 정의를 반환:
`tool` helper는 opencode가 호출할 수 있는 사용자 정의 도구를 만듭니다. Zod 스키마 함수를 받고 다음을 포함하는 도구 정의를 반환합니다:
- `description`: 도구는 무엇을
- `description`: 도구가 하는 일
- `args`: 도구의 인수에 대한 Zod 스키마
- `execute`: 도구가 호출될 때 실행되는 기능
- `execute`: 도구가 호출될 때 실행되는 함수
사용자 정의 도구는 내장 도구와 함께 opencode 사용할 수 있습니다.
사용자 정의 도구는 내장 도구와 함께 opencode에서 사용할 수 있습니다.
:::note
플러그인 도구가 내장 도구와 같은 이름을 사용하면 플러그인 도구가 우선순위를 갖습니다.
:::
---
@@ -331,9 +334,9 @@ export const MyPlugin = async ({ client }) => {
---
## Compaction 훅
### Compaction 훅
세션이 압축 될 때 포함 컨텍스트를 사용자 지정:
세션이 압축될 때 포함되는 컨텍스트를 사용자 지정할 수 있습니다:
```ts title=".opencode/plugins/compaction.ts"
import type { Plugin } from "@opencode-ai/plugin"
@@ -355,9 +358,9 @@ Include any state that should persist across compaction:
}
```
LLM이 압축 요약을 생성하기 전에 `experimental.session.compacting` 훅 실행됩니다. 기본 압축 프롬프트를 대체할 수 있도록 도메인 별 컨텍스트를 주입합니다.
`experimental.session.compacting` 훅은 LLM이 연속 요약을 생성하기 전에 실행됩니다. 기본 압축 프롬프트가 놓칠 수 있 도메인별 컨텍스트를 주입하는 데 사용하세요.
당신은 또한 `output.prompt`를 조정해서 조밀함을 전적으로 대체할 수 있습니다:
또한 `output.prompt`를 설정하여 압축 프롬프트를 완전히 대체할 수 있습니다:
```ts title=".opencode/plugins/custom-compaction.ts"
import type { Plugin } from "@opencode-ai/plugin"
@@ -382,4 +385,4 @@ Format as a structured prompt that a new agent can use to resume work.
}
```
`output.prompt`가 설정되면 완전히 기본 압축 프롬프트를 대체합니다. `output.context` 배열은 이 경우에 무시됩니다.
`output.prompt`가 설정되면 기본 압축 프롬프트를 완전히 대체합니다. 이 경우 `output.context` 배열은 무시됩니다.

File diff suppressed because it is too large Load Diff

View File

@@ -117,13 +117,85 @@ try {
---
## 구조화된 출력
JSON 스키마와 함께 `format`을 지정하여 모델에서 구조화된 JSON 출력을 요청할 수 있습니다. 모델은 `StructuredOutput` 도구를 사용하여 스키마와 일치하는 검증된 JSON을 반환합니다.
### 기본 사용법
```typescript
const result = await client.session.prompt({
path: { id: sessionId },
body: {
parts: [{ type: "text", text: "Research Anthropic and provide company info" }],
format: {
type: "json_schema",
schema: {
type: "object",
properties: {
company: { type: "string", description: "Company name" },
founded: { type: "number", description: "Year founded" },
products: {
type: "array",
items: { type: "string" },
description: "Main products",
},
},
required: ["company", "founded"],
},
},
},
})
// Access the structured output
console.log(result.data.info.structured_output)
// { company: "Anthropic", founded: 2021, products: ["Claude", "Claude API"] }
```
### 출력 형식 유형
| 유형 | 설명 |
| ------------- | ------------------------------------------------- |
| `text` | 기본값. 표준 텍스트 응답 (구조화된 출력 없음) |
| `json_schema` | 제공된 스키마와 일치하는 검증된 JSON을 반환합니다 |
### JSON 스키마 형식
`type: 'json_schema'`를 사용할 때 다음을 제공하십시오:
| 필드 | 유형 | 설명 |
| ------------ | --------------- | ------------------------------------------- |
| `type` | `'json_schema'` | 필수. JSON 스키마 모드를 지정합니다 |
| `schema` | `object` | 필수. 출력 구조를 정의하는 JSON 스키마 객체 |
| `retryCount` | `number` | 선택 사항. 검증 재시도 횟수 (기본값: 2) |
### 오류 처리
모델이 모든 재시도 후에도 유효한 구조화된 출력을 생성하지 못하면 응답에 `StructuredOutputError`가 포함됩니다:
```typescript
if (result.data.info.error?.name === "StructuredOutputError") {
console.error("Failed to produce structured output:", result.data.info.error.message)
console.error("Attempts:", result.data.info.error.retries)
}
```
### 모범 사례
1. **명확한 설명 제공**: 모델이 추출할 데이터를 이해하는 데 도움이 되도록 스키마 속성에 명확한 설명을 제공하십시오.
2. **`required` 사용**: 필수 필드를 지정하려면 `required`를 사용하십시오.
3. **스키마를 집중적으로 유지**: 복잡한 중첩 스키마는 모델이 올바르게 채우기 더 어려울 수 있습니다.
4. **적절한 `retryCount` 설정**: 복잡한 스키마의 경우 늘리고 단순한 스키마의 경우 줄이십시오.
---
## API
SDK는 type-safe 클라이언트를 통해 모든 서버 API를 노출합니다.
---
## 글로벌
### 글로벌
| 메서드 | 설명 | 응답 |
| ----------------- | ---------------------- | ------------------------------------ |
@@ -142,10 +214,10 @@ console.log(health.data.version)
### 앱
| 방법 | 설명 | 응답 |
| -------------- | ------------------------- | ----------------------------------------------- |
| `app.log()` | 로그 항목 작성 | `boolean` |
| `app.agents()` | 이용 가능한 모든 에이전트 | <a href={typesUrl}><code> 에이전트[]</code></a> |
| 방법 | 설명 | 응답 |
| -------------- | ------------------------- | ------------------------------------------- |
| `app.log()` | 로그 항목 작성 | `boolean` |
| `app.agents()` | 이용 가능한 모든 에이전트 | <a href={typesUrl}><code>Agent[]</code></a> |
---
@@ -167,7 +239,7 @@ const agents = await client.app.agents()
---
## 프로젝트
### 프로젝트
| 방법 | 설명 | 응답 |
| ------------------- | ----------------------- | --------------------------------------------- |
@@ -205,7 +277,7 @@ const pathInfo = await client.path.get()
---
#### 구성
### 구성
| 방법 | 설명 | 응답 |
| -------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------- |
@@ -224,29 +296,29 @@ const { providers, default: defaults } = await client.config.providers()
---
## 세션
### 세션
| 메서드 | 설명 | 비고 |
| ---------------------------------------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `session.list()` | 세션 일람 | <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | 세션 가져 오기 | <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | 하위 세션 목록 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.create({ body })` | 세션 만들기 | 리턴 <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | 세션 삭제 | `boolean` 반품 |
| `session.update({ path, body })` | 업데이트 세션 속성 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | 앱 초기화 및 `AGENTS.md` 분석 | `boolean`를 반환 |
| `session.abort({ path })` | 운영 중인 세션 | 반품 `boolean` |
| `session.share({ path })` | 공유 세션 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | 공유 세션 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | 세션 요약 | 반품 `boolean` |
| `session.messages({ path })` | 세션의 메시지 목록 | `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part</code></a>`}[]` |
| `session.message({ path })` | 메시지 상세정보 | 반품 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | prompt 메시지 보내기 | `body.noReply: true` 반환 UserMessage (콘텍스트 전용). 기본 반환 <a href={typesUrl}><code>AssistantMessage</code></a> 에 AI 응답 |
| `session.command({ path, body })` | 세션으로 명령을 전송 | `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | shell 명령을 실행 | <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | 메시지 다시 변환 | <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | 메시지 되돌리기 취소 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | 허가 요청 대응 | 반품 `boolean` |
| 메서드 | 설명 | 비고 |
| ---------------------------------------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `session.list()` | 세션 일람 | <a href={typesUrl}><code>Session[]</code></a> |
| `session.get({ path })` | 세션 가져 오기 | <a href={typesUrl}><code>Session</code></a> |
| `session.children({ path })` | 하위 세션 목록 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.create({ body })` | 세션 만들기 | 리턴 <a href={typesUrl}><code>Session</code></a> |
| `session.delete({ path })` | 세션 삭제 | `boolean` 반품 |
| `session.update({ path, body })` | 업데이트 세션 속성 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.init({ path, body })` | 앱 초기화 및 `AGENTS.md` 분석 | `boolean`를 반환 |
| `session.abort({ path })` | 운영 중인 세션 | 반품 `boolean` |
| `session.share({ path })` | 공유 세션 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.unshare({ path })` | 공유 세션 취소 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `session.summarize({ path, body })` | 세션 요약 | 반품 `boolean` |
| `session.messages({ path })` | 세션의 메시지 목록 | `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part</code></a>`}[]` |
| `session.message({ path })` | 메시지 상세정보 | 반품 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.prompt({ path, body })` | prompt 메시지 보내기 | `body.noReply: true` UserMessage(컨텍스트 전용)를 반환합니다. 기본값은 AI 응답과 함께 <a href={typesUrl}><code>AssistantMessage</code></a>를 반환합니다. [구조화된 출력](#구조화된-출력)을 위한 `body.outputFormat`을 지원합니다 |
| `session.command({ path, body })` | 세션으로 명령을 전송 | `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` |
| `session.shell({ path, body })` | shell 명령을 실행 | <a href={typesUrl}><code>AssistantMessage</code></a> |
| `session.revert({ path, body })` | 메시지 다시 변환 | <a href={typesUrl}><code>Session</code></a> |
| `session.unrevert({ path })` | 메시지 되돌리기 취소 | 반품 <a href={typesUrl}><code>Session</code></a> |
| `postSessionByIdPermissionsByPermissionId({ path, body })` | 허가 요청 대응 | 반품 `boolean` |
---
@@ -281,7 +353,7 @@ await client.session.prompt({
---
## 파일
### 파일
| 방법 | 설명 | 응답 |
| ------------------------- | ---------------------------- | -------------------------------------------------------------------------------------- |
@@ -322,7 +394,7 @@ const content = await client.file.read({
---
#### TUI
### TUI
| 방법 | 설명 | 응답 |
| ------------------------------ | ------------------------ | --------- |
@@ -353,7 +425,7 @@ await client.tui.showToast({
---
##### 인증
### 인증
| 방법 | 설명 | 응답 |
| ------------------- | -------------- | --------- |
@@ -372,7 +444,7 @@ await client.auth.set({
---
## 이벤트
### 이벤트
| 방법 | 설명 | 응답 |
| ------------------- | ----------------------- | ----------------------- |

View File

@@ -3,28 +3,27 @@ title: 테마
description: 내장 테마를 선택하거나 자신만의 테마를 정의하세요.
---
opencode를 사용하면 여러 내장 테마 중 하나에서 선택할 수 있으며 terminal 테마에 적응하는 테마를 사용하거나 사용자 정의 테마를 정의 할 수 있습니다.
OpenCode를 사용하면 여러 내장 테마 중 하나에서 선택할 수 있으며 terminal 테마에 적응하는 테마를 사용하거나 사용자 정의 테마를 정의 할 수 있습니다.
기본적으로 opencode는 자체 `opencode` 테마를 사용합니다.
기본적으로 OpenCode는 자체 `opencode` 테마를 사용합니다.
---
## 터미널 요구 사항
자신의 풀 컬러 팔레트로 올바르게 표시려면 terminal을 지원해야합니다 ** truecolor** (24 비트 색상). 대부분의 현대 terminal은 기본적으로 이것을 지원합니다, 그러나 당신은 그것을 가능하게 할 필요가 있을지도 모릅니다:
테마가 전체 색상 팔레트로 올바르게 표시려면 터미널이 **truecolor** (24비트 색상)를 지원해야 합니다. 대부분의 최신 터미널은 기본적으로 이 지원하지만, 활성화해야 할 수도 있습니다:
-**체크 지원**: `echo $COLORTERM` - 그것은 `truecolor` 또는 `24bit` 출력야 합니다
- **지원 확인**: `echo $COLORTERM` 실행 - `truecolor` 또는 `24bit` 출력되어야 합니다.
- **truecolor 활성화**: 셸 프로필에서 환경 변수 `COLORTERM=truecolor`를 설정하십시오.
- **터미널 호환성**: 터미널 에뮬레이터가 24비트 색상을 지원하는지 확인하십시오 (iTerm2, Alacritty, Kitty, Windows Terminal 및 최신 버전의 GNOME Terminal 등 대부분의 최신 터미널이 지원함).
- ** truecolor 사용 가능**: shell 프로파일에서 환경 변수 `COLORTERM=truecolor`를 설정
- **Terminal 호환성 **: terminal 에뮬레이터 지원 24 비트 색상 (iTerm2, Alacritty, Kitty, Windows Terminal 및 GNOME Terminal의 최신 버전)
truecolor 지원 없이, 테마는 감소된 색깔 정확도로 나타날지도 모릅니다 또는 가장 가까운 256 색깔 대류로 뒤떨어질지도 모릅니다.
truecolor 지원이 없으면 테마가 감소된 색상 정확도로 표시되거나 가장 가까운 256색 근사치로 대체될 수 있습니다.
---
## 내장 테마
opencode는 여러 내장 테마와 함께 제공됩니다.
OpenCode는 여러 내장 테마와 함께 제공됩니다.
| 이름 | 설명 |
| ---------------------- | ------------------------------------------------------------------- |
@@ -46,27 +45,27 @@ opencode는 여러 내장 테마와 함께 제공됩니다.
## 시스템 테마
`system` 테마는 terminal의 색깔 계획에 자동으로 적응시키기 위하여 디자인됩니다. 고정 색상을 사용하는 전통적인 테마와 달리, system 테마:
`system` 테마는 터미널의 색상 스키마에 자동으로 적응하도록 설계되었습니다. 고정 색상을 사용하는 기존 테마와 달리, system 테마:
- **그레이스케일**: terminal의 배경 색상을 기반으로 사용자 정의 회색 가늠자를 만들고 최적의 대를 보장합니다.
- ** ANSI 색상 사용 ** : terminal의 색상 팔레트를 존중하는 구문 강조 및 UI 요소에 대한 표준 ANSI 색상 (0-15).
- ** terminal 기본 사항**: `none` 텍스트 및 배경 색상을 사용하여 terminal의 네이티브 외관을 유지합니다.
- **그레이스케일 생성**: 터미널의 배경 색상을 기반으로 사용자 정의 그레이스케일을 생성하여 최적의 대를 보장합니다.
- **ANSI 색상 사용**: 구문 강조 및 UI 요소에 표준 ANSI 색상(0-15)을 활용하여 터미널의 색상 팔레트를 존중합니다.
- **터미널 기본값 유지**: 텍스트 및 배경 색상에 `none`을 사용하여 터미널의 기본 모양을 유지합니다.
시스템 테마는 사용자를위한 것입니다 :
시스템 테마는 다음과 같은 사용자에게 적합합니다:
- opencode가 terminal의 외관과 일치해야 합니다.
- 사용자 정의 terminal 색상 구성
- 모든 terminal 응용 분야의 일관된 모습
- OpenCode가 터미널의 모양과 일치하기를 원하는 경우
- 사용자 정의 터미널 색상 스키마를 사용하는 경우
- 모든 터미널 애플리케이션에서 일관된 모양을 선호하는 경우
---
## 테마 사용
테마를 `/theme` 명령어로 선택하여 테마를 선택할 수 있습니다. 또는 [config](/docs/config)에서 지정할 수 있습니다.
`/theme` 명령어로 테마 선택기를 불러와 테마를 선택할 수 있습니다. 또는 `tui.json`에서 지정할 수 있습니다.
```json title="opencode.json" {3}
```json title="tui.json" {3}
{
"$schema": "https://opencode.ai/config.json",
"$schema": "https://opencode.ai/tui.json",
"theme": "tokyonight"
}
```
@@ -75,32 +74,35 @@ opencode는 여러 내장 테마와 함께 제공됩니다.
## 사용자 정의 테마
opencode는 사용자가 쉽게 테마를 만들 수 있도록 유연한 JSON 기반 테마 시스템을 지원합니다.
OpenCode는 사용자가 쉽게 테마를 만들고 사용자 정의할 수 있도록 유연한 JSON 기반 테마 시스템을 지원합니다.
---
##### 계층 구조
### 계층 구조
테마는 다음과 같은 순서에서 여러 디렉토리에서로드됩니다. 나중에 감독은 이전 것을 무시합니다.
테마는 다음 순서대로 여러 디렉토리에서 로드되며, 나중 디렉토리가 이전 디렉토리를 덮어씁니다:
1.**Built-in themes** - 이것은 바이너리에 내장되어 있습니다. 2. **사용자 설정 디렉토리 ** - `~/.config/opencode/themes/*.json` 또는 `$XDG_CONFIG_HOME/opencode/themes/*.json`에서 정의 3. ** 루트 디렉토리 ** - `<project-root>/.opencode/themes/*.json`에서 정의 4. **현재 작업 디렉토리 ** - `./.opencode/themes/*.json`에서 정의
1. **내장 테마 (Built-in themes)** - 바이너리에 내장되어 있습니다.
2. **사용자 설정 디렉토리 (User config directory)** - `~/.config/opencode/themes/*.json` 또는 `$XDG_CONFIG_HOME/opencode/themes/*.json`에 정의됩니다.
3. **프로젝트 루트 디렉토리 (Project root directory)** - `<project-root>/.opencode/themes/*.json`에 정의됩니다.
4. **현재 작업 디렉토리 (Current working directory)** - `./.opencode/themes/*.json`에 정의됩니다.
여러 디렉토리 같은 이름을 가진 테마를 포함한다면, 더 높은 우선 순위를 가진 디렉토리의 테마가 사용됩니다.
여러 디렉토리 같은 이름의 테마가 있는 경우, 더 높은 우선 순위를 가진 디렉토리의 테마가 사용됩니다.
---
### 테마 만들기
사용자 정의 테마를 만들려면 테마 디렉토리 중 하나에 JSON 파일을 만듭니다.
사용자 정의 테마를 만들려면 테마 디렉토리 중 하나에 JSON 파일을 만듭니다.
사용자 넓은 테마:
사용자 전역 테마:
```bash no-frame
mkdir -p ~/.config/opencode/themes
vim ~/.config/opencode/themes/my-theme.json
```
프로젝트 별 테마.
프로젝트별 테마:
```bash no-frame
mkdir -p .opencode/themes
@@ -111,35 +113,34 @@ vim .opencode/themes/my-theme.json
### JSON 형식
테마는 유연한 JSON 형식을 사용하여 지원:
테마는 다음을 지원하는 유연한 JSON 형식을 사용합니다:
-**Hex 색상**: `"#ffffff"`
- ** ANSI 색상**: `3` (0-255)
- ** 색상 참조 ** : `"primary"` 또는 사용자 정의 정의
- ** 어두운 / 조명 변형 ** : `{"dark": "#000", "light": "#fff"}`
- ** 색상 없음 ** : `"none"` - terminal의 기본 색상 또는 투명 사용
- **Hex 색상**: `"#ffffff"`
- **ANSI 색상**: `3` (0-255)
- **색상 참조**: `"primary"` 또는 사용자 정의 정의
- **다크/라이트 변형**: `{"dark": "#000", "light": "#fff"}`
- **색상 없음**: `"none"` - 터미널의 기본 색상 또는 투명 사용
---
### 색상 정의
`defs` 단면도는 선택적이고 당신은 주제에서 참조 수 있는 재사용할 수 있는을 정의할 수 있습니다.
`defs` 섹션은 선택 사항이며 테마 내에서 참조 수 있는 재사용 가능한을 정의할 수 있습니다.
---
## 터미널 기본값
### 터미널 기본값
특별한 가치 `"none"`는 terminal의 기본 색을 상속하기 위하여 어떤 색깔든지를 위해 사용 수 있습니다. 이것은 특히 당신의 terminal의 색깔 계획과 이음새가 없는 혼합 테마 창조를 위해 유용합니다:
`"none"`이라는 특별한 값은 모든 색상에 대해 터미널의 기본 색을 상속하는 데 사용 수 있습니다. 이 특히 터미널의 색상 스키마와 매끄럽게 어우러지는 테마를 만들 때 유용합니다:
- `"text": "none"` - terminal의 기본 전경 색상 사용
- `"background": "none"` - terminal의 기본 배경 색상 사용
- `"text": "none"` - 터미널의 기본 전경 사용
- `"background": "none"` - 터미널의 기본 배경 사용
---
### 예제
사용자 정의 테마의 예입니다 :
사용자 정의 테마의 예입니다:
```json title="my-theme.json"
{

View File

@@ -5,9 +5,9 @@ description: OpenCode 터미널 사용자 인터페이스 사용.
import { Tabs, TabItem } from "@astrojs/starlight/components"
opencode는 LLM과 함께 프로젝트 대화형 terminal 인터페이스 또는 TUI를 제공합니다.
OpenCode는 LLM과 함께 프로젝트 작업을 하기 대화형 터미널 인터페이스(TUI)를 제공합니다.
opencode 현재 디렉토리에 TUI 시작니다.
OpenCode를 실행하면 현재 디렉토리에 TUI 시작니다.
```bash
opencode
@@ -19,7 +19,7 @@ opencode
opencode /path/to/project
```
TUI에 있다면 메시지가 표시됩니다.
TUI에 들어가면 메시지를 입력하여 프롬프트할 수 있습니다.
```text
Give me a quick summary of the codebase.
@@ -29,10 +29,10 @@ Give me a quick summary of the codebase.
## 파일 참조
`@`를 사용하여 메시지에 파일을 참조 할 수 있습니다. 이것은 현재 작업 디렉토리에서 fuzzy 파일 검색니다.
`@`를 사용하여 메시지에 파일을 참조할 수 있습니다. 이것은 현재 작업 디렉토리에서 퍼지(fuzzy) 파일 검색을 수행합니다.
:::tip
`@`를 사용하여 메시지의 참조 파일을 사용할 수 있습니다.
`@`를 사용하여 메시지에서 파일을 참조할 수 있습니다.
:::
```text "@packages/functions/src/api/index.ts"
@@ -45,7 +45,7 @@ How is auth handled in @packages/functions/src/api/index.ts?
## Bash 명령
`!`를 사용하여 shell 명령을 실행합니다.
`!`로 메시지를 시작하여 셸 명령을 실행합니다.
```bash frame="none"
!ls -la
@@ -57,21 +57,21 @@ How is auth handled in @packages/functions/src/api/index.ts?
## 명령
opencode TUI를 사용할 때, `/`를 입력하여 명령 이름을 따라 작업을 신속하게 실행할 수 있습니다. 예를 들:
OpenCode TUI를 사용할 때 `/` 뒤에 명령 이름을 입력하여 작업을 빠르게 실행할 수 있습니다. 예를 들:
```bash frame="none"
/help
```
대부분의 명령은 `ctrl+x`를 `ctrl+x`가 기본 리더 키입니다. [더 알아보기](/docs/keybinds).
대부분의 명령에는 기본 리더 키인 `ctrl+x`를 사용하는 키바인드도 있습니다. [더 알아보기](/docs/keybinds).
여기에 모든 가능한 슬래시 명령이 있습니다.
사용 가능한 모든 슬래시 명령은 다음과 같습니다:
---
### /connect
### connect
opencode에 대한 공급자를 추가합니다. 사용 가능한 공급자에서 선택하고 API 키를 추가 할 수 있습니다.
OpenCode에 공급자를 추가합니다. 사용 가능한 공급자에서 선택하고 API 키를 추가할 수 있습니다.
```bash frame="none"
/connect
@@ -79,67 +79,67 @@ opencode에 대한 공급자를 추가합니다. 사용 가능한 공급자에
---
### /compact
### compact
현재 세션을 압축합니다. 앨리스 : `/summarize`
현재 세션을 압축합니다. _별칭_: `/summarize`
```bash frame="none"
/compact
```
** Keybind:** `ctrl+x c`
**키바인드:** `ctrl+x c`
---
### /details
### details
토글 툴 실행 세부 사항.
도구 실행 세부 정보 토글.
```bash frame="none"
/details
```
** Keybind:** `ctrl+x d`
**키바인드:** `ctrl+x d`
---
### /editor
### editor
메시지 작성하기 위한 외부 편집기를 엽니다. `EDITOR` 환경에 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup).
메시지 작성 위한 외부 편집기를 엽니다. `EDITOR` 환경 변수에 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup).
```bash frame="none"
/editor
```
** Keybind:** `ctrl+x e`
**키바인드:** `ctrl+x e`
---
### /exit
### exit
opencode를 종료합니다. Aliases : `/quit`, `/q`
OpenCode를 종료합니다. _별칭_: `/quit`, `/q`
```bash frame="none"
/exit
```
** Keybind:** `ctrl+x q`
**키바인드:** `ctrl+x q`
---
### /export
### export
Markdown에 대한 현재 대화를 내보내고 기본 편집기에서 열립니다. `EDITOR` 환경에 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup).
현재 대화를 Markdown으로 내보내고 기본 편집기에서 니다. `EDITOR` 환경 변수에 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup).
```bash frame="none"
/export
```
** Keybind:** `ctrl+x x`
**키바인드:** `ctrl+x x`
---
### /help
### help
도움말 대화 상자를 표시합니다.
@@ -147,107 +147,106 @@ Markdown에 대한 현재 대화를 내보내고 기본 편집기에서 열립
/help
```
** Keybind:** `ctrl+x h`
**키바인드:** `ctrl+x h`
---
###### /init
### init
`AGENTS.md` 파일을 만들거나 업데이트하십시오. [더 알아보기](/docs/rules).
`AGENTS.md` 파일을 생성하거나 업데이트합니다. [더 알아보기](/docs/rules).
```bash frame="none"
/init
```
** Keybind:** `ctrl+x i`
**키바인드:** `ctrl+x i`
---
## /models
### models
사용 가능한 모델 목록.
사용 가능한 모델 목록을 표시합니다.
```bash frame="none"
/models
```
** Keybind:** `ctrl+x m`
**키바인드:** `ctrl+x m`
---
## /new
### new
로운 세션을 시작합니다. 앨리스 : `/clear`
새 세션을 시작합니다. _별칭_: `/clear`
```bash frame="none"
/new
```
** Keybind:** `ctrl+x n`
**키바인드:** `ctrl+x n`
---
##### /redo
### redo
이전 undone 메시지 Redo. `/undo`를 사용하는 후에만 유효한.
이전에 실행 취소한 메시지를 다시 실행합니다. `/undo`를 사용 후에만 사용할 수 있습니다.
:::tip
모든 파일 변경도 복원됩니다.
모든 파일 변경 사항도 복원됩니다.
:::
내부적으로 Git을 사용하여 파일 변경을 관리합니다. 그래서 프로젝트 **
Git 저장소**입니다.
내부적으로 Git을 사용하여 파일 변경 사항을 관리합니다. 따라서 프로젝트 **Git 저장소**여야 합니다.
```bash frame="none"
/redo
```
** Keybind:** `ctrl+x r`
**키바인드:** `ctrl+x r`
---
## /sessions
### sessions
세션 간 목록 및 전환. Aliases : `/resume`, `/continue`
세션 목록을 표시하고 세션 간을 전환합니다. _별칭_: `/resume`, `/continue`
```bash frame="none"
/sessions
```
** Keybind:** `ctrl+x l`
**키바인드:** `ctrl+x l`
---
## 공유
### share
현재 세션 공유. [더 알아보기](/docs/share).
현재 세션 공유합니다. [더 알아보기](/docs/share).
```bash frame="none"
/share
```
** Keybind:** `ctrl+x s`
**키바인드:** `ctrl+x s`
---
## /theme
### themes
사용할 수 있는 테마 목록.
사용 가능한 테마 목록을 표시합니다.
```bash frame="none"
/theme
/themes
```
** Keybind:** `ctrl+x t`
**키바인드:** `ctrl+x t`
---
### /thinking
### thinking
대화의 사고/거주 블록의 가시성을 토합니다. 사용할 때, 확장 생각을 지원하는 모델의 이유 프로세스를 볼 수 있습니다.
대화에서 생각/추론 블록의 가시성을 토합니다. 활성화하면 확장된 사고를 지원하는 모델의 추론 과정을 볼 수 있습니다.
:::note
이 명령은 생각 블록이 ** 표시되는지 여부 만 제어 ** - 모델의 소싱 기능을 활성화하거나 비활성화하지 않습니다. toggle 실제적인 reasoning 기능에, 모형 변종을 통해서 주기 위하여 `ctrl+t`를 이용합니다.
이 명령은 생각 블록이 **표시되는지 여부만 제어**하며 모델의 추론 기능을 활성화하거나 비활성화하지 않습니다. 실제 추론 기능을 토글하려면 `ctrl+t`를 사용하여 모델 변형을 순환하십시오.
:::
```bash frame="none"
@@ -256,28 +255,27 @@ Git 저장소**입니다.
---
##### /undo
### undo
대화에서 마지막 메시지. 가장 최근의 사용자 메시지, 모든 후속 응답 및 모든 파일 변경 제거.
대화 마지막 메시지를 실행 취소합니다. 가장 최근의 사용자 메시지, 모든 후속 응답 및 모든 파일 변경 사항을 제거합니다.
:::tip
어떤 파일 변경도 복제됩니다.
모든 파일 변경 사항도 되돌려집니다.
:::
내부적으로 Git을 사용하여 파일 변경을 관리합니다. 그래서 프로젝트 **
Git 저장소**입니다.
내부적으로 Git을 사용하여 파일 변경 사항을 관리합니다. 따라서 프로젝트 **Git 저장소**여야 합니다.
```bash frame="none"
/undo
```
** Keybind:** `ctrl+x u`
**키바인드:** `ctrl+x u`
---
#### /unshare
### unshare
Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing).
현재 세션 공유를 취소합니다. [더 알아보기](/docs/share#un-sharing).
```bash frame="none"
/unshare
@@ -285,9 +283,9 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing).
---
## 편집기 설정
## Editor setup
`/editor`와 `/export` 명령 모두 `EDITOR` 환경변수에 지정된 편집기를 사용합니다.
`/editor`와 `/export` 명령 모두 `EDITOR` 환경 변수에 지정된 편집기를 사용합니다.
<Tabs>
<TabItem label="Linux/macOS">
@@ -301,8 +299,7 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing).
export EDITOR="code --wait"
```
영원한 만들기 위하여, 당신의 shell 프로파일에 이것을 추가하십시오;
`~/.bashrc`, `~/.zshrc`, 등.
영구적으로 설정하려면 셸 프로필(`~/.bashrc`, `~/.zshrc` 등)에 추가하십시오.
</TabItem>
@@ -315,8 +312,7 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing).
set EDITOR=code --wait
```
영구적으로, use **System Properties** > ** 환경
변수**.
영구적으로 설정하려면 **시스템 속성** > **환경 변수**를 사용하십시오.
</TabItem>
@@ -329,62 +325,72 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing).
$env:EDITOR = "code --wait"
```
영구적으로 만들려면 PowerShell 프로파일에 추가하십시오.
영구적으로 설정하려면 PowerShell 프로에 추가하십시오.
</TabItem>
</Tabs>
인기있는 편집기 옵션은 다음과 같습니다 :
인기 있는 편집기 옵션은 다음과 같습니다:
- `code` - Visual Studio 코드
- `cursor` - 커서
- `windsurf` - 윈드 서핑
- `nvim` - Neovim 편집기
- `vim` - Vim 편집기
- `nano` - 나노 편집기
- `notepad` - 윈도우 노트패드
- `subl` - 승화 텍스트
- `code` - Visual Studio Code
- `cursor` - Cursor
- `windsurf` - Windsurf
- `nvim` - Neovim editor
- `vim` - Vim editor
- `nano` - Nano editor
- `notepad` - Windows Notepad
- `subl` - Sublime Text
:::note
VS Code와 같은 일부 편집기는 `--wait` 플래그와 함께 시작해야합니다.
VS Code와 같은 일부 편집기는 `--wait` 플래그와 함께 시작해야 합니다.
:::
일부 편집기는 명령줄 인수가 차단 모드에서 실행되어야 합니다. `--wait` 플래그는 닫힐 때까지 편집기 프로세스 블록을 만듭니다.
일부 편집기는 차단 모드에서 실행하려면 명령줄 인수가 필요합니다. `--wait` 플래그는 편집기 프로세스가 닫힐 때까지 차단되도록 합니다.
---
## 구성
opencode config 파일을 통해 TUI 동작을 사용자 정의할 수 있습니다.
`tui.json` (또는 `tui.jsonc`) 파일을 통해 TUI 동작을 사용자 정의할 수 있습니다.
```json title="opencode.json"
```json title="tui.json"
{
"$schema": "https://opencode.ai/config.json",
"tui": {
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
}
}
"$schema": "https://opencode.ai/tui.json",
"theme": "opencode",
"keybinds": {
"leader": "ctrl+x"
},
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto"
}
```
이는 서버/런타임 동작을 구성하는 `opencode.json`과는 별개입니다.
### 옵션
- `scroll_acceleration` - 부드러운 자연 스크롤을위한 macOS 스타일 스크롤 가속 가능. 사용할 때, 스크롤 속도는 빠른 스크롤 제스처로 증가하고 느린 움직임을 위해 정확한 유지. **이 설정은 `scroll_speed`를 통해 우선 순위를 부여하고 활성화 할 때. **
- `scroll_speed` - 스크롤 명령 (최소 : `1`)을 사용하여 TUI 스크롤을 빠르게 제어합니다. 기본 `3`. ** 참고: `scroll_acceleration.enabled`가 `true`로 설정되면 무시됩니다.**
- `theme` - UI 테마를 설정합니다. [더 알아보기](/docs/themes).
- `keybinds` - 키보드 단축키를 사용자 정의합니다. [더 알아보기](/docs/keybinds).
- `scroll_acceleration.enabled` - 부드럽고 자연스러운 스크롤을 위해 macOS 스타일의 스크롤 가속을 활성화합니다. 활성화하면 빠른 스크롤 제스처로 스크롤 속도가 증가하고 느린 움직임에서는 정밀하게 유지됩니다. **이 설정은 `scroll_speed`보다 우선하며 활성화 시 이를 덮어씁니다.**
- `scroll_speed` - 스크롤 명령을 사용할 때 TUI 스크롤 속도를 제어합니다 (최소: `0.001`, 소수점 값 지원). 기본값은 `3`입니다. **참고: `scroll_acceleration.enabled`가 `true`로 설정되면 무시됩니다.**
- `diff_style` - diff 렌더링 방식을 제어합니다. `"auto"`는 터미널 너비에 적응하고, `"stacked"`는 항상 단일 열 레이아웃을 표시합니다.
`OPENCODE_TUI_CONFIG`를 사용하여 사용자 정의 TUI 설정 경로를 로드할 수 있습니다.
---
## 사용자 정의
명령 팔레트 (`ctrl+x h` 또는 `/help`)를 사용하여 TUI보기의 다양한 측면을 사용자 정의 할 수 있습니다. 재시작에 따른 설정 persist.
명령 팔레트(`ctrl+x h` 또는 `/help`)를 사용하여 TUI 보기의 다양한 측면을 사용자 정의할 수 있습니다. 설정은 다시 시작해도 유지됩니다.
---
#### 사용자 이름 표시
사용자 이름이 채팅 메시지에 나타나는지 여부를 수정합니다. 이것을 통해 접근:
채팅 메시지에 사용자 이름이 표시되는지 여부를 토글합니다. 다음을 통해 액세스:
- 명령 팔레트 : "username" 또는 "hide 사용자" 검색
- 자동 설정은 TUI 세션을 통해 기억됩니다.
- 명령 팔레트: "username" 또는 "hide username" 검색
- 설정은 자동으로 유지되며 TUI 세션 간에 기억됩니다.

View File

@@ -3,7 +3,7 @@ title: Zen
description: OpenCode가 제공하는 엄선된 모델 목록.
---
import config from "../../../../config.mjs"
import config from "../../../config.mjs"
export const console = config.console
export const email = `mailto:${config.email}`
@@ -55,6 +55,7 @@ OpenCode Zen은 OpenCode의 다른 제공자와 동일한 방식으로 작동합
| 모델 | 모델 ID | 엔드포인트 | AI SDK 패키지 |
| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- |
| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
@@ -64,28 +65,30 @@ OpenCode Zen은 OpenCode의 다른 제공자와 동일한 방식으로 작동합
| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` |
| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
| MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.5 Free | minimax-m2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| MiniMax M2.1 Free | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
| GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
| Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
OpenCode 설정 파일에서 사용하는 [모델 ID](/docs/config/#models)는 `opencode/<model-id>` 형식을 따릅니다.
OpenCode 설정 파일에서 사용하는 [모델 ID](/docs/config/#models)는 `opencode/<model-id>` 형식을 따릅니다.
예를 들어 GPT 5.2 Codex의 경우 설정에서 `opencode/gpt-5.2-codex`와 같이 사용합니다.
---
@@ -107,29 +110,34 @@ https://opencode.ai/zen/v1/models
| 모델 | 입력 | 출력 | 캐시 읽기 | 캐시 쓰기 |
| --------------------------------- | ------ | ------ | --------- | --------- |
| Big Pickle | Free | Free | Free | - |
| MiniMax M2.1 Free | Free | Free | Free | - |
| MiniMax M2.5 Free | Free | Free | Free | - |
| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - |
| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
| GLM 4.7 Free | Free | Free | Free | - |
| GLM 5 | $1.00 | $3.20 | $0.20 | - |
| GLM 4.7 | $0.60 | $2.20 | $0.10 | - |
| GLM 4.6 | $0.60 | $2.20 | $0.10 | - |
| Kimi K2.5 Free | Free | Free | Free | - |
| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - |
| Kimi K2 Thinking | $0.40 | $2.50 | - | - |
| Kimi K2 | $0.40 | $2.50 | - | - |
| Qwen3 Coder 480B | $0.45 | $1.50 | - | - |
| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 |
| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
| Claude Sonnet 4.6 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4.6 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 |
| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 |
| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 |
| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
| Gemini 3 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
| Gemini 3 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
| GPT 5.3 Codex | $1.75 | $14.00 | $0.175 | - |
| GPT 5.2 | $1.75 | $14.00 | $0.175 | - |
| GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - |
| GPT 5.1 | $1.07 | $8.50 | $0.107 | - |
@@ -148,8 +156,6 @@ https://opencode.ai/zen/v1/models
무료 모델:
- GLM 5 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다.
- Kimi K2.5 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다.
- MiniMax M2.5 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다.
- Big Pickle은 한정된 기간 동안 OpenCode에서 무료로 제공되는 스텔스 모델입니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다.
@@ -169,7 +175,7 @@ https://opencode.ai/zen/v1/models
워크스페이스 전체 및 각 팀 구성원별로 월간 사용 한도를 설정할 수 있습니다.
예를 들어 월간 사용 한도를 $20로 설정한 경우, Zen은 한 달 동안 $20을 초과하여 사용하지 않습니다.
예를 들어 월간 사용 한도를 $20로 설정한 경우, Zen은 한 달 동안 $20을 초과하여 사용하지 않습니다.
다만 자동 충전이 활성화되어 있는 경우, 잔액이 $5 미만으로 내려가면 자동으로 충전이 이루어질 수 있으므로 실제 청구 금액이 $20을 초과할 수 있습니다.
---
@@ -179,8 +185,6 @@ https://opencode.ai/zen/v1/models
당사의 모든 모델은 미국에서 호스팅됩니다. 당사 제공자는 데이터 무보존(zero-retention) 정책을 따르며, 아래의 예외를 제외하고는 귀하의 데이터를 모델 학습에 사용하지 않습니다.
- Big Pickle: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다.
- GLM 5 Free: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다.
- Kimi K2.5 Free: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다.
- MiniMax M2.5 Free: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다.
- OpenAI APIs: 요청 데이터는 [OpenAI의 데이터 정책](https://platform.openai.com/docs/guides/your-data)에 따라 30일간 보관됩니다.
- Anthropic APIs: 요청 데이터는 [Anthropic의 데이터 정책](https://docs.anthropic.com/en/docs/claude-code/data-usage)에 따라 30일간 보관됩니다.