+ )}
+ >
+ )
+}
diff --git a/webview-ui/src/components/settings/providers/index.ts b/webview-ui/src/components/settings/providers/index.ts
index 6af98e438fd..211152d8b5f 100644
--- a/webview-ui/src/components/settings/providers/index.ts
+++ b/webview-ui/src/components/settings/providers/index.ts
@@ -3,6 +3,7 @@ export { Bedrock } from "./Bedrock"
export { Cerebras } from "./Cerebras"
export { Chutes } from "./Chutes"
export { ClaudeCode } from "./ClaudeCode"
+export { ClaudeCodeNative } from "./ClaudeCodeNative"
export { DeepSeek } from "./DeepSeek"
export { Doubao } from "./Doubao"
export { Gemini } from "./Gemini"
diff --git a/webview-ui/src/components/ui/hooks/useSelectedModel.ts b/webview-ui/src/components/ui/hooks/useSelectedModel.ts
index 99668eb74fc..91182059479 100644
--- a/webview-ui/src/components/ui/hooks/useSelectedModel.ts
+++ b/webview-ui/src/components/ui/hooks/useSelectedModel.ts
@@ -530,7 +530,14 @@ function getSelectedModel({
// case "human-relay":
// case "fake-ai":
default: {
- provider satisfies "anthropic" | "gemini-cli" | "qwen-code" | "human-relay" | "fake-ai" | "kilocode"
+ provider satisfies
+ | "anthropic"
+ | "gemini-cli"
+ | "qwen-code"
+ | "human-relay"
+ | "fake-ai"
+ | "kilocode"
+ | "claudecodenative"
const id = apiConfiguration.apiModelId ?? anthropicDefaultModelId
const baseInfo = anthropicModels[id as keyof typeof anthropicModels]
diff --git a/webview-ui/src/i18n/locales/ar/settings.json b/webview-ui/src/i18n/locales/ar/settings.json
index 4bb57148c69..e825220782b 100644
--- a/webview-ui/src/i18n/locales/ar/settings.json
+++ b/webview-ui/src/i18n/locales/ar/settings.json
@@ -630,7 +630,8 @@
"description": "مسار CLI اختياري (الافتراضي 'claude').",
"placeholder": "الافتراضي: claude",
"maxTokensLabel": "أقصى توكنات المخرجات",
- "maxTokensDescription": "الحد الأقصى لعدد توكنات المخرجات لردود Claude Code. الافتراضي هو 8000."
+ "maxTokensDescription": "الحد الأقصى لعدد توكنات المخرجات لردود Claude Code. الافتراضي هو 8000.",
+ "LongLivedToken": "رمز Claude Code طويل الأمد"
},
"geminiCli": {
"description": "يستخدم OAuth من أداة Gemini CLI ولا يحتاج مفاتيح.",
diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json
index c7a1f577afe..ba31ec9f9e7 100644
--- a/webview-ui/src/i18n/locales/ca/settings.json
+++ b/webview-ui/src/i18n/locales/ca/settings.json
@@ -591,7 +591,8 @@
"description": "Ruta opcional al teu CLI de Claude Code. Per defecte, 'claude' si no s'estableix.",
"placeholder": "Per defecte: claude",
"maxTokensLabel": "Tokens màxims de sortida",
- "maxTokensDescription": "Nombre màxim de tokens de sortida per a les respostes de Claude Code. El valor per defecte és 8000."
+ "maxTokensDescription": "Nombre màxim de tokens de sortida per a les respostes de Claude Code. El valor per defecte és 8000.",
+ "LongLivedToken": "Token de llarga durada de Claude Code"
},
"geminiCli": {
"description": "Aquest proveïdor utilitza l'autenticació OAuth de l'eina Gemini CLI i no requereix claus d'API.",
diff --git a/webview-ui/src/i18n/locales/cs/settings.json b/webview-ui/src/i18n/locales/cs/settings.json
index b30ef443623..339a2ea0ecb 100644
--- a/webview-ui/src/i18n/locales/cs/settings.json
+++ b/webview-ui/src/i18n/locales/cs/settings.json
@@ -621,7 +621,8 @@
"description": "Volitelná cesta k vašemu CLI Claude Code. Ve výchozím nastavení 'claude', pokud není nastaveno.",
"placeholder": "Výchozí: claude",
"maxTokensLabel": "Maximální počet výstupních tokenů",
- "maxTokensDescription": "Maximální počet výstupních tokenů pro odpovědi Claude Code. Výchozí je 8000."
+ "maxTokensDescription": "Maximální počet výstupních tokenů pro odpovědi Claude Code. Výchozí je 8000.",
+ "LongLivedToken": "Dlouhodobý token Claude Code"
},
"geminiCli": {
"description": "Tento poskytovatel používá OAuth autentizaci z nástroje Gemini CLI a nevyžaduje klíče API.",
diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json
index 9cce9de263a..f7762403816 100644
--- a/webview-ui/src/i18n/locales/de/settings.json
+++ b/webview-ui/src/i18n/locales/de/settings.json
@@ -600,7 +600,8 @@
"description": "Optionaler Pfad zu Ihrer Claude Code CLI. Standard ist 'claude', wenn nicht festgelegt.",
"placeholder": "Standard: claude",
"maxTokensLabel": "Maximale Ausgabe-Tokens",
- "maxTokensDescription": "Maximale Anzahl an Ausgabe-Tokens für Claude Code-Antworten. Standard ist 8000."
+ "maxTokensDescription": "Maximale Anzahl an Ausgabe-Tokens für Claude Code-Antworten. Standard ist 8000.",
+ "LongLivedToken": "Claude Code Long Lived Token"
},
"geminiCli": {
"description": "Dieser Anbieter verwendet OAuth-Authentifizierung vom Gemini CLI-Tool und benötigt keine API-Schlüssel.",
diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json
index 26e31178007..9868f021aaa 100644
--- a/webview-ui/src/i18n/locales/en/settings.json
+++ b/webview-ui/src/i18n/locales/en/settings.json
@@ -611,7 +611,8 @@
"description": "Optional path to your Claude Code CLI. Defaults to 'claude' if not set.",
"placeholder": "Default: claude",
"maxTokensLabel": "Max Output Tokens",
- "maxTokensDescription": "Maximum number of output tokens for Claude Code responses. Default is 8000."
+ "maxTokensDescription": "Maximum number of output tokens for Claude Code responses. Default is 8000.",
+ "LongLivedToken": "Claude Code Long Lived Token"
},
"geminiCli": {
"description": "This provider uses OAuth authentication from the Gemini CLI tool and does not require API keys.",
diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json
index 96a2abd3c59..ee93c2d3122 100644
--- a/webview-ui/src/i18n/locales/es/settings.json
+++ b/webview-ui/src/i18n/locales/es/settings.json
@@ -574,7 +574,8 @@
"description": "Ruta opcional a su CLI de Claude Code. Por defecto, es 'claude' si no se establece.",
"placeholder": "Por defecto: claude",
"maxTokensLabel": "Tokens máximos de salida",
- "maxTokensDescription": "Número máximo de tokens de salida para las respuestas de Claude Code. El valor predeterminado es 8000."
+ "maxTokensDescription": "Número máximo de tokens de salida para las respuestas de Claude Code. El valor predeterminado es 8000.",
+ "LongLivedToken": "Token de larga duración de Claude Code"
},
"geminiCli": {
"description": "Este proveedor usa autenticación OAuth de la herramienta Gemini CLI y no requiere claves API.",
diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json
index c713296abb9..f813479775b 100644
--- a/webview-ui/src/i18n/locales/fr/settings.json
+++ b/webview-ui/src/i18n/locales/fr/settings.json
@@ -574,7 +574,8 @@
"description": "Chemin facultatif vers votre CLI Claude Code. La valeur par défaut est 'claude' si non défini.",
"placeholder": "Défaut : claude",
"maxTokensLabel": "Jetons de sortie max",
- "maxTokensDescription": "Nombre maximum de jetons de sortie pour les réponses de Claude Code. La valeur par défaut est 8000."
+ "maxTokensDescription": "Nombre maximum de jetons de sortie pour les réponses de Claude Code. La valeur par défaut est 8000.",
+ "LongLivedToken": "Jeton de longue durée Claude Code"
},
"geminiCli": {
"description": "Ce fournisseur utilise l'authentification OAuth de l'outil Gemini CLI et ne nécessite pas de clés API.",
diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json
index 5f170c81e49..38afa9523cf 100644
--- a/webview-ui/src/i18n/locales/hi/settings.json
+++ b/webview-ui/src/i18n/locales/hi/settings.json
@@ -591,7 +591,8 @@
"description": "आपके क्लाउड कोड सीएलआई का वैकल्पिक पथ। यदि सेट नहीं है तो डिफ़ॉल्ट 'claude' है।",
"placeholder": "डिफ़ॉल्ट: claude",
"maxTokensLabel": "अधिकतम आउटपुट टोकन",
- "maxTokensDescription": "Claude Code प्रतिक्रियाओं के लिए आउटपुट टोकन की अधिकतम संख्या। डिफ़ॉल्ट 8000 है।"
+ "maxTokensDescription": "Claude Code प्रतिक्रियाओं के लिए आउटपुट टोकन की अधिकतम संख्या। डिफ़ॉल्ट 8000 है।",
+ "LongLivedToken": "Claude Code लॉन्ग लिव्ड टोकन"
},
"geminiCli": {
"description": "यह प्रदाता Gemini CLI टूल से OAuth प्रमाणीकरण का उपयोग करता है और API कुंजियों की आवश्यकता नहीं है।",
diff --git a/webview-ui/src/i18n/locales/id/settings.json b/webview-ui/src/i18n/locales/id/settings.json
index 1f2969b257f..bb64c36e571 100644
--- a/webview-ui/src/i18n/locales/id/settings.json
+++ b/webview-ui/src/i18n/locales/id/settings.json
@@ -591,7 +591,8 @@
"description": "Jalur opsional ke Claude Code CLI Anda. Defaultnya adalah 'claude' jika tidak diatur.",
"placeholder": "Default: claude",
"maxTokensLabel": "Token Output Maks",
- "maxTokensDescription": "Jumlah maksimum token output untuk respons Claude Code. Default adalah 8000."
+ "maxTokensDescription": "Jumlah maksimum token output untuk respons Claude Code. Default adalah 8000.",
+ "LongLivedToken": "Token Berumur Panjang Claude Code"
},
"geminiCli": {
"description": "Penyedia ini menggunakan autentikasi OAuth dari alat Gemini CLI dan tidak memerlukan kunci API.",
diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json
index 70455bee4e5..809f3cf733d 100644
--- a/webview-ui/src/i18n/locales/it/settings.json
+++ b/webview-ui/src/i18n/locales/it/settings.json
@@ -601,7 +601,8 @@
"description": "Percorso facoltativo per la tua CLI Claude Code. Predefinito 'claude' se non impostato.",
"placeholder": "Predefinito: claude",
"maxTokensLabel": "Token di output massimi",
- "maxTokensDescription": "Numero massimo di token di output per le risposte di Claude Code. Il valore predefinito è 8000."
+ "maxTokensDescription": "Numero massimo di token di output per le risposte di Claude Code. Il valore predefinito è 8000.",
+ "LongLivedToken": "Token a lunga durata Claude Code"
},
"geminiCli": {
"description": "Questo provider utilizza l'autenticazione OAuth dallo strumento Gemini CLI e non richiede chiavi API.",
diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json
index ccf1e2b664b..1853d6b0731 100644
--- a/webview-ui/src/i18n/locales/ja/settings.json
+++ b/webview-ui/src/i18n/locales/ja/settings.json
@@ -592,7 +592,8 @@
"description": "Claude Code CLIへのオプションパス。設定されていない場合、デフォルトは「claude」です。",
"placeholder": "デフォルト:claude",
"maxTokensLabel": "最大出力トークン",
- "maxTokensDescription": "Claude Codeレスポンスの最大出力トークン数。デフォルトは8000です。"
+ "maxTokensDescription": "Claude Codeレスポンスの最大出力トークン数。デフォルトは8000です。",
+ "LongLivedToken": "Claude Code 長期トークン"
},
"geminiCli": {
"description": "このプロバイダーはGemini CLIツールからのOAuth認証を使用し、APIキーは必要ありません。",
diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json
index 8f6079715ef..73f55c24d2a 100644
--- a/webview-ui/src/i18n/locales/ko/settings.json
+++ b/webview-ui/src/i18n/locales/ko/settings.json
@@ -591,7 +591,8 @@
"description": "Claude Code CLI의 선택적 경로입니다. 설정하지 않으면 'claude'가 기본값입니다.",
"placeholder": "기본값: claude",
"maxTokensLabel": "최대 출력 토큰",
- "maxTokensDescription": "Claude Code 응답의 최대 출력 토큰 수. 기본값은 8000입니다."
+ "maxTokensDescription": "Claude Code 응답의 최대 출력 토큰 수. 기본값은 8000입니다.",
+ "LongLivedToken": "Claude Code 장기 토큰"
},
"geminiCli": {
"description": "이 공급자는 Gemini CLI 도구의 OAuth 인증을 사용하며 API 키가 필요하지 않습니다.",
diff --git a/webview-ui/src/i18n/locales/nl/settings.json b/webview-ui/src/i18n/locales/nl/settings.json
index 6e9e5d29768..40ce5bcffa6 100644
--- a/webview-ui/src/i18n/locales/nl/settings.json
+++ b/webview-ui/src/i18n/locales/nl/settings.json
@@ -591,7 +591,8 @@
"description": "Optioneel pad naar uw Claude Code CLI. Standaard 'claude' als niet ingesteld.",
"placeholder": "Standaard: claude",
"maxTokensLabel": "Max Output Tokens",
- "maxTokensDescription": "Maximaal aantal output-tokens voor Claude Code-reacties. Standaard is 8000."
+ "maxTokensDescription": "Maximaal aantal output-tokens voor Claude Code-reacties. Standaard is 8000.",
+ "LongLivedToken": "Claude Code Long Lived Token"
},
"geminiCli": {
"description": "Deze provider gebruikt OAuth-authenticatie van de Gemini CLI-tool en vereist geen API-sleutels.",
diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json
index df1b606903e..434bee8c16f 100644
--- a/webview-ui/src/i18n/locales/pl/settings.json
+++ b/webview-ui/src/i18n/locales/pl/settings.json
@@ -591,7 +591,8 @@
"description": "Opcjonalna ścieżka do Twojego CLI Claude Code. Domyślnie 'claude', jeśli nie ustawiono.",
"placeholder": "Domyślnie: claude",
"maxTokensLabel": "Maksymalna liczba tokenów wyjściowych",
- "maxTokensDescription": "Maksymalna liczba tokenów wyjściowych dla odpowiedzi Claude Code. Domyślnie 8000."
+ "maxTokensDescription": "Maksymalna liczba tokenów wyjściowych dla odpowiedzi Claude Code. Domyślnie 8000.",
+ "LongLivedToken": "Długotrwały token Claude Code"
},
"geminiCli": {
"description": "Ten dostawca używa uwierzytelniania OAuth z narzędzia Gemini CLI i nie wymaga kluczy API.",
diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json
index 05254deeebe..42a98267e6b 100644
--- a/webview-ui/src/i18n/locales/pt-BR/settings.json
+++ b/webview-ui/src/i18n/locales/pt-BR/settings.json
@@ -565,7 +565,8 @@
"description": "Caminho opcional para o seu Claude Code CLI. O padrão é 'claude' se não for definido.",
"placeholder": "Padrão: claude",
"maxTokensLabel": "Tokens de saída máximos",
- "maxTokensDescription": "Número máximo de tokens de saída para respostas do Claude Code. O padrão é 8000."
+ "maxTokensDescription": "Número máximo de tokens de saída para respostas do Claude Code. O padrão é 8000.",
+ "LongLivedToken": "Token de longa duração do Claude Code"
},
"geminiCli": {
"description": "Este provedor usa autenticação OAuth da ferramenta Gemini CLI e não requer chaves de API.",
diff --git a/webview-ui/src/i18n/locales/ru/settings.json b/webview-ui/src/i18n/locales/ru/settings.json
index 80f8af0d31f..d809e80e94e 100644
--- a/webview-ui/src/i18n/locales/ru/settings.json
+++ b/webview-ui/src/i18n/locales/ru/settings.json
@@ -591,7 +591,8 @@
"description": "Необязательный путь к вашему Claude Code CLI. По умолчанию используется 'claude', если не установлено.",
"placeholder": "По умолчанию: claude",
"maxTokensLabel": "Макс. выходных токенов",
- "maxTokensDescription": "Максимальное количество выходных токенов для ответов Claude Code. По умолчанию 8000."
+ "maxTokensDescription": "Максимальное количество выходных токенов для ответов Claude Code. По умолчанию 8000.",
+ "LongLivedToken": "Долговечный токен Claude Code"
},
"geminiCli": {
"description": "Этот провайдер использует OAuth-аутентификацию из инструмента Gemini CLI и не требует API-ключей.",
diff --git a/webview-ui/src/i18n/locales/th/settings.json b/webview-ui/src/i18n/locales/th/settings.json
index 6920f3b78cf..95bff2a8c2f 100644
--- a/webview-ui/src/i18n/locales/th/settings.json
+++ b/webview-ui/src/i18n/locales/th/settings.json
@@ -589,7 +589,8 @@
"description": "เส้นทางที่ไม่บังคับไปยัง Claude Code CLI ของคุณ ค่าเริ่มต้นคือ 'claude' หากไม่ได้ตั้งค่า",
"placeholder": "ค่าเริ่มต้น: claude",
"maxTokensLabel": "โทเค็นเอาต์พุตสูงสุด",
- "maxTokensDescription": "จำนวนโทเค็นเอาต์พุตสูงสุดสำหรับการตอบสนองของ Claude Code ค่าเริ่มต้นคือ 8000"
+ "maxTokensDescription": "จำนวนโทเค็นเอาต์พุตสูงสุดสำหรับการตอบสนองของ Claude Code ค่าเริ่มต้นคือ 8000",
+ "LongLivedToken": "โทเค็นอายุยืนของ Claude Code"
},
"geminiCli": {
"description": "ผู้ให้บริการนี้ใช้การยืนยันตัวตน OAuth จากเครื่องมือ Gemini CLI และไม่ต้องการกุญแจ API",
diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json
index 03253251547..5a6c5071963 100644
--- a/webview-ui/src/i18n/locales/tr/settings.json
+++ b/webview-ui/src/i18n/locales/tr/settings.json
@@ -566,7 +566,8 @@
"description": "Claude Code CLI'nize isteğe bağlı yol. Ayarlanmazsa varsayılan olarak 'claude' kullanılır.",
"placeholder": "Varsayılan: claude",
"maxTokensLabel": "Maksimum Çıktı Token sayısı",
- "maxTokensDescription": "Claude Code yanıtları için maksimum çıktı token sayısı. Varsayılan 8000'dir."
+ "maxTokensDescription": "Claude Code yanıtları için maksimum çıktı token sayısı. Varsayılan 8000'dir.",
+ "LongLivedToken": "Claude Code Uzun Ömürlü Token"
},
"geminiCli": {
"description": "Bu sağlayıcı Gemini CLI aracından OAuth kimlik doğrulaması kullanır ve API anahtarları gerektirmez.",
diff --git a/webview-ui/src/i18n/locales/uk/settings.json b/webview-ui/src/i18n/locales/uk/settings.json
index a64c5be61ca..9b3e4cd9f31 100644
--- a/webview-ui/src/i18n/locales/uk/settings.json
+++ b/webview-ui/src/i18n/locales/uk/settings.json
@@ -629,7 +629,8 @@
"description": "Необов'язковий шлях до вашого Claude Code CLI. За замовчуванням 'claude', якщо не встановлено.",
"placeholder": "За замовчуванням: claude",
"maxTokensLabel": "Макс. вихідних токенів",
- "maxTokensDescription": "Максимальна кількість вихідних токенів для відповідей Claude Code. За замовчуванням 8000."
+ "maxTokensDescription": "Максимальна кількість вихідних токенів для відповідей Claude Code. За замовчуванням 8000.",
+ "LongLivedToken": "Довговічний токен Claude Code"
},
"geminiCli": {
"description": "Цей провайдер використовує OAuth-аутентифікацію інструменту Gemini CLI і не потребує API-ключів.",
diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json
index b7a24d909a8..2791bb76676 100644
--- a/webview-ui/src/i18n/locales/vi/settings.json
+++ b/webview-ui/src/i18n/locales/vi/settings.json
@@ -591,7 +591,8 @@
"description": "Đường dẫn tùy chọn đến Claude Code CLI của bạn. Mặc định là 'claude' nếu không được đặt.",
"placeholder": "Mặc định: claude",
"maxTokensLabel": "Số token đầu ra tối đa",
- "maxTokensDescription": "Số lượng token đầu ra tối đa cho các phản hồi của Claude Code. Mặc định là 8000."
+ "maxTokensDescription": "Số lượng token đầu ra tối đa cho các phản hồi của Claude Code. Mặc định là 8000.",
+ "LongLivedToken": "Token Claude Code dài hạn"
},
"geminiCli": {
"description": "Nhà cung cấp này sử dụng xác thực OAuth từ công cụ Gemini CLI và không yêu cầu khóa API.",
diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json
index d4db3a3c159..31cfe2ebd0b 100644
--- a/webview-ui/src/i18n/locales/zh-CN/settings.json
+++ b/webview-ui/src/i18n/locales/zh-CN/settings.json
@@ -591,7 +591,8 @@
"description": "您的 Claude Code CLI 的可选路径。如果未设置,则默认为 “claude”。",
"placeholder": "默认:claude",
"maxTokensLabel": "最大输出 Token",
- "maxTokensDescription": "Claude Code 响应的最大输出 Token 数量。默认为 8000。"
+ "maxTokensDescription": "Claude Code 响应的最大输出 Token 数量。默认为 8000。",
+ "LongLivedToken": "Claude Code 长期 Token"
},
"geminiCli": {
"description": "此提供商使用 Gemini CLI 工具的 OAuth 身份验证,不需要 API 密钥。",
diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json
index 3303f9bc025..2db4065bf02 100644
--- a/webview-ui/src/i18n/locales/zh-TW/settings.json
+++ b/webview-ui/src/i18n/locales/zh-TW/settings.json
@@ -566,7 +566,8 @@
"description": "可選的 Claude Code CLI 路徑。如果未設定,則預設為 'claude'。",
"placeholder": "預設:claude",
"maxTokensLabel": "最大輸出 Token",
- "maxTokensDescription": "Claude Code 回應的最大輸出 Token 數量。預設為 8000。"
+ "maxTokensDescription": "Claude Code 回應的最大輸出 Token 數量。預設為 8000。",
+ "LongLivedToken": "Claude Code 長期 Token"
},
"geminiCli": {
"description": "此供應商使用 Gemini CLI 工具的 OAuth 身份驗證,不需要 API 金鑰。",