OpenCode와 APIMaster.ai
APIMaster를 OpenAI 호환 제공자로 OpenCode Desktop에 추가하고 opencode.jsonc를 통해 선택적 Reasoning 계층을 구성하세요.
OpenCode Desktop은 OpenCode의 그래픽 클라이언트(현재 베타)입니다: 로컬 에이전트 세션, 파일 편집, 셸 실행. APIMaster.ai는 OpenAI 호환입니다 — 설정 → 제공자 → 사용자 정의 제공자에서 추가하세요.
먼저 API 키 받기. 아래에서
your_apimaster_key를 플레이스홀더로 사용하세요; 스크린샷은 실제 키를 가립니다.
사전 요구 사항
- opencode.ai/download에서 OpenCode Desktop 설치.
- Windows:
opencode-desktop-win-x64.exe - macOS:
brew install --cask opencode-desktop또는.dmg - Linux:
.deb/.rpm/ AppImage
- Windows:
- 콘솔에서 APIMaster API 키.
1단계 — 제공자 열기
- OpenCode Desktop을 실행하고 워크스페이스를 엽니다.
- 기어 아이콘(왼쪽 아래)을 클릭합니다.
- 사이드바에서 제공자를 선택합니다.
- 사용자 정의 제공자(기본 URL로 OpenAI 호환 제공자 추가)로 스크롤합니다.
- + 연결을 클릭합니다.

2단계 — 사용자 정의 제공자 양식
| 필드 | 값 |
|---|---|
| 제공자 ID | apimaster |
| 표시 이름 | APIMaster.ai |
| 기본 URL | https://apimaster.ai/v1 |
| API 키 | 사용자의 APIMaster 키 |

헤더 전용으로 인증하지 않는 한 헤더는 비워 둡니다.
3단계 — 모델 추가 및 제출
다음 화면에서 모델을 매핑합니다(왼쪽 = OpenCode의 레이블, 오른쪽 = APIMaster로 보내지는 모델 id — 일반적으로 동일함):
| 왼쪽 | 오른쪽 |
|---|---|
gpt-5.4 |
gpt-5.4 |
claude-sonnet-4-6 |
claude-sonnet-4-6 |
- + 모델 추가를 클릭하여 더 많은 행을 추가합니다.
- 제출을 클릭합니다.

마켓플레이스에서 id를 선택하세요. 에이전트 채팅에는 이미지 전용 모델(예: gpt-image-2)을 피하세요.
4단계 — 모델 선택
- 세션을 시작하거나 엽니다.
- 입력 아래의 모델 드롭다운을 엽니다.
- APIMaster.ai 아래에서 모델(예:
claude-sonnet-4-6)을 선택합니다.

5단계 — 테스트
hello 또는 작은 코딩 작업을 보냅니다. 정상적인 Assistant 응답(파일 편집/셸)이 오면 APIMaster가 연결된 것입니다.

