Zed에 커스텀 OpenAI 호환 프로바이더 추가하기.
Updated 2026-07-29
Zed는 settings.json에서 커스텀 프로바이더를 바로 읽습니다. api_url을 https://api.apisrouter.com/v1로 설정한 language_models.openai_compatible 블록을 선언하고 원하는 모델 id를 나열하면, 그 모두가 키 하나로 에이전트 패널 모델 피커에 나타납니다.
빠른 답: settings.json의 블록 하나.
Zed는 커스텀 OpenAI 호환 프로바이더를 네이티브로 지원합니다. settings.json의 language_models.openai_compatible 아래에 프로바이더 항목을 추가하고, api_url을 https://api.apisrouter.com/v1로 설정한 다음, 원하는 각 모델을 이름과 컨텍스트 크기와 함께 available_models 아래에 선언하세요. 모델은 즉시 에이전트 패널 모델 드롭다운에 나타납니다. API 키는 의도적으로 settings.json에 들어가지 않습니다. Zed는 프로바이더 설정 UI를 통해 입력하면 시스템 키체인에 저장하거나, 여러분의 프로바이더 키에서 파생된 환경 변수에서 읽어옵니다: apisrouter라는 이름의 프로바이더는 APISROUTER_API_KEY를 읽습니다. 환경 변수가 키체인 값보다 우선합니다.
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000
}
]
}
}
}
}Zed가 커스텀 프로바이더와 모델을 해석하는 방법.
Zed(GitHub의 zed-industries, 약 8.7만 스타)는 계획을 세우고, 파일을 수정하고, 툴을 실행하는 에이전트 패널을 갖춘 고성능 에디터입니다. openai_compatible 프로바이더 유형은 표준 /v1/chat/completions 프로토콜로 말하는데, 이는 정확히 멀티 벤더 게이트웨이가 제공하는 것이므로 에디터와 엔드포인트 사이에 어떤 플러그인이나 확장 프로그램도 끼지 않습니다. 여러분이 선택하는 프로바이더 키(위 예시의 "apisrouter")는 두 가지 역할을 합니다. 에이전트 패널 설정에서 프로바이더 이름이 되고, Zed가 키를 확인할 때 찾는 환경 변수 이름도 만들어 냅니다 — 대문자 스네이크 케이스에 _API_KEY 접미사가 붙습니다. 이 이름 규칙은 디버깅을 시작하기 전에 알아둘 만합니다: 프로바이더 이름을 바꾸면 기대되는 변수 이름도 함께 바뀝니다. available_models는 허용 목록입니다. Zed는 커스텀 엔드포인트를 스스로 나열할 수 없으므로, 여러분이 선언한 id만 선택 가능해지며, 각각은 버전 접미사까지 포함한 정확한 문자열이어야 합니다. api_url 뒤의 엔드포인트가 Claude, GPT, Gemini, Kimi id를 나란히 제공한다면, 프로바이더 블록 하나로 에이전트 패널 피커가 키 하나 뒤의 크로스 벤더 스위치보드가 됩니다. 범위에 관한 참고사항 하나: Zed의 edit predictions 기능은 자체 전용 모델을 사용하며 별도로 설정됩니다. 커스텀 프로바이더는 에이전트 패널과 인라인 어시스턴트를 지원할 뿐, edit predictions는 지원하지 않습니다.
전체 설정: 모델, 컨텍스트 크기, 기능.
각 available_models 항목은 이름 이상의 것을 받습니다. max_tokens는 모델의 컨텍스트 윈도우를 선언하고, max_output_tokens는 생성 길이를 제한합니다. Zed는 긴 에이전트 스레드를 관리할 때 이 수치를 사용하므로, 긴 컨텍스트 모델에 작은 max_tokens를 선언하면 모델의 여유 공간을 조용히 낭비하게 됩니다. capabilities 객체는 Zed에게 모델이 무엇을 지원하는지 알려줍니다: 에이전트 패널을 구동할 계획이 있는 모델에는 tools를 true로 설정하고, 실제로 이미지 입력을 받는 모델에만 images를 활성화하세요. 키의 경우, 데스크톱 에디터에서 믿을 만한 경로는 값을 시스템 키체인에 저장하는 프로바이더 설정 UI입니다. 환경 변수 경로도 작동하지만, 디버깅 섹션에서 다루는 한 가지 주의사항이 있습니다: Dock에서 실행한 GUI 애플리케이션은 셸 프로필을 상속받지 않습니다.
{
"language_models": {
"openai_compatible": {
"apisrouter": {
"api_url": "https://api.apisrouter.com/v1",
"available_models": [
{
"name": "claude-sonnet-4-6",
"display_name": "Claude Sonnet 4.6",
"max_tokens": 200000,
"max_output_tokens": 64000,
"capabilities": { "tools": true, "images": false }
},
{
"name": "claude-opus-4-7",
"display_name": "Claude Opus 4.7",
"max_tokens": 200000,
"capabilities": { "tools": true }
},
{ "name": "gpt-5.5", "display_name": "GPT-5.5", "max_tokens": 200000 },
{ "name": "kimi-k2.7-code", "display_name": "Kimi K2.7 Code", "max_tokens": 200000 }
]
}
}
}
}에이전트 패널을 위한 모델 선택.
선언한 모든 모델이 같은 피커 안에 있으므로, 실용적인 작업 흐름은 벤치마크가 아니라 실제 작업에서의 비교입니다: 같은 종류의 작업을 서로 다른 날에 두 후보로 돌려보고, 키별 사용량 로그가 각각의 비용을 알려주도록 하세요. Zed에서 모델을 바꾸는 것은 드롭다운 선택 한 번이므로, 실험 비용은 설정에 드는 수고가 전혀 없습니다.
- 에이전트 패널은 실질적인 엔지니어링을 담당합니다: 파일 읽기, 여러 단계에 걸친 수정 계획, 긴 스레드에 걸친 툴 실행. 프론티어 코딩 모델(claude-sonnet-4-6, claude-opus-4-7, gpt-5.5)이 이 슬롯에 적합합니다.
- kimi-k2.7-code 같은 코딩 특화 id는 기본값이 아니더라도 선언해 둘 가치가 있습니다: 리팩터링 위주 세션에서 전환하는 것은 설정 수정이 아니라 피커 선택 한 번이면 됩니다.
- gemini-3.1-pro-preview 같은 긴 컨텍스트 모델은 스레드가 큰 파일이나 모듈 전체 컨텍스트를 하나의 대화로 자주 끌어올 때 제 몫을 합니다.
- 인라인 어시스트는 에이전트 스레드보다 수명이 짧으므로, 빠른 중간급 id를 쓰면 한 줄 재작성에 프론티어 토큰을 태우지 않으면서도 단발성 변환을 빠릿빠릿하게 유지할 수 있습니다.
사용한 만큼 지불 · 공식 요금보다 저렴
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| 모델 | 공식 요금 | 저희 요금 |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Opus 4.7 | $5.00 / $25.00 per M | $4.00 / $20.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Kimi K2.7 Code | $0.95 / $4.00 per M | $1.00 / $4.00 per M |
| Gemini 3.1 Pro Preview | $2.00 / $12.00 per M | $1.60 / $9.60 per M |
Zed 커스텀 프로바이더 특유의 실패 패턴.
키를 settings.json에 넣었는데 아무것도 작동하지 않음. Zed는 설계상 API 키를 settings.json에서 읽지 않습니다. 프로바이더 설정 UI에서 키를 입력하거나 파생된 환경 변수를 export하세요. JSON에 붙여넣은 키는 무시됩니다. 환경 변수를 설정했는데도 Zed가 계속 키를 요구함. 변수 이름은 프로바이더 키에서 파생되며, 대문자 스네이크 케이스에 _API_KEY가 붙습니다. 그래서 apisrouter라는 이름의 프로바이더는 OPENAI_API_KEY가 아니라 APISROUTER_API_KEY가 필요합니다. 그리고 macOS에서는 Dock에서 실행한 앱이 셸 프로필을 절대 불러오지 않으므로, 프로필의 export는 보이지 않습니다. zed 명령으로 터미널에서 Zed를 실행하거나, 키체인 경로를 사용해 이 문제 자체를 피하세요. 피커에 모델이 없음. available_models는 허용 목록입니다. 있다고 짐작했지만 실제로 선언하지 않은 id는 그냥 존재하지 않습니다. id는 버전 접미사까지 포함한 정확한 문자열이며, 게이트웨이의 /v1/models 목록이 그대로 복사해 올 수 있는 정답 표기입니다. 에이전트가 툴을 사용할 수 없음. 모델의 capabilities 블록에서 tools가 false라면 Zed는 그 모델로 툴 사용을 제공하지 않습니다. capabilities를 모델이 실제로 지원하는 바와 일치하게 선언하세요. /v1 없는 api_url. 클라이언트는 여러분이 준 베이스에 /chat/completions 같은 경로를 덧붙이므로, https://api.apisrouter.com/v1이 올바르며 호스트만 있는 값은 그렇지 않습니다. 다른 부분은 다 맞는 블록에서 404 형태의 실패가 난다면 거의 항상 이 문제입니다.
어떤 사람들이 게이트웨이를 통해 Zed를 쓰는가.
- 에디터에서 지내며, 벤더마다 별도의 프로바이더 자격 증명을 유지하는 대신 Claude, GPT, Kimi를 하나의 에이전트 패널 피커에 두고 싶은 개발자.
- 실제 수정 작업에서 코딩 모델을 비교하는 엔지니어. 각 후보는 선언한 항목 하나와 드롭다운 선택 한 번이면 되며, 실험마다 새 계정이 필요 없습니다.
- 시크릿 하나로 표준화하는 팀. 온보딩 문서의 APISROUTER_API_KEY 하나가 벤더별 키 체크리스트를 대체하며, 키별 사용량이 각 좌석의 지출을 보여줍니다.
- 프론티어 에이전트 모델과 다른 벤더의 빠른 인라인 어시스트 모델을 조합하는 사용자 — 단일 벤더 설정으로는 표현할 수 없는 조합입니다.
- 특정 벤더의 결제 수단에 접근할 수 없는 개발자. 카드 없이 충전만으로 접근할 수 있어 프로바이더별 가입 의존성이 사라집니다.
엔드포인트 검증 및 첫 스레드 디버깅.
에이전트 스레드를 시작하기 전에 게이트웨이가 제공하는 모델을 조회하세요. /v1/models가 반환하는 id가 바로 available_models 항목이 사용해야 하는 정확한 문자열입니다. 첫 스레드의 실패는 일관된 패턴을 보입니다. 401은 Zed가 해석한 키가 잘못되었거나 없다는 뜻입니다: 프로바이더 설정의 키체인 항목을 확인하거나, 파생된 환경 변수가 터미널뿐 아니라 Zed 프로세스에도 보이는지 확인하세요. 게이트웨이에서 나오는 model-not-found 오류는 선언한 이름이 버전 접미사를 포함해 제공되는 id와 일치하지 않는다는 뜻입니다. 프로바이더 블록이 설정에 아예 나타나지 않는다면 JSON을 검증하세요. settings.json은 주석은 허용하지만 구조적 오류는 허용하지 않습니다. 요청이 순조롭게 흐르면, APIsRouter 콘솔이 요청별 모델, 토큰 수, 지출을 보여줍니다. 에이전트 스레드는 컨텍스트가 길고 턴이 많은 작업이므로, 어떤 스레드와 어떤 모델이 토큰을 소모하는지 보는 것이 기본 모델이 그 자리를 차지할 만한지 판단하는 방법입니다.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50자주 묻는 질문
Zed에서 커스텀 프로바이더 하나로 Claude, GPT, Kimi 모델을 쓸 수 있나요?
네. 커스텀 프로바이더는 api_url과 available_models 허용 목록입니다. 엔드포인트가 여러 벤더를 제공한다면 id마다 항목을 하나씩 선언하세요. 선언한 모든 모델이 같은 프로바이더와 키 아래 에이전트 패널 피커에 나타나며, 스레드마다 전환할 수 있습니다.
Zed 커스텀 프로바이더의 API 키는 어디에 넣나요?
settings.json에는 넣지 않습니다. 시스템 키체인에 저장하는 프로바이더 설정 UI에서 입력하거나, 프로바이더 키에서 파생된 환경 변수를 export하세요: apisrouter라는 이름의 프로바이더는 APISROUTER_API_KEY를 읽습니다. 환경 변수가 키체인 값보다 우선합니다.
Zed가 셸 프로필에서 export한 API 키를 무시하는 이유는?
Dock에서 실행한 GUI 앱은 셸 프로필을 절대 불러오지 않으므로, export는 보이지 않습니다. zed 명령으로 터미널에서 Zed를 실행해 변수를 상속받게 하거나, 설정 UI를 사용해 키체인이 키를 보관하게 하세요.
에이전트 패널 피커에 모델이 없는 이유는?
커스텀 프로바이더 모델은 명시적으로 선언해야 합니다. Zed는 커스텀 엔드포인트를 스스로 나열할 수 없습니다. available_models에 버전 접미사까지 포함한 정확한 id 문자열이 있는지 확인하고, 기억으로 입력하는 대신 게이트웨이의 /v1/models 응답에서 id를 복사하세요.
available_models에서 max_tokens와 max_output_tokens는 무엇을 제어하나요?
max_tokens는 모델의 컨텍스트 윈도우를 선언하고 max_output_tokens는 생성 길이를 제한합니다. Zed는 긴 에이전트 스레드를 관리할 때 이 값을 사용하므로, max_tokens를 모델이 실제로 지원하는 값으로 설정하세요. 값을 축소하면 모델이 실제로 가진 컨텍스트를 낭비하게 됩니다.
커스텀 프로바이더가 Zed의 edit predictions를 바꾸나요?
아니요. Edit predictions는 Zed 자체의 전용 모델에서 실행되며 별도로 설정됩니다. 커스텀 OpenAI 호환 프로바이더는 에이전트 패널과 인라인 어시스턴트를 지원하며, /v1/chat/completions 트래픽이 가는 곳이 바로 그곳입니다.