ドキュメント

ドキュメント

Nanocoder

Nanocoder では、リモートエンドポイントも Ollama と同じ方法で扱います。nanocoder.providers の下に、名前、ベース URL、キー、モデルリストを含む1つのエントリーを設定します。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 ページから転記したものです。これは設定の参考情報であり、互換性テストではありません。まずは小規模で範囲を限定したタスクを1つ実行し、その間は別の手段も使える状態にしておいてください。
ベース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に切り替えるもので、チャット補完エンドポイントへの接続にはどれも必要ありません。
どの設定ファイルが適用されるかは、次の3か所をこの順に確認して決まります。NANOCODER_PROVIDERS(または NANOCODER_PROVIDERS_FILE)、次に作業ディレクトリ内の agents.config.json、最後にユーザーごとの設定ファイル(macOS では ~/Library/Preferences/nanocoder/、Linux では ~/.config/nanocoder/、Windows では %APPDATA%\nanocoder\)です。最初に見つかった設定が使われます。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 のプロバイダーではないため、最初の4つのいずれかを設定しないと、使用モデルとは異なるフォールバック値に基づいて予算が計算されます。設定する値は /models にあります。
  5. /model を開き、リストした ID のいずれかを選びます。ピッカーには指定した name の下に表示されます。次に、ツールを呼び出す必要がある小さなタスクを実行してください。特定のモデルでツール呼び出しの形式が不正になる場合は、disableToolModels を使うとプロバイダー単位ではなくモデル単位でその動作を制限できます。

Nanocoder の Custom Provider ページで2026年9月21日に確認しました。サードパーティの設定は変更されます。ここに記載されたフィールド名が表示内容と一致しなくなった場合は、このページではなく、そのページを正しい情報源としてください。

これが短い概要です。完全な手順 — モデルの選択、実際のセッション費用、失敗するケース — はNanocoder と OpenCode の比較 — プロバイダーブロック以外にかかるコストにあります。

クライアントをデバッグする前に確認すること

1回のリクエストで、失敗の原因がエンドポイント、キー、設定ファイルのどれかを特定できます。これがJSONを返すなら、同じベース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-..."

フィールドに入力するモデルID

すべてのテキストモデルにはモデル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同じキーで利用する、別系統のモデルによるセカンドオピニオン
claude-opus-5$3.50 / $17.50セッション中の難しいリファクタリングで、計画を誤ると高くつく場面
請求は月額料金なしの前払い残高からトークン単位で行われます — 請求を参照してください。繰り返し送られるコンテキスト(エディターやチャットクライアントが送る内容の大半)では、プロンプトキャッシュのほうがモデル選択より請求額を大きく左右します。

よくある質問

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 の順です。そのため、プロバイダーエントリーで最初の4つのいずれかを設定すれば、メーターに正しい値が表示されます。レスポンスごとのコスト表示は、どちらの場合も報告されたトークン数を使ってクライアントが独自に計算した値です。フッターの表示ではなく、プロバイダー独自の利用明細と照合してください。