문서

문서

Nanocoder

Nanocoder는 원격 엔드포인트를 Ollama와 같은 방식으로 처리합니다. 이름, 기본 URL, 키, 모델 목록이 포함된 항목 하나를 nanocoder.providers 아래에 추가합니다. sdkProvider의 기본값은 openai-compatible이므로 별도로 지정할 항목은 없습니다.

agents.config.json의 nanocoder.providers 아래 Custom Provider 항목 — name, baseUrl, apiKey, models — 에는 sdkProvider 줄이 필요 없습니다. 기본값이 openai-compatible이기 때문입니다

agents.config.json
{
  "nanocoder": {
    "providers": [
      {
        "name": "Kunavo",
        "baseUrl": "https://api.kunavo.com/v1",
        "apiKey": "${KUNAVO_API_KEY}",
        "models": ["claude-sonnet-5", "claude-haiku-4-5", "gpt-5-6-sol"]
      }
    ]
  }
}
Kunavo에서는 이 엔드포인트로 Nanocoder를 실행한 적이 없습니다. 위의 모든 필드는 Nanocoder의 Custom Provider 페이지를 옮긴 것으로, 이 문서의 작성자가 실제로 완료한 세션에서 가져온 것이 아닙니다. 따라서 이는 호환성 테스트가 아니라 구성 참고 자료입니다. 먼저 범위를 제한한 작은 작업을 하나 실행하고, 진행하는 동안 사용할 다른 경로도 마련해 두세요.
기본 URL에는 /v1 접미사가 포함되어야 합니다. Nanocoder 문서는 규칙 대신 예시로 이를 설명합니다. 필드 표에서는 baseUrl를 “API endpoint URL”이라고만 설명하지만, Custom Provider 페이지 자체의 예시는 "baseUrl": "https://my-api.example.com/v1"이고 사이트의 모든 OpenAI 호환 공급자 페이지도 https://openrouter.ai/api/v1, http://localhost:11434/v1와 같이 동일합니다. 접미사를 빼면 키 관련 401 오류가 아니라 경로에서 404 오류가 발생합니다.
sdkProvider가 위에 없는 것은 의도된 것입니다. 필드 표에 “기본값은 openai-compatible”라고 되어 있으며, 이는 Kunavo가 여기서 응답하는 와이어 형식입니다. 문서에 나온 다른 값(google, anthropic, github-copilot)은 다른 SDK로 전환하므로 채팅 완료 엔드포인트에 연결하는 데 필요하지 않습니다.
구성 파일의 우선순위는 다음 세 단계로 결정됩니다. 먼저 NANOCODER_PROVIDERS(또는 NANOCODER_PROVIDERS_FILE), 다음은 작업 디렉터리의 agents.config.json, 마지막은 사용자별 파일(~/Library/Preferences/nanocoder/는 macOS, ~/.config/nanocoder/는 Linux, %APPDATA%\nanocoder\는 Windows)입니다. 먼저 발견된 설정이 적용되며, NANOCODER_CONFIG_DIR를 설정하면 프로젝트 및 홈 디렉터리 검색을 모두 건너뜁니다. 수정한 키가 전송되지 않는다면 이 우선순위를 확인하세요.
아직 키가 없나요? Kunavo 계정을 만들고, 키를 생성한 다음(키는 sk-kn-로 시작합니다) $10부터 크레딧을 추가하세요. 호출 비용은 해당 잔액에서 차감되며 실패한 호출에는 요금이 부과되지 않습니다. 그러면 대시보드가 Nanocoder 설정 화면에서 열립니다.

단계별 안내

  1. /app/keys에서 키를 만들고 복사하세요. 키는 한 번만 표시됩니다. 파일에 직접 붙여 넣지 말고 KUNAVO_API_KEY로 내보내세요. Nanocoder는 공급자 항목의 모든 문자열을 재귀적으로 처리해 $VAR, ${VAR}, ${VAR:-default}를 치환하고, 작업 디렉터리에서 .env를 읽습니다.
  2. Nanocoder에서 /settings providers를 실행하고 Custom Provider를 선택합니다. 마법사에서 Provider name, Base URL, API key (optional), Model names, Request timeout 순서로 묻습니다. 또한 엔드포인트에서 모델 목록을 가져오는 옵션을 제공합니다. Kunavo는 GET /v1/models로 응답하므로 목록을 자동으로 가져올 수 있습니다.
  3. 마법사를 건너뛰고 직접 agents.config.json에 위 블록을 작성해도 됩니다. 설정은 파일별로 확인됩니다. 프로젝트 수준 파일에서 nanocoder.providers를 정의하면 해당 블록 전체가 적용되므로 글로벌 구성의 항목이 병합되지 않습니다.
  4. 컨텍스트 창을 설정하세요. Nanocoder는 제한값을 /context-max, contextWindows[model], contextWindow, NANOCODER_CONTEXT_LIMIT, models.dev 순서로 확인합니다. Kunavo는 models.dev 공급자가 아니므로 앞의 네 항목 중 하나도 설정하지 않으면 실제 모델의 컨텍스트 창이 아닌 대체값을 기준으로 예산을 계산합니다. 값은 /models에 나와 있습니다.
  5. /model를 열고 목록에 입력한 ID 중 하나를 선택하세요. 선택기에는 사용자가 지정한 name 아래에 ID가 표시됩니다. 그런 다음 도구를 호출해야 하는 간단한 작업을 실행하세요. 특정 모델에서 도구 호출 형식이 잘못되어 돌아오면 disableToolModels를 사용해 공급자 전체가 아닌 해당 모델에 대해서만 도구 호출을 비활성화할 수 있습니다.