고급: opencode.jsonc 및 Reasoning
위의 UI 흐름은 빠른 시작에 충분합니다. 동일한 모델 id에 대해 Reasoning / thinking effort 계층(low, high, max, …)을 구성하려면 **opencode.jsonc**를 편집하세요.
설정 파일 위치
| OS | 경로 |
|---|---|
| macOS / Linux | ~/.config/opencode/opencode.jsonc |
| Windows | C:\Users\<사용자 이름>\.config\opencode\opencode.jsonc |
파일이 없으면 생성하세요. 저장 후 OpenCode Desktop을 다시 시작하거나 새 세션을 시작하세요.
API 키 (jsonc에 넣지 마세요)
API 키를 opencode.jsonc에 저장하지 마세요.
대신 다음을 사용하세요:
- 터미널에서
/connect, 또는 - 설정 → 제공자 → 제공자 연결(위 1-2단계와 동일).
비밀은 OpenCode의 인증 저장소에 보관하고, jsonc는 제공자, 모델 및 Reasoning 변형만 정의합니다.
jsonc의 APIMaster 제공자
제공자 id: apimaster. npm 패키지: @ai-sdk/openai-compatible.
baseURL은 반드시 다음과 같아야 합니다:
https://apimaster.ai/v1
https://apimaster.ai/가 아닙니다 — OpenCode가 /chat/completions를 추가합니다. /v1이 없으면 https://apimaster.ai/chat/completions → 404 Not Found가 발생합니다.
Reasoning 변형을 포함한 전체 예제 — 다운로드하여 OpenCode의 설정을 덮어쓰기:
- opencode.jsonc 다운로드
- 다음 위치에 덮어쓰기(또는 저장):
- macOS / Linux:
~/.config/opencode/opencode.jsonc - Windows:
C:\Users\<사용자 이름>\.config\opencode\opencode.jsonc
- macOS / Linux:
/connect또는 UI를 통해 API 키 설정 (절대 jsonc에 넣지 않음).- OpenCode Desktop을 다시 시작하거나 새 세션을 시작하세요.
기존 파일을 덮어쓰기 전에 백업하거나,
provider.apimaster블록만 병합하세요.
최소 구조:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"apimaster": {
"name": "APIMaster.ai",
"npm": "@ai-sdk/openai-compatible",
"options": { "baseURL": "https://apimaster.ai/v1" },
"models": {
"gpt-5.4": {
"name": "gpt-5.4",
"variants": {
"low": { "reasoningEffort": "low" },
"high": { "reasoningEffort": "high" }
}
}
}
}
}
}
Reasoning 원칙
variants= UI에서 하나의 모델 id에 대한 여러 Reasoning 계층.- OpenAI 호환 API의 경우 OpenCode는
reasoningEffort를 요청 본문의 **reasoning_effort**로 매핑합니다. - 변형 이름은 실제 매개변수와 일치해야 합니다(
high→"reasoningEffort": "high"). - 각 모델은 서로 다른 계층을 지원합니다 — 공식 문서에 따라 구성하고, 숨겨진 재매핑은 없습니다.
모델별 Reasoning 계층
| 모델 | Reasoning 변형 | 비고 |
|---|---|---|
gpt-5.4 |
low, medium, high, xhigh |
GPT reasoning |
gpt-5.5 |
low, medium, high, xhigh |
GPT reasoning |
deepseek-v4-flash |
high, max |
DeepSeek thinking (권장) |
deepseek-v4-pro |
high, max |
DeepSeek thinking (권장) |
claude-sonnet-4-6 |
low, medium, high, max |
Claude Sonnet effort |
claude-opus-4-7 |
low, medium, high, xhigh, max |
Claude Opus effort |
claude-opus-4-8 |
low, medium, high, xhigh, max |
Claude Opus effort |
claude-haiku-4-5 |
없음 | 확인되지 않은 effort 계층 없음 |
minimax-m3 |
없음 | 확인되지 않은 effort 계층 없음 |
전체 파일은 opencode.jsonc를 참조하세요.
OpenCode에서 Reasoning 전환
opencode.jsonc를 저장한 후 다시 시작하거나 새 세션을 시작하세요.- 모델/Reasoning 드롭다운(예:
gpt-5.4 / high)을 사용하세요. - 빌드에서 지원되는 경우: **
Ctrl + Shift + D**로 Reasoning 계층을 순환합니다.
문제 해결
UI 설정
| 문제 | 해결 |
|---|---|
| 401 | 키 확인; 노출된 경우 교체 |
| 모델을 찾을 수 없음 | 기본 URL은 https://apimaster.ai/v1이어야 함; 모델 id는 마켓플레이스와 일치해야 함 |
| APIMaster 모델 없음 | 설정에서 제공자 편집 → 매핑 추가 → 제출 |
| 느림/시간 초과 | 다른 모델 시도; API 키 테스터 사용 |
Reasoning / jsonc
DeepSeek에는 왜 high와 max만 있나요?
DeepSeek의 공식 OpenAI 호환 thinking effort는 **high**와 **max**입니다. 예측 불가능하게 재매핑되는 low/medium/xhigh는 피하세요.
Claude Sonnet에는 왜 max가 있고 xhigh가 없나요?
Sonnet의 최상위 계층은 **max**입니다; **xhigh**는 Opus(claude-opus-4-7 / claude-opus-4-8)용입니다.
Haiku나 MiniMax M3에는 왜 변형이 없나요?
문서화된 reasoningEffort 값이 없으므로 변형을 건너뛰세요 — 모델은 여전히 작동합니다. UI에 Reasoning 하위 계층이 표시되지 않을 뿐입니다.
여전히 400 오류가 발생하나요?
baseURL=https://apimaster.ai/v1(사이트 루트 아님).- 모델 id 철자가 마켓플레이스와 일치하는지 확인.
/connect또는 UI를 통해 키 구성.- 일시적으로
variants를 제거 — 일반 요청이 작동하면 선택한reasoning_effort가 해당 모델에서 지원되지 않을 수 있습니다.
보안
- 채팅이나 편집되지 않은 스크린샷에 키를 공유하지 마세요.
- 스크린샷이나 로그에 나타난 키는 교체하세요.
- OpenCode는 파일을 읽고 쓰고 셸 명령을 실행할 수 있습니다 — 신뢰할 수 있는 워크스페이스에서만 사용하세요.
체크리스트
- OpenCode Desktop 설치됨
- 사용자 정의 제공자 연결됨 또는
opencode.jsonc에apimaster있음 - 기본 URL /
baseURL=https://apimaster.ai/v1(https://apimaster.ai/아님) -
/connect또는 UI를 통해 API 키 설정 (jsonc에 없음) - 하나 이상의 채팅 모델 매핑됨
- (선택 사항) Reasoning 변형이 공식 계층과 일치
- 테스트 메시지 성공
요약
- 키:
baseURL(https://apimaster.ai/v1), 모델 id, API 키 (/connect또는 UI), 선택적 Reasoning 변형. - 변형 이름 = 실제
reasoning_effort값. - 모델별로 계층 구성; 지원되지 않는 경우 변형 건너뛰기(Haiku, MiniMax M3).