ドキュメント

ドキュメント

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に設定すると、チャットパネルをキーに接続できます。

Providersタブ → Add provider → OpenAI-compatible server
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-...
API pathは/v1であり、/v1/chat/completionsではありません。twinnyのプロバイダー表には「チャットではパスがAPIベースとなり、twinnyが/chat/completionsを追加する」と1文で明記されているため、すでにルートを含むパスを指定すると/v1/chat/completions/chat/completionsとなり、404が返されます。ここには誤りの原因となる単一のベースURLフィールドはありませんが、同じ表に近道が示されています。https://api.kunavo.com/v1をHostnameに貼り付けると、「プロトコル、ホスト、ポート、パスに分割」されます。
汎用のOpenAI互換サーバーのプリセットを選び、OpenAIやAnthropicのプリセットは選ばないでください。twinnyのホステッドAPIのページには、そこでのチャットは「ベンダーのSDKを通じて固定エンドポイントに送られるため、ホスト名、ポート、パスのフィールドは非表示になる」とあります。キーはベンダーに送信されるため、接続先のエンドポイントではありません。上記のフィールド名はプロバイダーフォームの表に記載された順序どおりです。
Kunavoでは、このエンドポイントに対してtwinnyを実行していません。このページはtwinny自身のドキュメントとKunavoのルート表を参照しており、設定手順の公開はテストを意味しません。実際に動作を確かめるのはtwinnyのTest providerボタンです。「プロバイダーの用途に応じた小さなリクエストを送信し、成功またはサーバーが返したエラーと、呼び出したURLを表示」します。
まだキーをお持ちですか?Kunavoアカウントを作成し、キーを作成します(sk-kn-で始まります)。$10からクレジットを追加すると、呼び出しはその残高から支払われ、失敗した呼び出しは課金されません。ダッシュボードを開くと、twinny設定が表示されます。

手順

  1. /app/keys でキーを作成してコピーします。キーは一度だけ表示されます。
  2. サイドバー上部のロボットアイコンから「Providers」タブを開くか、コマンドパレットでManage twinny providersを実行します。
  3. Add providerを選択し、On your machineの下にある包括的なプリセットOpenAI-compatible serverを選びます。初期設定ではlocalhost:8080が指定されています。
  4. Protocolをhttpsに、Hostnameをapi.kunavo.comに設定し、Portは空欄にして、API pathを/v1に設定します。TypeはChatのままにします。
  5. キーをAPI keyに貼り付けます。twinnyはキーをAuthorization: Bearerとして送信します。次にModel nameを設定します。直接入力するか、Choose from the server's modelsから選択できます。KunavoはGET /v1/modelsに応答します。
  6. Test providerを押し、続けてUse this providerを押して、アクティブなチャットプロバイダーに設定します。2つ目のモデルを追加する場合は、4つのエンドポイントフィールドを再入力せずに、Copyで行を複製してください。

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

これが短い概要です。完全な手順 — モデルの選択、実際のセッション費用、失敗するケース — はtwinnyとContinueの比較にあります。

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

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

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

すべてのテキストモデルにはモデルIDでアクセスできます。現在の一覧はGET /v1/models、価格付きのカタログはモデルページにあります。料金は100万トークンあたりのUSDで、入力 / 出力の順です。

モデル IDKunavo 入力 / 出力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は作業を3種類のプロバイダーに分け、それぞれ別々に設定します。そのため、「twinnyはKunavoで動く」というのは、そのうち1種類についてのみ当てはまります。残りの2種類は、まだ見つけていない設定があるということではありません。必要なルートにKunavoは応答しません。

プロバイダーの種類twinnyが送信する内容api.kunavo.comでの対応状況
チャット<API path>/chat/completionsへのOpenAI形式のPOSTリクエスト対応 — このページで説明しているのはこの種類です。
オートコンプリート(FIM)/v1/completionsへの生のfill-in-the-middleプロンプト非対応です。Kunavoには/v1/completionsルートがなく、これを実行するベースモデルやコードモデルもありません。
埋め込み/v1/embeddingsへのリクエスト非対応です。Kunavoは埋め込みモデルを提供していないため、ここではワークスペースのインデックスを作成できません。

どちらの不足もこの設定を妨げません。twinnyでは種類ごとに1つのアクティブなプロバイダーを設定でき、それぞれが独立しているためです。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 pathには/v1と/v1/chat/completionsのどちらが必要ですか?

チャットプロバイダーでは/v1を指定します。twinnyのプロバイダー表には「チャットではパスがAPIベースとなり、twinnyが/chat/completionsを追加する」と記載されています。したがって、拡張機能が完全なルートを組み立てます。すでにそのルートを含むパスを指定すると/v1/chat/completions/chat/completionsに解決され、認証エラーではなく404が返されます。同じフォームでも、オートコンプリートと埋め込みでは逆の指定方法です。これらではAPI pathに完全なルートを指定し、汎用プリセットのデフォルトは/v1/completionsと/v1/embeddingsです。

twinnyのAPIキーはどこに入力しますか?ベースURLのフィールドはありますか?

キーはプロバイダーのAPI keyフィールドに入力します。twinnyはAuthorization: Bearerとして送信します。twinnyのドキュメントによると、キーはVS Codeのストレージにプロバイダー情報とともに保存され、twinnyのログでは伏せ字にされます。単一のベースURLフィールドはありません。エンドポイントはProtocol、Hostname、Port、API pathに分かれています。便利な方法として、URL全体をHostnameに貼り付けることができます。ドキュメントによると、https://my-box:8080/v1などを貼り付けると、プロトコル、ホスト、ポート、パスに分割されます。https://api.kunavo.com/v1を貼り付けると、3つのフィールドをまとめて入力できます。

twinnyのオートコンプリートをKunavoのようなホステッドゲートウェイ経由で実行できますか?

できません。原因は設定ではなく、ルートが存在しないことです。twinnyの汎用OpenAI互換プリセットは、生のfill-in-the-middleプロンプトを/v1/completions形式のルートにPOSTしますが、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を1回実行すれば、問題がエンドポイント、キー、フォームのどこにあるかを確認できます。