opencode / packages /web /src /content /docs /ko /providers.mdx
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
0dbc9de verified
Raw History Blame Contribute Delete
50.7 kB
---
title: κ³΅κΈ‰μž
description: OpenCodeμ—μ„œ LLM κ³΅κΈ‰μžλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
---
import config from "../../../../config.mjs"
export const console = config.console
OpenCodeλŠ” [AI SDK](https://ai-sdk.dev/) 및 [Models.dev](https://models.dev)λ₯Ό μ‚¬μš©ν•˜μ—¬ **75개 μ΄μƒμ˜ LLM κ³΅κΈ‰μž**λ₯Ό μ§€μ›ν•˜λ©° 둜컬 λͺ¨λΈλ„ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
ν•„μš”ν•œ κ³΅κΈ‰μžλ₯Ό μΆ”κ°€ν•˜λ €λ©΄:
1. `/connect` λͺ…령을 μ‚¬μš©ν•˜μ—¬ κ³΅κΈ‰μžμ˜ API ν‚€λ₯Ό μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
2. OpenCode κ΅¬μ„±μ—μ„œ κ³΅κΈ‰μžλ₯Ό κ΅¬μ„±ν•˜μ‹­μ‹œμ˜€.
---
### 자격 증λͺ…
`/connect` λͺ…λ ΉμœΌλ‘œ κ³΅κΈ‰μžμ˜ API ν‚€λ₯Ό μΆ”κ°€ν•˜λ©΄ λ‹€μŒ μœ„μΉ˜μ— μ €μž₯λ©λ‹ˆλ‹€:
`~/.local/share/opencode/auth.json`
---
### ꡬ성
OpenCode μ„€μ •μ˜ `provider` μ„Ήμ…˜μ„ 톡해 κ³΅κΈ‰μžλ₯Ό μ‚¬μš©μž μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
---
#### κΈ°λ³Έ URL
`baseURL` μ˜΅μ…˜μ„ μ„€μ •ν•˜μ—¬ λͺ¨λ“  κ³΅κΈ‰μžλ₯Ό μœ„ν•œ κΈ°λ³Έ URL을 μ‚¬μš©μž μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν”„λ‘μ‹œ μ„œλΉ„μŠ€ λ˜λŠ” μ‚¬μš©μž μ •μ˜ μ—”λ“œν¬μΈνŠΈλ₯Ό μ‚¬μš©ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€.
```json title="opencode.json" {6}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"anthropic": {
"options": {
"baseURL": "https://api.anthropic.com/v1"
}
}
}
}
```
---
## OpenCode Zen
OpenCode Zen은 OpenCode νŒ€μ΄ OpenCode와 잘 μž‘λ™ν•˜λ„λ‘ ν…ŒμŠ€νŠΈν•˜κ³  κ²€μ¦ν•œ λͺ¨λΈ λͺ©λ‘μž…λ‹ˆλ‹€. [더 μ•Œμ•„λ³΄κΈ°](/docs/zen).
:::tip
처음이라면 OpenCode Zen으둜 μ‹œμž‘ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
:::
1. TUIμ—μ„œ `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  `OpenCode Zen`을 μ„ νƒν•œ λ’€, [opencode.ai/auth](https://opencode.ai/zen)둜 μ΄λ™ν•©λ‹ˆλ‹€.
```txt
/connect
```
2. λ‘œκ·ΈμΈν•˜κ³  결제 정보λ₯Ό μž…λ ₯ν•œ ν›„ API ν‚€λ₯Ό λ³΅μ‚¬ν•˜μ‹­μ‹œμ˜€.
3. API ν‚€λ₯Ό λΆ™μ—¬λ„£μŠ΅λ‹ˆλ‹€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. TUIμ—μ„œ `/models`λ₯Ό μ‹€ν–‰ν•˜μ—¬ μΆ”μ²œ λͺ¨λΈ λͺ©λ‘μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
```txt
/models
```
OpenCode의 λ‹€λ₯Έ κ³΅κΈ‰μžμ²˜λŸΌ μž‘λ™ν•˜λ©° μ‚¬μš©μ€ μ™„μ „νžˆ 선택 μ‚¬ν•­μž…λ‹ˆλ‹€.
---
## OpenCode Go
OpenCode GoλŠ” OpenCode νŒ€μ΄ ν…ŒμŠ€νŠΈν•˜κ³  κ²€μ¦ν•˜μ—¬ OpenCode와 잘 μž‘λ™ν•˜λŠ” 인기 μžˆλŠ” μ˜€ν”ˆ μ½”λ”© λͺ¨λΈμ— μ•ˆμ •μ μœΌλ‘œ μ•‘μ„ΈμŠ€ν•  수 μžˆλŠ” μ €λ ΄ν•œ ꡬ독 μš”κΈˆμ œμž…λ‹ˆλ‹€.
1. TUIμ—μ„œ `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  `OpenCode Go`λ₯Ό μ„ νƒν•œ λ’€ [opencode.ai/auth](https://opencode.ai/zen)둜 μ΄λ™ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
2. λ‘œκ·ΈμΈν•˜κ³  결제 정보λ₯Ό μž…λ ₯ν•œ ν›„ API ν‚€λ₯Ό λ³΅μ‚¬ν•˜μ‹­μ‹œμ˜€.
3. API ν‚€λ₯Ό λΆ™μ—¬λ„£μŠ΅λ‹ˆλ‹€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. TUIμ—μ„œ `/models`λ₯Ό μ‹€ν–‰ν•˜μ—¬ μΆ”μ²œ λͺ¨λΈ λͺ©λ‘μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
```txt
/models
```
OpenCode의 λ‹€λ₯Έ κ³΅κΈ‰μžμ²˜λŸΌ μž‘λ™ν•˜λ©° μ‚¬μš©μ€ μ™„μ „νžˆ 선택 μ‚¬ν•­μž…λ‹ˆλ‹€.
---
## 디렉토리
κ³΅κΈ‰μž μ„ΈλΆ€ 정보λ₯Ό ν™•μΈν•˜μ„Έμš”. λͺ©λ‘μ— κ³΅κΈ‰μžλ₯Ό μΆ”κ°€ν•˜λ €λ©΄ PR을 μ—΄μ–΄μ£Όμ„Έμš”.
:::note
μ›ν•˜λŠ” κ³΅κΈ‰μžκ°€ μ—†λ‚˜μš”? PR을 μ œμΆœν•΄ μ£Όμ„Έμš”.
:::
---
### 302.AI
1. [302.AI μ½˜μ†”](https://302.ai/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **302.AI**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. 302.AI API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. λͺ¨λΈμ„ μ„ νƒν•˜λ €λ©΄ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Amazon Bedrock
OpenCode둜 Amazon Bedrock을 μ‚¬μš©ν•˜λ €λ©΄:
1. Amazon Bedrock μ½˜μ†”μ˜ **Model catalog**둜 μ΄λ™ν•˜μ—¬ μ›ν•˜λŠ” λͺ¨λΈμ— λŒ€ν•œ μ•‘μ„ΈμŠ€λ₯Ό μš”μ²­ν•©λ‹ˆλ‹€.
:::tip
Amazon Bedrockμ—μ„œ μ›ν•˜λŠ” λͺ¨λΈμ— λŒ€ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
:::
2. λ‹€μŒ 방법 쀑 ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•˜μ—¬ **인증을 ꡬ성**ν•©λ‹ˆλ‹€:
***
#### ν™˜κ²½ λ³€μˆ˜ (λΉ λ₯Έ μ‹œμž‘)
OpenCodeλ₯Ό μ‹€ν–‰ν•˜λŠ” λ™μ•ˆ λ‹€μŒ ν™˜κ²½ λ³€μˆ˜ 쀑 ν•˜λ‚˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€:
```bash
# Option 1: Using AWS access keys
AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode
# Option 2: Using named AWS profile
AWS_PROFILE=my-profile opencode
# Option 3: Using Bedrock bearer token
AWS_BEARER_TOKEN_BEDROCK=XXX opencode
```
λ˜λŠ” bash ν”„λ‘œν•„μ— μΆ”κ°€ν•©λ‹ˆλ‹€:
```bash title="~/.bash_profile"
export AWS_PROFILE=my-dev-profile
export AWS_REGION=us-east-1
```
***
#### ꡬ성 파일 (ꢌμž₯)
ν”„λ‘œμ νŠΈλ³„ λ˜λŠ” 영ꡬ ꡬ성을 μœ„ν•΄ `opencode.json`을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
"options": {
"region": "us-east-1",
"profile": "my-aws-profile"
}
}
}
}
```
**μœ νš¨ν•œ μ˜΅μ…˜:**
- `region` - AWS 리전 (예: `us-east-1`, `eu-west-1`)
- `profile` - `~/.aws/credentials`의 AWS ν”„λ‘œν•„ 이름
- `endpoint` - VPC μ—”λ“œν¬μΈνŠΈ 등을 μœ„ν•œ μ‚¬μš©μž μ •μ˜ μ—”λ“œν¬μΈνŠΈ URL (일반 `baseURL` μ˜΅μ…˜μ˜ 별칭)
:::tip
ꡬ성 파일 μ˜΅μ…˜μ€ ν™˜κ²½ λ³€μˆ˜λ³΄λ‹€ μš°μ„  μˆœμœ„κ°€ λ†’μŠ΅λ‹ˆλ‹€.
:::
***
#### κ³ κΈ‰: VPC μ—”λ“œν¬μΈνŠΈ
Bedrock의 VPC μ—”λ“œν¬μΈνŠΈλ₯Ό μ‚¬μš©ν•˜λŠ” 경우:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
"options": {
"region": "us-east-1",
"profile": "production",
"endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
}
}
}
}
```
:::note
`endpoint` μ˜΅μ…˜μ€ 일반적인 `baseURL` μ˜΅μ…˜μ˜ λ³„μΉ­μž…λ‹ˆλ‹€. `endpoint`와 `baseURL` λ‘˜ λ‹€ μ§€μ •λœ 경우 `endpoint`κ°€ μš°μ„ ν•©λ‹ˆλ‹€.
:::
***
#### 인증 방법
- **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: IAM μ‚¬μš©μž 및 AWS μ½˜μ†”μ—μ„œ μ•‘μ„ΈμŠ€ ν‚€ 생성
- **`AWS_PROFILE`**: `~/.aws/credentials`의 ν”„λ‘œν•„ 이름을 μ‚¬μš©ν•©λ‹ˆλ‹€. `aws configure --profile my-profile` λ˜λŠ” `aws sso login`으둜 λ¨Όμ € κ΅¬μ„±ν•˜μ‹­μ‹œμ˜€.
- **`AWS_BEARER_TOKEN_BEDROCK`**: Amazon Bedrock μ½˜μ†”μ—μ„œ μž„μ‹œ API ν‚€ 생성
- **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: EKS IRSA (μ„œλΉ„μŠ€ κ³„μ •μš© IAM μ—­ν• ) λ˜λŠ” λ‹€λ₯Έ Kubernetes ν™˜κ²½μ˜ OIDC 연동. 이 ν™˜κ²½ λ³€μˆ˜λŠ” μ„œλΉ„μŠ€ 계정을 μ‚¬μš©ν•  λ•Œ Kubernetes에 μ˜ν•΄ μžλ™μœΌλ‘œ μ£Όμž…λ©λ‹ˆλ‹€.
***
#### 인증 μš°μ„  μˆœμœ„
Amazon Bedrock은 λ‹€μŒκ³Ό 같은 인증 μš°μ„  μˆœμœ„λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
1. **Bearer Token** - `AWS_BEARER_TOKEN_BEDROCK` ν™˜κ²½ λ³€μˆ˜ λ˜λŠ” `/connect` λͺ…λ Ήμ˜ 토큰
2. **AWS Credential Chain** - ν”„λ‘œν•„, μ•‘μ„ΈμŠ€ ν‚€, 곡유 자격 증λͺ…, IAM μ—­ν• , μ›Ή ID 토큰 (EKS IRSA), μΈμŠ€ν„΄μŠ€ 메타데이터
:::note
Bearer 토큰을 μ„€μ •ν•  λ•Œ (`/connect` λ˜λŠ” `AWS_BEARER_TOKEN_BEDROCK`λ₯Ό 톡해), κ΅¬μ„±λœ ν”„λ‘œν•„μ„ ν¬ν•¨ν•œ λͺ¨λ“  AWS 자격 증λͺ… 방법보닀 μš°μ„  μˆœμœ„κ°€ λ†’μŠ΅λ‹ˆλ‹€.
:::
3. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μ›ν•˜λŠ” λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
:::note
μ‚¬μš©μž μ •μ˜ μΆ”λ‘  ν”„λ‘œν•„(custom inference profiles)의 경우, 킀에 λͺ¨λΈκ³Ό κ³΅κΈ‰μž 이름을 μ‚¬μš©ν•˜κ³  `id` 속성에 ARN을 μ„€μ •ν•˜μ‹­μ‹œμ˜€. μ΄λ ‡κ²Œ ν•˜λ©΄ μ˜¬λ°”λ₯Έ 캐싱이 보μž₯λ©λ‹ˆλ‹€.
:::
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"amazon-bedrock": {
// ...
"models": {
"anthropic-claude-sonnet-4.5": {
"id": "arn:aws:bedrock:us-east-1:xxx:application-inference-profile/yyy"
}
}
}
}
}
```
---
### Anthropic
1. κ°€μž… ν›„ `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Anthropic**을 μ„ νƒν•©λ‹ˆλ‹€.
```txt
/connect
```
2. **Claude Pro/Max** μ˜΅μ…˜μ„ μ„ νƒν•˜λ©΄ λΈŒλΌμš°μ €κ°€ 열리고 인증을 μš”μ²­ν•©λ‹ˆλ‹€.
```txt
β”Œ Select auth method
β”‚
β”‚ Claude Pro/Max
β”‚ Create an API Key
β”‚ Manually enter API Key
β””
```
3. 이제 `/models` λͺ…령을 μ‚¬μš©ν•  λ•Œ λͺ¨λ“  Anthropic λͺ¨λΈμ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
```txt
/models
```
:::info
OpenCodeμ—μ„œ Claude Pro/Max ꡬ독을 μ‚¬μš©ν•˜λŠ” 것은 [Anthropic](https://anthropic.com)μ—μ„œ κ³΅μ‹μ μœΌλ‘œ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
:::
##### API ν‚€ μ‚¬μš©
Pro/Max ꡬ독이 μ—†λŠ” 경우 **Create an API Key**λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. λΈŒλΌμš°μ €κ°€ 열리고 Anthropic에 λ‘œκ·ΈμΈν•œ ν›„ 터미널에 뢙여넣을 수 μžˆλŠ” μ½”λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
λ˜λŠ” 이미 API ν‚€κ°€ μžˆλ‹€λ©΄, **Manually enter API Key**λ₯Ό μ„ νƒν•˜κ³  터미널에 뢙여넣을 수 μžˆμŠ΅λ‹ˆλ‹€.
---
### Atomic Chat
OpenAI ν˜Έν™˜ API μ„œλ²„ λ’€μ—μ„œ 둜컬 LLM을 μ‹€ν–‰ν•˜λŠ” λ°μŠ€ν¬ν†± μ• ν”Œλ¦¬μΌ€μ΄μ…˜μΈ [Atomic Chat](https://atomic.chat)을 톡해 둜컬 λͺ¨λΈμ„ μ‚¬μš©ν•˜λ„λ‘ opencodeλ₯Ό ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€(κΈ°λ³Έ μ—”λ“œν¬μΈνŠΈ `http://127.0.0.1:1337/v1`).
```json title="opencode.json" "atomic-chat" {5, 6, 8, 10-14}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"atomic-chat": {
"npm": "@ai-sdk/openai-compatible",
"name": "Atomic Chat (local)",
"options": {
"baseURL": "http://127.0.0.1:1337/v1"
},
"models": {
"<your-model-id>": {
"name": "<your-model-name>"
}
}
}
}
}
```
이 μ˜ˆμ‹œμ—μ„œ:
- `atomic-chat`은 μ‚¬μš©μž μ§€μ • κ³΅κΈ‰μž IDμž…λ‹ˆλ‹€. μ›ν•˜λŠ” μ–΄λ–€ λ¬Έμžμ—΄μ΄λ“  μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
- `npm`은 이 κ³΅κΈ‰μžμ— μ‚¬μš©ν•  νŒ¨ν‚€μ§€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” λͺ¨λ“  OpenAI ν˜Έν™˜ API에 `@ai-sdk/openai-compatible`이 μ‚¬μš©λ©λ‹ˆλ‹€.
- `name`은 UI에 ν‘œμ‹œλ˜λŠ” κ³΅κΈ‰μžμ˜ μ΄λ¦„μž…λ‹ˆλ‹€.
- `options.baseURL`은 둜컬 μ„œλ²„μ˜ μ—”λ“œν¬μΈνŠΈμž…λ‹ˆλ‹€. Atomic Chat 섀정에 맞게 ν˜ΈμŠ€νŠΈμ™€ 포트λ₯Ό λ³€κ²½ν•˜μ„Έμš”.
- `models`λŠ” λͺ¨λΈ ID와 ν•΄λ‹Ή ν‘œμ‹œ μ΄λ¦„μ˜ λ§΅μž…λ‹ˆλ‹€. 각 IDλŠ” `GET /v1/models`κ°€ λ°˜ν™˜ν•˜λŠ” `id`와 μΌμΉ˜ν•΄μ•Ό ν•˜λ©°, ν˜„μž¬ Atomic Chat에 λ‘œλ“œλœ ID λͺ©λ‘μ„ ν™•μΈν•˜λ €λ©΄ `curl http://127.0.0.1:1337/v1/models`λ₯Ό μ‹€ν–‰ν•˜μ„Έμš”.
:::tip
도ꡬ 호좜이 잘 μž‘λ™ν•˜μ§€ μ•ŠλŠ” 경우, 도ꡬ ν˜ΈμΆœμ„ 잘 μ§€μ›ν•˜λŠ” λ‘œλ“œλœ λͺ¨λΈ(예: Qwen-Coder λ˜λŠ” DeepSeek-Coder λ³€ν˜•)을 μ„ νƒν•˜μ„Έμš”.
:::
---
### Azure OpenAI
:::note
"I'm sorry, but I cannot assist with that request" 였λ₯˜κ°€ λ°œμƒν•˜λ©΄, Azure λ¦¬μ†ŒμŠ€μ˜ μ½˜ν…μΈ  ν•„ν„°λ₯Ό **DefaultV2**μ—μ„œ **Default**둜 λ³€κ²½ν•΄ λ³΄μ„Έμš”.
:::
1. [Azure 포털](https://portal.azure.com/)둜 μ΄λ™ν•˜μ—¬ **Azure OpenAI** λ¦¬μ†ŒμŠ€λ₯Ό λ§Œλ“­λ‹ˆλ‹€. λ‹€μŒμ΄ ν•„μš”ν•©λ‹ˆλ‹€:
- **λ¦¬μ†ŒμŠ€ 이름**: API μ—”λ“œν¬μΈνŠΈμ˜ 일뢀가 λ©λ‹ˆλ‹€ (`https://RESOURCE_NAME.openai.azure.com/`)
- **API ν‚€**: λ¦¬μ†ŒμŠ€μ˜ `KEY 1` λ˜λŠ” `KEY 2`
2. [Azure AI Foundry](https://ai.azure.com/)둜 μ΄λ™ν•˜μ—¬ λͺ¨λΈμ„ λ°°ν¬ν•©λ‹ˆλ‹€.
:::note
배포 이름은 μ œλŒ€λ‘œ μž‘λ™ν•˜λ €λ©΄ OpenCode의 λͺ¨λΈ 이름과 μΌμΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
:::
3. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Azure**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
4. API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
5. λ¦¬μ†ŒμŠ€ 이름을 ν™˜κ²½ λ³€μˆ˜λ‘œ μ„€μ •:
```bash
AZURE_RESOURCE_NAME=XXX opencode
```
λ˜λŠ” bash ν”„λ‘œν•„μ— μΆ”κ°€:
```bash title="~/.bash_profile"
export AZURE_RESOURCE_NAME=XXX
```
6. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ 배포된 λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Azure Cognitive Services
1. [Azure 포털](https://portal.azure.com/)둜 μ΄λ™ν•˜μ—¬ **Azure OpenAI** λ¦¬μ†ŒμŠ€λ₯Ό λ§Œλ“­λ‹ˆλ‹€. λ‹€μŒμ΄ ν•„μš”ν•©λ‹ˆλ‹€:
- **λ¦¬μ†ŒμŠ€ 이름**: API μ—”λ“œν¬μΈνŠΈμ˜ 일뢀가 λ©λ‹ˆλ‹€ (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`)
- **API ν‚€**: λ¦¬μ†ŒμŠ€μ˜ `KEY 1` λ˜λŠ” `KEY 2`
2. [Azure AI Foundry](https://ai.azure.com/)둜 μ΄λ™ν•˜μ—¬ λͺ¨λΈμ„ λ°°ν¬ν•©λ‹ˆλ‹€.
:::note
배포 이름은 μ œλŒ€λ‘œ μž‘λ™ν•˜λ €λ©΄ OpenCode의 λͺ¨λΈ 이름과 μΌμΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
:::
3. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Azure Cognitive Services**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
4. API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
5. λ¦¬μ†ŒμŠ€ 이름을 ν™˜κ²½ λ³€μˆ˜λ‘œ μ„€μ •:
```bash
AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX opencode
```
λ˜λŠ” bash ν”„λ‘œν•„μ— μΆ”κ°€:
```bash title="~/.bash_profile"
export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX
```
6. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ 배포된 λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Baseten
1. [Baseten](https://app.baseten.co/)으둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Baseten**을 κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Baseten API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. λͺ¨λΈμ„ μ„ νƒν•˜λ €λ©΄ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Cerebras
1. [Cerebras μ½˜μ†”](https://inference.cerebras.ai/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Cerebras**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Cerebras API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Qwen 3 Coder 480B_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Cloudflare AI Gateway
Cloudflare AI GatewayλŠ” OpenAI, Anthropic, Workers AI λ“±μ˜ λͺ¨λΈμ— μ•‘μ„ΈμŠ€ν•  수 있으며, ν†΅ν•©λœ μ—”λ“œν¬μΈνŠΈλ₯Ό 톡해 더 λ§Žμ€ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/)을 μ‚¬μš©ν•˜λ©΄ 각 κ³΅κΈ‰μžμ˜ 별도 API ν‚€κ°€ ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
1. [Cloudflare λŒ€μ‹œλ³΄λ“œ](https://dash.cloudflare.com/)둜 μ΄λ™ν•˜μ—¬, **AI** > **AI Gateway**둜 κ°€μ„œ μƒˆλ‘œμš΄ κ²Œμ΄νŠΈμ›¨μ΄λ₯Ό λ§Œλ“­λ‹ˆλ‹€.
2. 계정 ID 및 Gateway IDλ₯Ό ν™˜κ²½ λ³€μˆ˜λ‘œ μ„€μ •ν•˜μ‹­μ‹œμ˜€.
```bash title="~/.bash_profile"
export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id
export CLOUDFLARE_GATEWAY_ID=your-gateway-id
```
3. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Cloudflare AI Gateway**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
4. Cloudflare API 토큰을 μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
λ˜λŠ” ν™˜κ²½ λ³€μˆ˜λ‘œ μ„€μ •ν•©λ‹ˆλ‹€.
```bash title="~/.bash_profile"
export CLOUDFLARE_API_TOKEN=your-api-token
```
5. λͺ¨λΈμ„ μ„ νƒν•˜λ €λ©΄ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
OpenCode ꡬ성을 톡해 λͺ¨λΈμ„ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"cloudflare-ai-gateway": {
"models": {
"openai/gpt-4o": {},
"anthropic/claude-sonnet-4": {}
}
}
}
}
```
---
### Cortecs
1. [Cortecs μ½˜μ†”](https://cortecs.ai/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Cortecs**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Cortecs API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Kimi K2 Instruct_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### DeepSeek
1. [DeepSeek μ½˜μ†”](https://platform.deepseek.com/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  **API Keys**λ₯Ό ν΄λ¦­ν•˜μ—¬ ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **DeepSeek**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. DeepSeek API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ DeepSeek λͺ¨λΈ(예: _DeepSeek V4 Pro_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Deep Infra
1. [Deep Infra λŒ€μ‹œλ³΄λ“œ](https://deepinfra.com/dash)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Deep Infra**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Deep Infra API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. λͺ¨λΈμ„ μ„ νƒν•˜λ €λ©΄ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### FrogBot
1. [FrogBot λŒ€μ‹œλ³΄λ“œ](https://app.frogbot.ai/signup)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **FrogBot**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. FrogBot API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. λͺ¨λΈμ„ μ„ νƒν•˜λ €λ©΄ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Fireworks AI
1. [Fireworks AI μ½˜μ†”](https://app.fireworks.ai/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  **API Keys**λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Fireworks AI**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Fireworks AI API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Kimi K2 Instruct_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### GitLab Duo
GitLab DuoλŠ” GitLab의 Anthropic ν”„λ‘μ‹œλ₯Ό 톡해 κΈ°λ³Έ 도ꡬ 호좜 κΈ°λŠ₯을 κ°–μΆ˜ AI 기반 μ—μ΄μ „νŠΈ μ±„νŒ…μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
1. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  GitLab을 μ„ νƒν•©λ‹ˆλ‹€.
```txt
/connect
```
2. 인증 방법을 μ„ νƒν•˜μ‹­μ‹œμ˜€:
```txt
β”Œ Select auth method
β”‚
β”‚ OAuth (Recommended)
β”‚ Personal Access Token
β””
```
#### OAuth μ‚¬μš© (ꢌμž₯)
**OAuth**λ₯Ό μ„ νƒν•˜λ©΄ λΈŒλΌμš°μ €κ°€ 열리고 인증을 μš”μ²­ν•©λ‹ˆλ‹€.
#### 개인 μ•‘μ„ΈμŠ€ 토큰 μ‚¬μš©
1. [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens)둜 이동
2. **Add new token** 클릭
3. 이름: `OpenCode`, λ²”μœ„: `api`
4. 토큰 볡사 (`glpat-`둜 μ‹œμž‘)
5. 터미널에 μž…λ ₯
3. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λΈμ„ ν™•μΈν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
μ„Έ κ°€μ§€ Claude 기반 λͺ¨λΈμ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€:
- **duo-chat-haiku-4-5** (κΈ°λ³Έκ°’) - λΉ λ₯Έ μž‘μ—…μ„ μœ„ν•œ λΉ λ₯Έ 응닡
- **duo-chat-sonnet-4-5** - λŒ€λΆ€λΆ„μ˜ μ›Œν¬ν”Œλ‘œμš°μ— κ· ν˜• 작힌 μ„±λŠ₯
- **duo-chat-opus-4-5** - λ³΅μž‘ν•œ 뢄석에 적합
:::note
`GITLAB_TOKEN` ν™˜κ²½ λ³€μˆ˜λ₯Ό μ§€μ •ν•˜μ—¬ 토큰을 μ €μž₯ν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
:::
#### μ…€ν”„ ν˜ΈμŠ€νŒ… GitLab
:::note[κ·œμ • μ€€μˆ˜ μ°Έκ³  사항]
OpenCodeλŠ” μ„Έμ…˜ 제λͺ© 생성과 같은 일뢀 AI μž‘μ—…μ„ μœ„ν•΄ μž‘μ€ λͺ¨λΈμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.
기본적으둜 Zenμ—μ„œ ν˜ΈμŠ€νŒ…λ˜λŠ” gpt-5-nanoλ₯Ό μ‚¬μš©ν•˜λ„λ‘ κ΅¬μ„±λ©λ‹ˆλ‹€.
OpenCodeλ₯Ό 자체 ν˜ΈμŠ€νŒ… GitLab μΈμŠ€ν„΄μŠ€λ§Œ μ‚¬μš©ν•˜λ„λ‘ μ œν•œν•˜λ €λ©΄ `opencode.json` νŒŒμΌμ— λ‹€μŒμ„ μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
μ„Έμ…˜ 곡유λ₯Ό λΉ„ν™œμ„±ν™”ν•˜λŠ” 것도 ꢌμž₯ν•©λ‹ˆλ‹€.
```json
{
"$schema": "https://opencode.ai/config.json",
"small_model": "gitlab/duo-chat-haiku-4-5",
"share": "disabled"
}
```
:::
자체 ν˜ΈμŠ€νŒ… GitLab μΈμŠ€ν„΄μŠ€μ˜ 경우:
```bash
export GITLAB_INSTANCE_URL=https://gitlab.company.com
export GITLAB_TOKEN=glpat-...
```
μΈμŠ€ν„΄μŠ€κ°€ μ‚¬μš©μž μ •μ˜ AI Gatewayλ₯Ό μ‹€ν–‰ν•˜λŠ” 경우:
```bash
GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com
```
λ˜λŠ” bash ν”„λ‘œν•„μ— μΆ”κ°€:
```bash title="~/.bash_profile"
export GITLAB_INSTANCE_URL=https://gitlab.company.com
export GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com
export GITLAB_TOKEN=glpat-...
```
:::note
GitLab κ΄€λ¦¬μžλŠ” λ‹€μŒμ„ ν™œμ„±ν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€:
1. [Duo Agent Platform](https://docs.gitlab.com/user/duo_agent_platform/turn_on_off/) (μ‚¬μš©μž, κ·Έλ£Ή λ˜λŠ” μΈμŠ€ν„΄μŠ€)
2. κΈ°λŠ₯ ν”Œλž˜κ·Έ (Rails μ½˜μ†”μ„ 톡해):
- `agent_platform_claude_code`
- `third_party_agents_enabled`
:::
#### μ…€ν”„ ν˜ΈμŠ€νŒ… μΈμŠ€ν„΄μŠ€μš© OAuth
자체 ν˜ΈμŠ€νŒ… μΈμŠ€ν„΄μŠ€μ— λŒ€ν•΄ OAuthλ₯Ό μž‘λ™μ‹œν‚€λ €λ©΄ μƒˆλ‘œμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜(Settings β†’ Applications)을 λ§Œλ“€μ–΄μ•Ό ν•©λ‹ˆλ‹€.
콜백 URL `http://127.0.0.1:8080/callback` 및 λ‹€μŒ λ²”μœ„κ°€ ν•„μš”ν•©λ‹ˆλ‹€:
- api (μ‚¬μš©μž λŒ€μ‹  API μ•‘μ„ΈμŠ€)
- read_user (개인 정보 읽기)
- read_repository (리포지토리 읽기 μ „μš© μ•‘μ„ΈμŠ€)
그런 λ‹€μŒ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ IDλ₯Ό ν™˜κ²½ λ³€μˆ˜λ‘œ λ…ΈμΆœν•˜μ‹­μ‹œμ˜€:
```bash
export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
```
[opencode-gitlab-auth](https://www.npmjs.com/package/opencode-gitlab-auth) ν™ˆνŽ˜μ΄μ§€μ— μΆ”κ°€ λ¬Έμ„œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
#### ꡬ성
`opencode.json`을 톡해 μ‚¬μš©μž μ •μ˜:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"gitlab": {
"options": {
"instanceUrl": "https://gitlab.com"
}
}
}
}
```
#### GitLab API 도ꡬ (선택 μ‚¬ν•­μ΄μ§€λ§Œ κ°•λ ₯ ꢌμž₯)
GitLab 도ꡬ(병합 μš”μ²­, 이슈, νŒŒμ΄ν”„λΌμΈ, CI/CD λ“±)에 μ•‘μ„ΈμŠ€ν•˜λ €λ©΄:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-gitlab-plugin"]
}
```
이 ν”ŒλŸ¬κ·ΈμΈμ€ MR 리뷰, 이슈 좔적, νŒŒμ΄ν”„λΌμΈ λͺ¨λ‹ˆν„°λ§ 등을 ν¬ν•¨ν•œ 포괄적인 GitLab 리포지토리 관리 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
---
### GitHub Copilot
OpenCodeμ—μ„œ GitHub Copilot ꡬ독을 μ‚¬μš©ν•˜λ €λ©΄:
:::note
일뢀 λͺ¨λΈμ€ [Pro+ ꡬ독](https://github.com/features/copilot/plans)이 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
:::
1. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  GitHub Copilot을 κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
2. [github.com/login/device](https://github.com/login/device)둜 μ΄λ™ν•˜μ—¬ μ½”λ“œλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.
```txt
β”Œ Login with GitHub Copilot
β”‚
β”‚ https://github.com/login/device
β”‚
β”‚ Enter code: 8F43-6FCF
β”‚
β”‚ Waiting for authorization...
β””
```
3. 이제 μ›ν•˜λŠ” λͺ¨λΈμ„ μ„ νƒν•˜κΈ° μœ„ν•΄ `/models` λͺ…령을 μ‹€ν–‰ν•©λ‹ˆλ‹€.
```txt
/models
```
---
### Google Vertex AI
OpenCode둜 Google Vertex AIλ₯Ό μ‚¬μš©ν•˜λ €λ©΄:
1. Google Cloud Console의 **Model Garden**으둜 μ΄λ™ν•˜μ—¬ ν•΄λ‹Ή λ¦¬μ „μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λΈμ„ ν™•μΈν•˜μ‹­μ‹œμ˜€.
:::note
Vertex AI APIκ°€ ν™œμ„±ν™”λœ Google Cloud ν”„λ‘œμ νŠΈκ°€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
:::
2. ν•„μš”ν•œ ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •:
- `GOOGLE_CLOUD_PROJECT`: ꡬ글 ν΄λΌμš°λ“œ ν”„λ‘œμ νŠΈ ID
- `VERTEX_LOCATION` (선택): Vertex AI 리전 (κΈ°λ³Έκ°’: `global`)
- 인증 (ν•˜λ‚˜ 선택):
- `GOOGLE_APPLICATION_CREDENTIALS`: μ„œλΉ„μŠ€ 계정 JSON ν‚€ 파일 경둜
- gcloud CLI μ‚¬μš©: `gcloud auth application-default login`
OpenCodeλ₯Ό μ‹€ν–‰ν•  λ•Œ μ„€μ •:
```bash
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode
```
λ˜λŠ” bash ν”„λ‘œν•„μ— μΆ”κ°€:
```bash title="~/.bash_profile"
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
export GOOGLE_CLOUD_PROJECT=your-project-id
export VERTEX_LOCATION=global
```
:::tip
`global` 리전은 κ°€μš©μ„±μ„ 높이고 였λ₯˜λ₯Ό 쀄이며 μΆ”κ°€ λΉ„μš©μ΄ μ—†μŠ΅λ‹ˆλ‹€. 데이터 κ±°μ£Ό μš”κ±΄μ΄ μžˆλŠ” 경우 μ§€μ—­ μ—”λ“œν¬μΈνŠΈ(예: `us-central1`)λ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. [더 μ•Œμ•„λ³΄κΈ°](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints)
:::
3. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μ›ν•˜λŠ” λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Groq
1. [Groq μ½˜μ†”](https://console.groq.com/)둜 μ΄λ™ν•˜μ—¬ **Create API Key**λ₯Ό ν΄λ¦­ν•˜κ³  ν‚€λ₯Ό λ³΅μ‚¬ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  Groqλ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μ›ν•˜λŠ” λͺ¨λΈμ„ μ„ νƒν•©λ‹ˆλ‹€.
```txt
/models
```
---
### Hugging Face
[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers)λŠ” 17개 μ΄μƒμ˜ κ³΅κΈ‰μžκ°€ μ§€μ›ν•˜λŠ” μ˜€ν”ˆ λͺ¨λΈμ— λŒ€ν•œ μ•‘μ„ΈμŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
1. [Hugging Face settings](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained)둜 μ΄λ™ν•˜μ—¬ Inference Providers에 ν˜ΈμΆœν•  κΆŒν•œμ΄ μžˆλŠ” 토큰을 μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Hugging Face**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Hugging Face 토큰을 μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Kimi-K2-Instruct_ λ˜λŠ” _GLM-4.6_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Helicone
[Helicone](https://helicone.ai)λŠ” AI μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μœ„ν•œ λ‘œκΉ…, λͺ¨λ‹ˆν„°λ§ 및 뢄석 κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” LLM κ΄€μ°° κ°€λŠ₯μ„±(Observability) ν”Œλž«νΌμž…λ‹ˆλ‹€. Helicone AI GatewayλŠ” λͺ¨λΈμ„ 기반으둜 μ μ ˆν•œ κ³΅κΈ‰μžμ—κ²Œ μš”μ²­μ„ μžλ™μœΌλ‘œ λΌμš°νŒ…ν•©λ‹ˆλ‹€.
1. [Helicone](https://helicone.ai)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  λŒ€μ‹œλ³΄λ“œμ—μ„œ API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Helicone**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Helicone API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
캐싱 및 속도 μ œν•œκ³Ό 같은 더 λ§Žμ€ κ³΅κΈ‰μžμ™€ κ³ κΈ‰ κΈ°λŠ₯은 [Helicone λ¬Έμ„œ](https://docs.helicone.ai)λ₯Ό ν™•μΈν•˜μ‹­μ‹œμ˜€.
#### 선택적 ꡬ성
OpenCodeλ₯Ό 톡해 μžλ™μœΌλ‘œ κ΅¬μ„±λ˜μ§€ μ•ŠλŠ” Helicone의 κΈ°λŠ₯μ΄λ‚˜ λͺ¨λΈμ΄ μžˆλŠ” 경우 직접 ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.
[Helicone의 λͺ¨λΈ 디렉토리](https://helicone.ai/models)μ—μ„œ μΆ”κ°€ν•˜λ €λŠ” λͺ¨λΈμ˜ IDλ₯Ό ν™•μΈν•˜μ‹­μ‹œμ˜€.
```jsonc title="~/.config/opencode/opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"helicone": {
"npm": "@ai-sdk/openai-compatible",
"name": "Helicone",
"options": {
"baseURL": "https://ai-gateway.helicone.ai",
},
"models": {
"gpt-4o": {
// Model ID (from Helicone's model directory page)
"name": "GPT-4o", // Your own custom name for the model
},
"claude-sonnet-4-20250514": {
"name": "Claude Sonnet 4",
},
},
},
},
}
```
#### μ‚¬μš©μž μ •μ˜ 헀더
HeliconeλŠ” 캐싱, μ‚¬μš©μž 좔적 및 μ„Έμ…˜ 관리와 같은 κΈ°λŠ₯을 μœ„ν•œ μ‚¬μš©μž μ •μ˜ 헀더λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. `options.headers`λ₯Ό μ‚¬μš©ν•˜μ—¬ κ³΅κΈ‰μž ꡬ성에 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€:
```jsonc title="~/.config/opencode/opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"helicone": {
"npm": "@ai-sdk/openai-compatible",
"name": "Helicone",
"options": {
"baseURL": "https://ai-gateway.helicone.ai",
"headers": {
"Helicone-Cache-Enabled": "true",
"Helicone-User-Id": "opencode",
},
},
},
},
}
```
##### μ„Έμ…˜ 좔적
Helicone의 [Sessions](https://docs.helicone.ai/features/sessions) κΈ°λŠ₯을 μ‚¬μš©ν•˜λ©΄ κ΄€λ ¨ LLM μš”μ²­μ„ κ·Έλ£Ήν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜μ—¬ 각 OpenCode λŒ€ν™”λ₯Ό Helicone μ„Έμ…˜μœΌλ‘œ μžλ™ κΈ°λ‘ν•˜μ‹­μ‹œμ˜€.
```bash
npm install -g opencode-helicone-session
```
섀정에 μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
```json title="opencode.json"
{
"plugin": ["opencode-helicone-session"]
}
```
이 ν”ŒλŸ¬κ·ΈμΈμ€ `Helicone-Session-Id` 및 `Helicone-Session-Name` 헀더λ₯Ό μš”μ²­μ— μ£Όμž…ν•©λ‹ˆλ‹€. Helicone의 μ„Έμ…˜ νŽ˜μ΄μ§€μ—μ„œ 각 OpenCode λŒ€ν™”κ°€ λ³„λ„μ˜ μ„Έμ…˜μœΌλ‘œ λ‚˜μ—΄λ˜λŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
##### 곡톡 Helicone 헀더
| 헀더 | μ„€λͺ… |
| -------------------------- | ---------------------------------------------------------- |
| `Helicone-Cache-Enabled` | 응닡 캐싱 ν™œμ„±ν™” (`true`/`false`) |
| `Helicone-User-Id` | μ‚¬μš©μžλ³„ μ§€ν‘œ 좔적 |
| `Helicone-Property-[Name]` | μ‚¬μš©μž μ •μ˜ 속성 μΆ”κ°€(예: `Helicone-Property-Environment`) |
| `Helicone-Prompt-Id` | μš”μ²­μ„ ν”„λ‘¬ν”„νŠΈ 버전과 μ—°κ΄€ |
μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λ“  ν—€λ”λŠ” [Helicone Header Directory](https://docs.helicone.ai/helicone-headers/header-directory)λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.
---
### llama.cpp
[llama.cpp](https://github.com/ggml-org/llama.cpp)의 llama-server μœ ν‹Έλ¦¬ν‹°λ₯Ό 톡해 둜컬 λͺ¨λΈμ„ μ‚¬μš©ν•˜λ„λ‘ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.
```json title="opencode.json" "llama.cpp" {5, 6, 8, 10-15}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"llama.cpp": {
"npm": "@ai-sdk/openai-compatible",
"name": "llama-server (local)",
"options": {
"baseURL": "http://127.0.0.1:8080/v1"
},
"models": {
"qwen3-coder:a3b": {
"name": "Qwen3-Coder: a3b-30b (local)",
"limit": {
"context": 128000,
"output": 65536
}
}
}
}
}
}
```
이 μ˜ˆμ œμ—μ„œ:
- `llama.cpp`λŠ” μ‚¬μš©μž μ •μ˜ κ³΅κΈ‰μž IDμž…λ‹ˆλ‹€. μ›ν•˜λŠ” λ¬Έμžμ—΄λ‘œ μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
- `npm`은 이 κ³΅κΈ‰μžμ— μ‚¬μš©ν•  νŒ¨ν‚€μ§€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” OpenAI ν˜Έν™˜ APIλ₯Ό μœ„ν•΄ `@ai-sdk/openai-compatible`을 μ‚¬μš©ν•©λ‹ˆλ‹€.
- `name`은 UI에 ν‘œμ‹œλ  κ³΅κΈ‰μž μ΄λ¦„μž…λ‹ˆλ‹€.
- `options.baseURL`은 둜컬 μ„œλ²„μ˜ μ—”λ“œν¬μΈνŠΈμž…λ‹ˆλ‹€.
- `models`λŠ” λͺ¨λΈ ID와 ν•΄λ‹Ή ꡬ성을 λ§€ν•‘ν•©λ‹ˆλ‹€. λͺ¨λΈ 이름은 λͺ¨λΈ 선택 λͺ©λ‘μ— ν‘œμ‹œλ©λ‹ˆλ‹€.
---
### IO.NET
IO.NET은 λ‹€μ–‘ν•œ μ‚¬μš© 사둀에 μ΅œμ ν™”λœ 17개의 λͺ¨λΈμ„ μ œκ³΅ν•©λ‹ˆλ‹€:
1. [IO.NET μ½˜μ†”](https://ai.io.net/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **IO.NET**을 κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. IO.NET API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. λͺ¨λΈμ„ μ„ νƒν•˜λ €λ©΄ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### LM Studio
LM Studioλ₯Ό 톡해 둜컬 λͺ¨λΈμ„ μ‚¬μš©ν•˜λ„λ‘ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.
```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"lmstudio": {
"npm": "@ai-sdk/openai-compatible",
"name": "LM Studio (local)",
"options": {
"baseURL": "http://127.0.0.1:1234/v1"
},
"models": {
"google/gemma-3n-e4b": {
"name": "Gemma 3n-e4b (local)"
}
}
}
}
}
```
이 μ˜ˆμ œμ—μ„œ:
- `lmstudio`λŠ” μ‚¬μš©μž μ •μ˜ κ³΅κΈ‰μž IDμž…λ‹ˆλ‹€. μ›ν•˜λŠ” λ¬Έμžμ—΄λ‘œ μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
- `npm`은 이 κ³΅κΈ‰μžμ— μ‚¬μš©ν•  νŒ¨ν‚€μ§€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” OpenAI ν˜Έν™˜ APIλ₯Ό μœ„ν•΄ `@ai-sdk/openai-compatible`을 μ‚¬μš©ν•©λ‹ˆλ‹€.
- `name`은 UI에 ν‘œμ‹œλ  κ³΅κΈ‰μž μ΄λ¦„μž…λ‹ˆλ‹€.
- `options.baseURL`은 둜컬 μ„œλ²„μ˜ μ—”λ“œν¬μΈνŠΈμž…λ‹ˆλ‹€.
- `models`λŠ” λͺ¨λΈ ID와 ν•΄λ‹Ή ꡬ성을 λ§€ν•‘ν•©λ‹ˆλ‹€. λͺ¨λΈ 이름은 λͺ¨λΈ 선택 λͺ©λ‘μ— ν‘œμ‹œλ©λ‹ˆλ‹€.
---
### Moonshot AI
Moonshot AIμ—μ„œ Kimi K2λ₯Ό μ‚¬μš©ν•˜λ €λ©΄:
1. [Moonshot AI μ½˜μ†”](https://platform.moonshot.ai/console)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  **Create API key**λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Moonshot AI**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Moonshot API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ *Kimi K2*λ₯Ό μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### MiniMax
1. [MiniMax API μ½˜μ†”](https://platform.minimax.io/login)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **MiniMax**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. MiniMax API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _M2.1_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Nebius Token Factory
1. [Nebius Token Factory μ½˜μ†”](https://tokenfactory.nebius.com/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  **Add Key**λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Nebius Token Factory**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Nebius Token Factory API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Kimi K2 Instruct_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Ollama
Ollamaλ₯Ό 톡해 둜컬 λͺ¨λΈμ„ μ‚¬μš©ν•˜λ„λ‘ ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.
:::tip
OllamaλŠ” OpenCode에 λŒ€ν•΄ μžλ™μœΌλ‘œ ꡬ성될 수 μžˆμŠ΅λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ [Ollama 톡합 λ¬Έμ„œ](https://docs.ollama.com/integrations/opencode)λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.
:::
```json title="opencode.json" "ollama" {5, 6, 8, 10-14}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"llama2": {
"name": "Llama 2"
}
}
}
}
}
```
이 μ˜ˆμ œμ—μ„œ:
- `ollama`λŠ” μ‚¬μš©μž μ •μ˜ κ³΅κΈ‰μž IDμž…λ‹ˆλ‹€. μ›ν•˜λŠ” λ¬Έμžμ—΄λ‘œ μ§€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
- `npm`은 이 κ³΅κΈ‰μžμ— μ‚¬μš©ν•  νŒ¨ν‚€μ§€λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” OpenAI ν˜Έν™˜ APIλ₯Ό μœ„ν•΄ `@ai-sdk/openai-compatible`을 μ‚¬μš©ν•©λ‹ˆλ‹€.
- `name`은 UI에 ν‘œμ‹œλ  κ³΅κΈ‰μž μ΄λ¦„μž…λ‹ˆλ‹€.
- `options.baseURL`은 둜컬 μ„œλ²„μ˜ μ—”λ“œν¬μΈνŠΈμž…λ‹ˆλ‹€.
- `models`λŠ” λͺ¨λΈ ID와 ν•΄λ‹Ή ꡬ성을 λ§€ν•‘ν•©λ‹ˆλ‹€. λͺ¨λΈ 이름은 λͺ¨λΈ 선택 λͺ©λ‘μ— ν‘œμ‹œλ©λ‹ˆλ‹€.
:::tip
도ꡬ 호좜이 μž‘λ™ν•˜μ§€ μ•ŠλŠ” 경우, Ollamaμ—μ„œ `num_ctx`λ₯Ό λŠ˜λ €λ³΄μ‹­μ‹œμ˜€. 16k - 32k μ •λ„μ—μ„œ μ‹œμž‘ν•˜μ‹­μ‹œμ˜€.
:::
---
### Ollama Cloud
OpenCode둜 Ollama Cloudλ₯Ό μ‚¬μš©ν•˜λ €λ©΄:
1. [https://ollama.com/](https://ollama.com/)으둜 μ΄λ™ν•˜μ—¬ λ‘œκ·ΈμΈν•˜κ±°λ‚˜ 계정을 λ§Œλ“­λ‹ˆλ‹€.
2. **Settings** > **Keys**둜 μ΄λ™ν•˜μ—¬ **Add API Key**λ₯Ό 클릭해 μƒˆ API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
3. OpenCodeμ—μ„œ μ‚¬μš©ν•  API ν‚€λ₯Ό λ³΅μ‚¬ν•©λ‹ˆλ‹€.
4. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Ollama Cloud**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
5. Ollama Cloud API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
6. **μ€‘μš”**: OpenCodeμ—μ„œ ν΄λΌμš°λ“œ λͺ¨λΈμ„ μ‚¬μš©ν•˜κΈ° 전에, λ‘œμ»¬μ—μ„œ λͺ¨λΈ 정보λ₯Ό 가져와야 ν•©λ‹ˆλ‹€:
```bash
ollama pull gpt-oss:20b-cloud
```
7. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ Ollama Cloud λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### OpenAI
[ChatGPT Plus λ˜λŠ” Pro](https://chatgpt.com/pricing)에 κ°€μž…ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
1. κ°€μž… ν›„ `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  OpenAIλ₯Ό μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
2. **ChatGPT Plus/Pro** μ˜΅μ…˜μ„ μ„ νƒν•˜λ©΄ λΈŒλΌμš°μ €κ°€ 열리고 인증을 μš”μ²­ν•©λ‹ˆλ‹€.
```txt
β”Œ Select auth method
β”‚
β”‚ ChatGPT Plus/Pro
β”‚ Manually enter API Key
β””
```
3. 이제 `/models` λͺ…령을 μ‚¬μš©ν•  λ•Œ λͺ¨λ“  OpenAI λͺ¨λΈμ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
```txt
/models
```
##### API ν‚€ μ‚¬μš©
이미 API ν‚€κ°€ μžˆλ‹€λ©΄ **Manually enter API Key**λ₯Ό μ„ νƒν•˜κ³  터미널에 뢙여넣을 수 μžˆμŠ΅λ‹ˆλ‹€.
---
### OpenCode Zen
OpenCode Zen은 OpenCode νŒ€μ—μ„œ μ œκ³΅ν•˜λŠ” ν…ŒμŠ€νŠΈ 및 κ²€μ¦λœ λͺ¨λΈ λͺ©λ‘μž…λ‹ˆλ‹€. [더 μ•Œμ•„λ³΄κΈ°](/docs/zen).
1. **<a href={console}>OpenCode Zen</a>**에 λ‘œκ·ΈμΈν•˜κ³  **Create API Key**λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **OpenCode Zen**을 κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. OpenCode API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Qwen 3 Coder 480B_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### OpenRouter
1. [OpenRouter λŒ€μ‹œλ³΄λ“œ](https://openrouter.ai/settings/keys)둜 μ΄λ™ν•˜μ—¬ **Create API Key**λ₯Ό ν΄λ¦­ν•˜κ³  ν‚€λ₯Ό λ³΅μ‚¬ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  OpenRouterλ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. λ§Žμ€ OpenRouter λͺ¨λΈμ€ 기본적으둜 미리 λ‘œλ“œλ˜μ–΄ μžˆμœΌλ―€λ‘œ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μ›ν•˜λŠ” 것을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
OpenCode ꡬ성을 톡해 λͺ¨λΈμ„ μΆ”κ°€ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
```json title="opencode.json" {6}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openrouter": {
"models": {
"somecoolnewmodel": {}
}
}
}
}
```
5. λ˜ν•œ OpenCode ꡬ성을 톡해 μ‚¬μš©μž μ •μ˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ κ³΅κΈ‰μž μˆœμ„œλ₯Ό μ§€μ •ν•˜λŠ” μ˜ˆμž…λ‹ˆλ‹€.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openrouter": {
"models": {
"moonshotai/kimi-k2": {
"options": {
"provider": {
"order": ["baseten"],
"allow_fallbacks": false
}
}
}
}
}
}
}
```
---
### SAP AI Core
SAP AI CoreλŠ” OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40개 μ΄μƒμ˜ λͺ¨λΈμ— λŒ€ν•œ μ•‘μ„ΈμŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
1. [SAP BTP Cockpit](https://account.hana.ondemand.com/)으둜 μ΄λ™ν•˜μ—¬ SAP AI Core μ„œλΉ„μŠ€ μΈμŠ€ν„΄μŠ€λ‘œ μ΄λ™ν•˜κ³  μ„œλΉ„μŠ€ ν‚€λ₯Ό λ§Œλ“­λ‹ˆλ‹€.
:::tip
μ„œλΉ„μŠ€ ν‚€λŠ” `clientid`, `clientsecret`, `url` 및 `serviceurls.AI_API_URL`을 ν¬ν•¨ν•˜λŠ” JSON κ°μ²΄μž…λ‹ˆλ‹€. **Services** > **Instances and Subscriptions** μ•„λž˜μ—μ„œ AI Core μΈμŠ€ν„΄μŠ€λ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.
:::
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **SAP AI Core**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. μ„œλΉ„μŠ€ ν‚€ JSON을 μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ Service key
β”‚
β”‚
β”” enter
```
λ˜λŠ” `AICORE_SERVICE_KEY` ν™˜κ²½ λ³€μˆ˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€:
```bash
AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode
```
λ˜λŠ” bash ν”„λ‘œν•„μ— μΆ”κ°€ν•©λ‹ˆλ‹€:
```bash title="~/.bash_profile"
export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}'
```
4. μ„ νƒμ μœΌλ‘œ 배포 ID 및 λ¦¬μ†ŒμŠ€ 그룹을 μ„€μ •ν•©λ‹ˆλ‹€:
```bash
AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode
```
:::note
이 섀정은 선택 사항이며 SAP AI Core 섀정에 따라 ꡬ성해야 ν•©λ‹ˆλ‹€.
:::
5. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ 40개 μ΄μƒμ˜ μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λΈ μ€‘μ—μ„œ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### STACKIT
STACKIT AI Model Serving은 Llama, Mistral, Qwenκ³Ό 같은 LLM에 μ΄ˆμ μ„ λ§žμΆ”κ³  유럽 μΈν”„λΌμ—μ„œ 데이터 μ£ΌκΆŒμ„ μ΅œλŒ€ν•œ 보μž₯ν•˜λŠ” μ™„μ „ κ΄€λ¦¬ν˜• AI λͺ¨λΈ ν˜ΈμŠ€νŒ… ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
1. [STACKIT Portal](https://portal.stackit.cloud)둜 μ΄λ™ν•˜μ—¬ **AI Model Serving**으둜 μ΄λ™ν•œ λ‹€μŒ ν”„λ‘œμ νŠΈμ˜ 인증 토큰을 λ§Œλ“­λ‹ˆλ‹€.
:::tip
인증 토큰을 λ§Œλ“€κΈ° 전에 STACKIT 고객 계정, μ‚¬μš©μž 계정 및 ν”„λ‘œμ νŠΈκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
:::
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **STACKIT**을 κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. STACKIT AI Model Serving 인증 토큰을 μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ _Qwen3-VL 235B_ λ˜λŠ” *Llama 3.3 70B*와 같은 μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### OVHcloud AI Endpoints
1. [OVHcloud νŒ¨λ„](https://ovh.com/manager)둜 μ΄λ™ν•©λ‹ˆλ‹€. `Public Cloud` μ„Ήμ…˜μœΌλ‘œ μ΄λ™ν•˜μ—¬ `AI & Machine Learning` > `AI Endpoints`둜 κ°„ λ’€ `API Keys` νƒ­μ—μ„œ **Create a new API key**λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **OVHcloud AI Endpoints**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. OVHcloud AI Endpoints API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _gpt-oss-120b_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Scaleway
OpenCode둜 [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/)λ₯Ό μ‚¬μš©ν•˜λ €λ©΄:
1. [Scaleway Console IAM μ„€μ •](https://console.scaleway.com/iam/api-keys)μ—μ„œ μƒˆ API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Scaleway**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Scaleway API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _devstral-2-123b-instruct-2512_ λ˜λŠ” _gpt-oss-120b_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Together AI
1. [Together AI μ½˜μ†”](https://api.together.ai)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  **Add Key**λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Together AI**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Together AI API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Kimi K2 Instruct_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Venice AI
1. [Venice AI μ½˜μ†”](https://venice.ai)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Venice AI**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Venice AI API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Llama 3.3 70B_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Vercel AI Gateway
Vercel AI GatewayλŠ” OpenAI, Anthropic, Google, xAI λ“±μ˜ λͺ¨λΈμ— μ•‘μ„ΈμŠ€ν•  수 있으며, ν†΅ν•©λœ μ—”λ“œν¬μΈνŠΈλ₯Ό 톡해 더 λ§Žμ€ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. λͺ¨λΈμ€ λ§ˆν¬μ—… 없이 μ •κ°€λ‘œ μ œκ³΅λ©λ‹ˆλ‹€.
1. [Vercel λŒ€μ‹œλ³΄λ“œ](https://vercel.com/)둜 μ΄λ™ν•˜μ—¬ **AI Gateway** νƒ­μœΌλ‘œ κ°„ λ’€, **API keys**λ₯Ό ν΄λ¦­ν•˜μ—¬ μƒˆ API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Vercel AI Gateway**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. Vercel AI Gateway API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈμ„ μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
OpenCode ꡬ성을 톡해 λͺ¨λΈμ„ μ‚¬μš©μž μ •μ˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ κ³΅κΈ‰μž λΌμš°νŒ… μˆœμ„œλ₯Ό μ§€μ •ν•˜λŠ” μ˜ˆμž…λ‹ˆλ‹€.
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"vercel": {
"models": {
"anthropic/claude-sonnet-4": {
"options": {
"order": ["anthropic", "vertex"]
}
}
}
}
}
}
```
λͺ‡ κ°€μ§€ μœ μš©ν•œ λΌμš°νŒ… μ˜΅μ…˜:
| μ˜΅μ…˜ | μ„€λͺ… |
| ------------------- | --------------------------------- |
| `order` | μ‹œλ„ν•  κ³΅κΈ‰μž μˆœμ„œ |
| `only` | νŠΉμ • κ³΅κΈ‰μžλ‘œ μ œν•œ |
| `zeroDataRetention` | 데이터 보유 정책이 μ—†λŠ” 곳만 μ‚¬μš© |
---
### xAI
1. [xAI μ½˜μ†”](https://console.x.ai/)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  API ν‚€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **xAI**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. xAI API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _Grok Beta_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### Z.AI
1. [Z.AI API μ½˜μ†”](https://z.ai/manage-apikey/apikey-list)둜 μ΄λ™ν•˜μ—¬ 계정을 λ§Œλ“€κ³  **Create a new API key**λ₯Ό ν΄λ¦­ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Z.AI**λ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
**GLM Coding Plan**에 κ°€μž…ν–ˆλ‹€λ©΄ **Z.AI Coding Plan**을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
3. Z.AI API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ λͺ¨λΈ(예: _GLM-4.7_)을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
---
### ZenMux
1. [ZenMux λŒ€μ‹œλ³΄λ“œ](https://zenmux.ai/settings/keys)둜 μ΄λ™ν•˜μ—¬ **Create API Key**λ₯Ό ν΄λ¦­ν•˜κ³  ν‚€λ₯Ό λ³΅μ‚¬ν•©λ‹ˆλ‹€.
2. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  ZenMuxλ₯Ό κ²€μƒ‰ν•˜μ‹­μ‹œμ˜€.
```txt
/connect
```
3. API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```txt
β”Œ API key
β”‚
β”‚
β”” enter
```
4. λ§Žμ€ ZenMux λͺ¨λΈμ€ 기본적으둜 미리 λ‘œλ“œλ˜μ–΄ μžˆμœΌλ―€λ‘œ `/models` λͺ…령을 μ‹€ν–‰ν•˜μ—¬ μ›ν•˜λŠ” 것을 μ„ νƒν•˜μ‹­μ‹œμ˜€.
```txt
/models
```
OpenCode ꡬ성을 톡해 λͺ¨λΈμ„ μΆ”κ°€ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
```json title="opencode.json" {6}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"zenmux": {
"models": {
"somecoolnewmodel": {}
}
}
}
}
```
---
## μ‚¬μš©μž μ •μ˜ κ³΅κΈ‰μž
`/connect` λͺ…령에 λ‚˜μ—΄λ˜μ§€ μ•Šμ€ **OpenAI ν˜Έν™˜** κ³΅κΈ‰μžλ₯Ό μΆ”κ°€ν•˜λ €λ©΄:
:::tip
OpenCodeμ—μ„œ λͺ¨λ“  OpenAI ν˜Έν™˜ κ³΅κΈ‰μžλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μ΅œμ‹  AI κ³΅κΈ‰μžλŠ” OpenAI ν˜Έν™˜ APIλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
:::
1. `/connect` λͺ…령을 μ‹€ν–‰ν•˜κ³  **Other**둜 μŠ€ν¬λ‘€ν•˜μ‹­μ‹œμ˜€.
```bash
$ /connect
β”Œ Add credential
β”‚
β—† Select provider
β”‚ ...
β”‚ ● Other
β””
```
2. κ³΅κΈ‰μžλ₯Ό μœ„ν•œ κ³ μœ ν•œ IDλ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```bash
$ /connect
β”Œ Add credential
β”‚
β—‡ Enter provider id
β”‚ myprovider
β””
```
:::note
κΈ°μ–΅ν•˜κΈ° μ‰¬μš΄ IDλ₯Ό μ„ νƒν•˜μ‹­μ‹œμ˜€. ꡬ성 νŒŒμΌμ—μ„œ 이 IDλ₯Ό μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€.
:::
3. κ³΅κΈ‰μžμ˜ API ν‚€λ₯Ό μž…λ ₯ν•˜μ‹­μ‹œμ˜€.
```bash
$ /connect
β”Œ Add credential
β”‚
β–² This only stores a credential for myprovider - you will need to configure it in opencode.json, check the docs for examples.
β”‚
β—‡ Enter your API key
β”‚ sk-...
β””
```
4. ν”„λ‘œμ νŠΈ 디렉토리에 `opencode.json` νŒŒμΌμ„ λ§Œλ“€κ±°λ‚˜ μ—…λ°μ΄νŠΈν•˜μ‹­μ‹œμ˜€.
```json title="opencode.json" ""myprovider"" {5-15}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"myprovider": {
"npm": "@ai-sdk/openai-compatible",
"name": "My AI ProviderDisplay Name",
"options": {
"baseURL": "https://api.myprovider.com/v1"
},
"models": {
"my-model-name": {
"name": "My Model Display Name"
}
}
}
}
}
```
ꡬ성 μ˜΅μ…˜μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:
- **npm**: μ‚¬μš©ν•  AI SDK νŒ¨ν‚€μ§€. OpenAI ν˜Έν™˜ κ³΅κΈ‰μžμ˜ 경우 `@ai-sdk/openai-compatible`
- **name**: UI에 ν‘œμ‹œλ  이름
- **models**: μ‚¬μš© κ°€λŠ₯ν•œ λͺ¨λΈ
- **options.baseURL**: API μ—”λ“œν¬μΈνŠΈ URL
- **options.apiKey**: 인증을 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 경우 μ„ νƒμ μœΌλ‘œ API ν‚€ μ„€μ •
- **options.headers**: μ„ νƒμ μœΌλ‘œ μ‚¬μš©μž μ •μ˜ 헀더 μ„€μ •
κ³ κΈ‰ μ˜΅μ…˜μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ μ•„λž˜ 예제λ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.
5. `/models` λͺ…령을 μ‹€ν–‰ν•˜λ©΄ μ‚¬μš©μž μ •μ˜ κ³΅κΈ‰μžμ™€ λͺ¨λΈμ΄ 선택 λͺ©λ‘μ— λ‚˜νƒ€λ‚©λ‹ˆλ‹€.
---
##### 예제
λ‹€μŒμ€ `apiKey`, `headers` 및 λͺ¨λΈ `limit` μ˜΅μ…˜μ„ μ„€μ •ν•˜λŠ” μ˜ˆμž…λ‹ˆλ‹€.
```json title="opencode.json" {9,11,17-20}
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"myprovider": {
"npm": "@ai-sdk/openai-compatible",
"name": "My AI ProviderDisplay Name",
"options": {
"baseURL": "https://api.myprovider.com/v1",
"apiKey": "{env:ANTHROPIC_API_KEY}",
"headers": {
"Authorization": "Bearer custom-token"
}
},
"models": {
"my-model-name": {
"name": "My Model Display Name",
"limit": {
"context": 200000,
"output": 65536
}
}
}
}
}
}
```
ꡬ성 μ„ΈλΆ€ 사항:
- **apiKey**: `env` λ³€μˆ˜ ꡬ문을 μ‚¬μš©ν•˜μ—¬ μ„€μ •, [더 μ•Œμ•„λ³΄κΈ°](/docs/config#env-vars).
- **headers**: 각 μš”μ²­κ³Ό ν•¨κ»˜ μ „μ†‘λ˜λŠ” μ‚¬μš©μž μ •μ˜ 헀더.
- **limit.context**: λͺ¨λΈμ΄ ν—ˆμš©ν•˜λŠ” μ΅œλŒ€ μž…λ ₯ 토큰.
- **limit.output**: λͺ¨λΈμ΄ 생성할 수 μžˆλŠ” μ΅œλŒ€ 좜λ ₯ 토큰.
`limit` ν•„λ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ OpenCodeκ°€ 남은 μ»¨ν…μŠ€νŠΈ 양을 νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν‘œμ€€ κ³΅κΈ‰μžλŠ” models.devμ—μ„œ μžλ™μœΌλ‘œ 이λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.
---
## 문제 ν•΄κ²°
κ³΅κΈ‰μž ꡬ성에 λ¬Έμ œκ°€ μžˆλŠ” 경우 λ‹€μŒμ„ ν™•μΈν•˜μ‹­μ‹œμ˜€.
1. **인증 μ„€μ • 확인**: `opencode auth list`λ₯Ό μ‹€ν–‰ν•˜μ—¬ κ³΅κΈ‰μžμ˜ 자격 증λͺ…이 ꡬ성에 μΆ”κ°€λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.
Amazon Bedrockκ³Ό 같이 인증을 μœ„ν•΄ ν™˜κ²½ λ³€μˆ˜μ— μ˜μ‘΄ν•˜λŠ” κ³΅κΈ‰μžμ—λŠ” μ μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
2. μ‚¬μš©μž μ •μ˜ κ³΅κΈ‰μžμ˜ 경우, OpenCode ꡬ성을 ν™•μΈν•˜κ³  λ‹€μŒμ„ μˆ˜ν–‰ν•˜μ‹­μ‹œμ˜€:
- `/connect` λͺ…령에 μ‚¬μš©λœ κ³΅κΈ‰μž IDκ°€ OpenCode κ΅¬μ„±μ˜ ID와 μΌμΉ˜ν•˜λŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.
- κ³΅κΈ‰μžμ— μ˜¬λ°”λ₯Έ npm νŒ¨ν‚€μ§€κ°€ μ‚¬μš©λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€. 예λ₯Ό λ“€μ–΄ Cerebrasμ—λŠ” `@ai-sdk/cerebras`λ₯Ό μ‚¬μš©ν•˜κ³ , λ‹€λ₯Έ λͺ¨λ“  OpenAI ν˜Έν™˜ κ³΅κΈ‰μžμ—λŠ” `@ai-sdk/openai-compatible`을 μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.
- `options.baseURL` ν•„λ“œμ— μ˜¬λ°”λ₯Έ API μ—”λ“œν¬μΈνŠΈκ°€ μ‚¬μš©λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.