문서
twinny
twinny는 기본 URL을 요청하지 않습니다. 프로토콜, 호스트 이름, 포트, API 경로를 요청합니다. 채팅에서는 이 경로가 API 기본 경로이므로 https와 api.kunavo.com, /v1을 입력하고 포트는 비워 두세요.
twinny에는 기본 URL 필드가 없습니다 — Add provider → OpenAI-compatible server에서 Protocol https, Hostname api.kunavo.com, Port 공란, API path /v1을 설정하면 채팅 패널에서 키를 사용할 수 있습니다
Label Kunavo
Type Chat
Provider OpenAI-compatible server
Hostname api.kunavo.com
Port (leave blank — "Blank means the protocol's default")
Protocol https
API path /v1
Model name claude-sonnet-5
FIM template (Autocomplete only — not part of a Chat provider)
API key sk-kn-.../v1이지 /v1/chat/completions가 아닙니다. twinny의 제공자 표에 규칙이 한 문장으로 정리되어 있습니다. “채팅 경로는 API 기본 경로이며 twinny가 /chat/completions를 덧붙입니다.” 따라서 경로에 이미 라우트가 포함되어 있으면 /v1/chat/completions/chat/completions가 되어 404가 발생합니다. 여기서는 하나뿐인 기본 URL 필드를 잘못 설정할 일은 없지만, 같은 표에 더 간편한 방법이 나와 있습니다. https://api.kunavo.com/v1를 Hostname에 붙여 넣으면 “프로토콜, 호스트, 포트, 경로로 분리됩니다”.sk-kn-로 시작합니다) $10부터 크레딧을 추가하세요. 호출 비용은 해당 잔액에서 차감되며 실패한 호출에는 요금이 부과되지 않습니다. 그러면 대시보드가 twinny 설정 화면에서 열립니다.단계별 안내
/app/keys에서 키를 생성해 복사하세요. 키는 한 번만 표시됩니다.- 사이드바 상단의 로봇 아이콘에서 Providers 탭을 열거나 명령 팔레트에서 Manage twinny providers를 실행하세요.
- Add provider → On your machine 아래에서 모든 상황에 사용할 수 있는 사전 설정인
OpenAI-compatible server를 선택하세요. 기본적으로localhost:8080를 가리킵니다. - Protocol은
https로, Hostname은api.kunavo.com로 설정하고 Port는 비운 다음 API path를/v1로 설정하세요. Type은Chat로 유지하세요. - 키를 API key에 붙여 넣으세요. twinny는 키를
Authorization: Bearer로 전송합니다. 그런 다음 Model name을 설정하세요. 직접 입력하거나 Choose from the server's models를 사용할 수 있습니다. Kunavo가GET /v1/models에 응답하기 때문입니다. - Test provider를 누른 다음 Use this provider를 눌러 활성 채팅 제공자로 설정하세요. 두 번째 모델용으로 행을 복제하려면 엔드포인트 필드 네 개를 다시 입력하는 대신 Copy를 사용하세요.
twinny의 Other local servers 페이지에서 확인했습니다(2026년 9월 21일 기준). 서드파티 설정은 변경될 수 있으므로, 여기의 필드 이름이 실제 화면과 다르면 이 문서가 아니라 해당 페이지를 기준으로 삼으세요.
클라이언트를 디버깅하기 전에 확인할 사항
한 번의 요청으로 문제가 엔드포인트, 키 또는 구성 파일 중 어디에 있는지 판단할 수 있습니다. 이 요청에서 JSON이 반환되면 동일한 base URL과 키가 twinny에서 작동합니다.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."필드에 입력할 model id
모든 텍스트 모델은 model id로 접근할 수 있습니다. 현재 목록은 GET /v1/models이며, 가격이 포함된 카탈로그는 모델 페이지에서 확인할 수 있습니다. 요금은 토큰 100만 개당 USD 기준이며 입력 / 출력 순서입니다.
| 모델 ID | Kunavo 입력/출력 | twinny에서의 위치 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 채팅 패널, 인라인 편집, 코드 검토 — 기본 작업에 적합 |
claude-haiku-4-5 | $0.70 / $3.50 | 커밋 메시지, 터미널 도우미, 코드 작업 — 사용량이 큰 영향을 미치는 영역 |
gpt-5-6-terra | $0.70 / $4.20 | 채팅에 붙여 넣은 긴 파일과 검토 의견이 부족할 때 다른 계열 모델의 추가 의견 |
채팅에는 적합합니다. 자동 완성과 인덱스에는 적합하지 않습니다.
twinny는 세 가지 제공자 유형으로 작업을 나누며 각 유형은 별도로 설정해야 합니다. 따라서 “twinny는 Kunavo와 연동된다”는 말은 그중 한 유형에 대해서만 맞습니다. 나머지 두 유형은 아직 찾지 못한 설정이 아닙니다. 필요한 경로에 Kunavo가 응답하지 않습니다.
| 제공자 유형 | twinny가 보내는 내용 | api. |
|---|---|---|
| 채팅 | <API path>/로 보내는 OpenAI 형식 POST 요청 | 적합합니다. 위 페이지의 설정입니다. |
| 자동 완성 (FIM) | /v1/로 보내는 원시 fill-in-the-middle 프롬프트 | 아니요. Kunavo에는 /v1/ |
| 임베딩 | /v1/로 보내는 요청 | 아니요. Kunavo는 임베딩 모델을 제공하지 않으므로 여기서 작업 공간 인덱스를 만들 수 없습니다. |
twinny는 유형별로 활성 제공자를 하나씩 유지하며 이들은 서로 독립적이므로, 두 가지 공백이 설정을 막지는 않습니다. twinny 자체의 호스팅 API 페이지에서는 이 구성을 “일반적인 설정”이라고 부릅니다. 채팅, 검토, 편집에는 호스팅 모델을 사용하고 자동 완성에는 작은 로컬 기본 모델을 함께 쓰는 방식입니다. 작업 공간 인덱스도 같은 방식으로 구성할 수 있습니다. 여기서는 임베딩 단계를 제공하지 않으며, twinny 문서는 대신 Ollama의 nomic-embed-text 같은 로컬 모델을 사용하도록 안내합니다. 서로 다른 모델에서 나온 벡터는 혼합할 수 없으므로 모델을 바꾸면 업데이트가 아니라 인덱스를 다시 만들어야 합니다.
자주 묻는 질문
twinny를 사용자 지정 API 엔드포인트에 연결하려면 어떻게 하나요?
twinny 사이드바에서 로봇 아이콘을 눌러 Providers 탭을 연 다음 Add provider를 선택하고, “On your machine” 아래에서 “OpenAI-compatible server”라는 이름의 범용 사전 설정을 선택하세요. twinny 문서에 따르면 제공자 양식에는 호스트 이름, 포트, 프로토콜, 경로를 자유롭게 입력할 수 있습니다. Protocol은 https, Hostname은 엔드포인트의 호스트로 설정하고 Port는 프로토콜 기본 포트를 사용하도록 비워 둔 다음 API path는 API 기본 경로로 설정하세요. API key 필드에 키를 붙여 넣으세요. twinny는 이를 Authorization: Bearer 헤더로 전송합니다. 그런 다음 Test provider를 누르세요. 제공자가 수행할 작업에 대한 소규모 요청을 보내고 성공 여부 또는 서버가 반환한 오류와 호출한 URL을 표시합니다.
twinny의 API 경로에는 /v1과 /v1/chat/completions 중 무엇을 입력해야 하나요?
채팅 제공자에는 /v1을 사용합니다. twinny 제공자 표에는 “채팅 경로는 API 기본 경로이며 twinny가 /chat/completions를 덧붙입니다”라고 되어 있습니다. 따라서 확장 기능이 전체 경로를 직접 구성하며, 경로에 이미 전체 경로가 포함되어 있으면 /v1/chat/completions/chat/completions로 해석되어 인증 오류가 아니라 404가 반환됩니다. 같은 양식에서 자동 완성과 임베딩은 반대 규칙을 따릅니다. 이 경우 API 경로는 전체 경로이며, 일반 사전 설정의 기본값은 각각 /v1/completions와 /v1/embeddings입니다.
twinny API 키는 어디에 입력하나요? 기본 URL 필드도 있나요?
키는 제공자의 API key 필드에 입력하며 Authorization: Bearer로 전송됩니다. twinny 문서에 따르면 키는 VS Code 저장소의 제공자 데이터와 함께 저장되고 twinny 로그에서는 마스킹됩니다. 단일 기본 URL 필드는 없습니다. 엔드포인트는 Protocol, Hostname, Port, API path로 나뉩니다. URL 전체를 Hostname에 붙여 넣는 간편한 방법이 있습니다. 문서에 따르면 https://my-box:8080/v1 같은 URL을 붙여 넣으면 프로토콜, 호스트, 포트, 경로로 분리됩니다. 따라서 https://api.kunavo.com/v1을 붙여 넣으면 세 필드를 한 번에 채울 수 있습니다.
Kunavo 같은 호스팅 게이트웨이를 통해 twinny 자동 완성을 실행할 수 있나요?
아니요. 원인은 설정이 아니라 경로가 없기 때문입니다. twinny의 일반 OpenAI 호환 사전 설정은 원시 fill-in-the-middle 프롬프트를 /v1/completions 형식의 경로로 보내지만, api.kunavo.com은 /v1/completions를 제공하지 않습니다. 카탈로그에도 fill-in-the-middle용으로 학습된 기본 모델이나 코드 모델이 없습니다. 자동 완성은 로컬 서버에서 실행하세요. twinny FAQ에서는 Ollama의 qwen2.5-coder:1.5b-base를 제안합니다. 채팅에는 호스팅 제공자를 사용하세요. twinny는 이 조합을 일반적인 설정이라고 설명하며, 유형별로 활성 제공자를 선택하므로 전환할 필요가 없습니다.
Kunavo를 twinny 작업 공간 인덱스에 사용할 수 있나요?
아니요. 작업 공간 인덱스는 Embeddings 제공자를 통해 파일을 임베딩하지만 Kunavo는 임베딩 모델을 제공하지 않습니다. 카탈로그에 해당 엔드포인트를 지원하는 모델이 없으므로 요청은 응답을 받지 못하고 거부됩니다. twinny 자체 문서에서는 이 작업에 Ollama의 nomic-embed-text를 권장합니다. 이 모델은 사용자의 컴퓨터에서 실행되며 채팅 제공자와는 독립적입니다. 이는 설정이 차단된 것이 아니라 분리된 구성입니다. 임베딩 모델을 나중에 바꾸면 서로 다른 모델의 벡터를 혼합할 수 없으므로 인덱스를 다시 만들어야 합니다.
Kunavo 키를 twinny의 OpenAI 또는 Anthropic 사전 설정에 사용하면 안 되는 이유는 무엇인가요?
해당 사전 설정은 요청을 예상한 곳으로 보내지 않기 때문입니다. twinny의 호스팅 API 페이지에 따르면 호스팅 API를 사용하는 채팅은 제공자의 SDK를 거쳐 고정된 엔드포인트로 전송되므로 해당 사전 설정에서는 호스트 이름, 포트, 경로 필드가 숨겨집니다. 붙여 넣은 키는 게이트웨이가 아닌 제공자의 자체 엔드포인트로 전송됩니다. 엔드포인트 필드를 직접 수정할 수 있는 사전 설정은 일반 “OpenAI-compatible server”이며, 위에서 이 사전 설정을 안내한 이유도 이 때문입니다. 모델 ID는 설정된 엔드포인트로 그대로 전달되므로, OpenAI 호환 제공자에서 Claude ID를 사용하는 것은 의도된 조합이지 불일치가 아닙니다.
Kunavo에서 twinny를 테스트했나요?
아니요. Kunavo는 이 클라이언트에 대한 런타임 테스트를 수행하지 않았습니다. 위 구성은 2026년 9월 21일에 확인한 twinny 자체 문서와 Kunavo 라우트 표를 바탕으로 작성되었습니다. 설정 페이지를 게시했다고 해서 테스트를 거친 것은 아닙니다. 비용 없이 확인하려면 twinny의 Test provider 버튼을 사용하세요. 버튼은 호출한 URL과 서버 응답을 표시합니다. /v1/models로 curl 요청을 한 번 보내면 실패 원인이 엔드포인트, 키, 양식 중 어디에 있는지 확인할 수 있습니다.