Nanocoder의 Custom Provider 페이지에서 확인했습니다(2026년 9월 21일 기준). 서드파티 설정은 변경될 수 있으므로, 여기의 필드 이름이 실제 화면과 다르면 이 문서가 아니라 해당 페이지를 기준으로 삼으세요.

이것이 요약본입니다. 전체 안내—모델 선택, 실제 세션 비용, 실패 유형—는 Nanocoder와 OpenCode — 공급자 블록 외에 발생하는 각 비용에 있습니다.

클라이언트를 디버깅하기 전에 확인할 사항

한 번의 요청으로 문제가 엔드포인트, 키 또는 구성 파일 중 어디에 있는지 판단할 수 있습니다. 이 요청에서 JSON이 반환되면 동일한 base URL과 키가 Nanocoder에서 작동합니다.

# 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 기준이며 입력 / 출력 순서입니다.

모델 IDKunavo 입력/출력Nanocoder에서의 위치
claude-sonnet-5$1.40 / $7.00터미널 에이전트의 편집 및 실행 반복 작업에 사용하는 기본 작업 모델
claude-haiku-4-5$0.70 / $3.50턴 수가 비용을 좌우하는 도구 중심의 긴 세션과 빠른 파일 분류
gpt-5-6-sol$2.00 / $12.00동일한 키를 사용하는 다른 모델 계열의 2차 의견
claude-opus-5$3.50 / $17.50잘못된 계획의 비용이 큰 세션 내 한 번의 대규모 리팩터링
월정액 없이 선불 잔액에서 토큰별로 청구됩니다. billing을 참고하세요. 반복되는 컨텍스트(에디터나 채팅 클라이언트가 보내는 데이터의 대부분)에서는 모델 선택보다 프롬프트 캐싱이 청구액에 더 큰 영향을 줍니다.

자주 묻는 질문

Nanocoder는 사용자 지정 API 엔드포인트를 지원하나요?

예. 문서에 명시된 공식 기능이며 문서화되지 않은 필드가 아닙니다. Nanocoder 자체의 "Custom Provider" 페이지에는 OpenAI 호환 API를 제공하는 서비스라면 무엇이든 사용자 지정 공급자로 추가할 수 있다고 나와 있으며, 입력할 객체(name, baseUrl, apiKey, models)의 예도 있습니다. /settings providers 마법사를 사용해 대화형으로 추가하거나 agents.config.json에 직접 작성할 수 있습니다. 이는 2026년 9월 21일 기준 문서 내용입니다.

Nanocoder API 키는 어디에 입력하나요?

agents.config.json의 공급자 항목에 있는 apiKey 필드에 입력합니다. Nanocoder는 공급자 구성의 문자열 필드에서 환경 변수를 재귀적으로 치환하므로, 셸에서 값을 내보내거나 작업 디렉터리의 .env 파일에 저장하고 "apiKey": "${KUNAVO_API_KEY}"와 같이 설정하는 편이 안전합니다. NANOCODER_PROVIDERS를 통한 환경 변수 재정의가 가장 높은 우선순위를 가지며, 그다음 프로젝트 수준 agents.config.json, 사용자별 파일 순으로 적용됩니다. 따라서 수정 사항이 적용되지 않는 것 같으면 우선순위가 더 높은 설정이 덮어쓰는 경우가 많습니다.

Nanocoder의 baseUrl 끝에 /v1이 필요하나요?

OpenAI 호환 엔드포인트라면 필요합니다. 예를 들어 https://api.kunavo.com/v1입니다. Nanocoder 문서는 접미사 규칙을 문장으로 설명하지 않고, 필드 표에서는 baseUrl을 API 엔드포인트 URL이라고만 설명합니다. 대신 예시로 문제를 명확히 합니다. Custom Provider 페이지의 예시에는 https://my-api.example.com/v1이 사용되며 사이트의 모든 OpenAI 호환 공급자 페이지에도 같은 접미사가 붙어 있습니다. /v1이 빠지면 인증 오류가 아닌 경로 오류 404가 발생합니다.

Nanocoder에서 모델 비용이 표시되지 않거나 컨텍스트 크기가 잘못 표시되는 이유는 무엇인가요?

Nanocoder는 models.dev에서 모델 메타데이터를 가져오며, 목록에 없는 타사 게이트웨이는 해당 사이트에 항목이 없습니다. 문서에 명시된 컨텍스트 제한 우선순위는 /context-max 또는 --context-max, contextWindows[model], contextWindow, NANOCODER_CONTEXT_LIMIT, models.dev 순입니다. 따라서 공급자 항목의 처음 네 가지 중 하나를 설정하면 올바른 사용량 제한이 적용됩니다. 응답별 비용은 어느 경우든 보고된 토큰 수를 기반으로 클라이언트가 직접 계산한 값입니다. 화면 하단 수치가 아니라 공급자 자체의 원장을 기준으로 확인하세요.