Przejdź do głównej zawartości

Dokumentacja konfiguracji

Claudex uzywa warstwowej konfiguracji przez figment. Zrodla sa laczane w nastepujacej kolejnosci (pozniejsze nadpisuja wczesniejsze):

  1. Domyslne programowe
  2. Konfiguracja globalna (~/.config/claudex/config.toml lub .yaml)
  3. Konfiguracja projektu (claudex.toml/.claudex/config.toml w CWD lub katalogach nadrzednych, lub $CLAUDEX_CONFIG)
  4. Zmienne srodowiskowe (prefiks CLAUDEX_, separator __)

Obslugiwane sa oba formaty TOML i YAML.

Szczegoly w sekcji Konfiguracja.

# Sciezka do pliku binarnego claude (domyslnie: "claude" z PATH)
claude_binary = "claude"
# Port nasluchiwania serwera proxy
proxy_port = 13456
# Adres nasluchiwania serwera proxy
proxy_host = "127.0.0.1"
# Poziom logowania: trace, debug, info, warn, error
log_level = "info"
# Hiperlinki terminala (OSC 8): "auto" | true | false
hyperlinks = "auto"
PoleTypDomyslnieOpis
claude_binarystring"claude"Sciezka do pliku binarnego Claude Code CLI
proxy_portinteger13456Port, na ktorym nasluchuje proxy tlumaczace
proxy_hoststring"127.0.0.1"Adres, do ktorego binduje sie proxy
log_levelstring"info"Minimalny poziom logowania
hyperlinksstring/bool"auto"Hiperlinki terminala: "auto" (wykrywanie), true (wymus wlaczenie), false (wymus wylaczenie)

Definiuj skrocone nazwy dla identyfikatorow modeli:

[model_aliases]
grok3 = "grok-3-beta"
gpt4o = "gpt-4o"
ds3 = "deepseek-chat"
claude = "claude-sonnet-4-20250514"

Uzyj aliasow z -m:

Okno terminala
claudex run grok -m grok3
[[profiles]]
name = "grok"
provider_type = "OpenAICompatible"
base_url = "https://api.x.ai/v1"
api_key = "xai-..."
# api_key_keyring = "grok-api-key"
default_model = "grok-3-beta"
auth_type = "api-key" # "api-key" (domyslnie) lub "oauth"
# oauth_provider = "openai" # wymagane gdy auth_type = "oauth"
backup_providers = ["deepseek"]
custom_headers = {}
extra_env = {}
priority = 100
enabled = true
max_tokens = 16384 # opcjonalnie: limit tokenow wyjsciowych
strip_params = "auto" # "auto" | "none" | ["temperature", "top_p"]
# Parametry zapytania URL (np. Azure api-version)
[profiles.query_params]
# api-version = "2024-12-01-preview"
# Mapowanie slotow modeli (opcjonalne)
[profiles.models]
haiku = "grok-3-mini-beta"
sonnet = "grok-3-beta"
opus = "grok-3-beta"
PoleTypDomyslnieOpis
namestringwymaganeUnikalny identyfikator profilu
provider_typestring"DirectAnthropic""DirectAnthropic", "OpenAICompatible" lub "OpenAIResponses"
base_urlstringwymaganeURL endpointu API dostawcy
api_keystring""Klucz API w postaci zwyklego tekstu
api_key_keyringstringNazwa wpisu w lancuchu kluczy systemu operacyjnego (nadpisuje api_key)
default_modelstringwymaganeIdentyfikator modelu uzywany domyslnie
auth_typestring"api-key"Metoda uwierzytelniania: "api-key" lub "oauth"
oauth_providerstringNazwa dostawcy OAuth. Jedna z: claude, openai, google, qwen, kimi, github, gitlab
backup_providersstring[][]Nazwy profili do przelaczania awaryjnego, probowane kolejno
custom_headersmap{}Dodatkowe naglowki HTTP wysylane z kazdym zadaniem
extra_envmap{}Zmienne srodowiskowe ustawiane podczas uruchamiania Claude
priorityinteger100Waga priorytetu dla inteligentnego trasowania (wyzszy = preferowany)
enabledbooleantrueCzy profil jest aktywny
max_tokensintegerLimit maksymalnych tokenow wyjsciowych wysylanych do dostawcy. Gdy ustawiony, nadpisuje max_tokens w zadaniach
strip_paramsstring/array"auto"Parametry do usuniecia z zadan. "auto" wykrywa znane endpointy; "none" wysyla wszystko; tablica usuwa konkretne parametry
[profiles.query_params]
api-version = "2024-12-01-preview"
PoleTypOpis
query_paramsmapPary klucz-wartosc dolaczane jako parametry zapytania URL do kazdego zadania

Uzywane glownie dla Azure OpenAI (api-version), ale dziala z dowolnym dostawca.

Opcjonalna tabela [profiles.models] mapuje sloty przelacznika /model Claude Code na nazwy modeli specyficzne dla dostawcy. Gdy przelaczasz modele wewnatrz Claude Code (np. /model opus), Claudex tlumaczy zadanie na zmapowany model.

[profiles.models]
haiku = "grok-3-mini-beta" # mapuje /model haiku
sonnet = "grok-3-beta" # mapuje /model sonnet
opus = "grok-3-beta" # mapuje /model opus
PoleTypOpis
haikustringModel uzywany gdy Claude Code wybiera haiku
sonnetstringModel uzywany gdy Claude Code wybiera sonnet
opusstringModel uzywany gdy Claude Code wybiera opus
# Anthropic (DirectAnthropic — bez tlumaczenia)
[[profiles]]
name = "anthropic"
provider_type = "DirectAnthropic"
base_url = "https://api.anthropic.com"
api_key = "sk-ant-..."
default_model = "claude-sonnet-4-20250514"
# MiniMax (DirectAnthropic — bez tlumaczenia)
[[profiles]]
name = "minimax"
provider_type = "DirectAnthropic"
base_url = "https://api.minimax.io/anthropic"
api_key = "..."
default_model = "claude-sonnet-4-20250514"
backup_providers = ["anthropic"]
# OpenRouter (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "openrouter"
provider_type = "OpenAICompatible"
base_url = "https://openrouter.ai/api/v1"
api_key = "..."
default_model = "anthropic/claude-sonnet-4"
# Grok (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "grok"
provider_type = "OpenAICompatible"
base_url = "https://api.x.ai/v1"
api_key = "xai-..."
default_model = "grok-3-beta"
backup_providers = ["deepseek"]
# OpenAI (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "chatgpt"
provider_type = "OpenAICompatible"
base_url = "https://api.openai.com/v1"
api_key = "sk-..."
default_model = "gpt-4o"
# DeepSeek (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "deepseek"
provider_type = "OpenAICompatible"
base_url = "https://api.deepseek.com"
api_key = "..."
default_model = "deepseek-chat"
backup_providers = ["grok"]
# Kimi / Moonshot (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "kimi"
provider_type = "OpenAICompatible"
base_url = "https://api.moonshot.ai/v1"
api_key = "..."
default_model = "kimi-k2-0905-preview"
# GLM / Zhipu (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "glm"
provider_type = "OpenAICompatible"
base_url = "https://api.z.ai/api/paas/v4"
api_key = "..."
default_model = "glm-4.6"
# Groq (OpenAICompatible — szybka inferencja)
[[profiles]]
name = "groq"
provider_type = "OpenAICompatible"
base_url = "https://api.groq.com/openai/v1"
api_key = "gsk_..."
default_model = "llama-3.3-70b-versatile"
# Mistral AI (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "mistral"
provider_type = "OpenAICompatible"
base_url = "https://api.mistral.ai/v1"
api_key = "..."
default_model = "mistral-large-latest"
# Together AI (OpenAICompatible — wymaga tlumaczenia)
[[profiles]]
name = "together"
provider_type = "OpenAICompatible"
base_url = "https://api.together.xyz/v1"
api_key = "..."
default_model = "meta-llama/Llama-3.3-70B-Instruct-Turbo"
# Perplexity (OpenAICompatible — wyszukiwanie online + LLM)
[[profiles]]
name = "perplexity"
provider_type = "OpenAICompatible"
base_url = "https://api.perplexity.ai"
api_key = "pplx-..."
default_model = "sonar-pro"
# Cerebras (OpenAICompatible — szybka inferencja)
[[profiles]]
name = "cerebras"
provider_type = "OpenAICompatible"
base_url = "https://api.cerebras.ai/v1"
api_key = "..."
default_model = "llama-3.3-70b"
# Azure OpenAI (OpenAICompatible — naglowek api-key + query_params)
[[profiles]]
name = "azure-openai"
provider_type = "OpenAICompatible"
base_url = "https://YOUR_RESOURCE.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT"
api_key = "YOUR_AZURE_KEY"
default_model = "gpt-4o"
[profiles.query_params]
api-version = "2024-12-01-preview"
# Google Vertex AI (DirectAnthropic)
[[profiles]]
name = "vertex-ai"
provider_type = "DirectAnthropic"
base_url = "https://us-east5-aiplatform.googleapis.com/v1/projects/YOUR_PROJECT/locations/us-east5/publishers/anthropic/models"
api_key = "YOUR_GCLOUD_TOKEN"
default_model = "claude-sonnet-4@20250514"
# Ollama (lokalny, bez klucza API)
[[profiles]]
name = "local-qwen"
provider_type = "OpenAICompatible"
base_url = "http://localhost:11434/v1"
api_key = ""
default_model = "qwen2.5:72b"
enabled = false
# vLLM / LM Studio (lokalny)
[[profiles]]
name = "local-llama"
provider_type = "OpenAICompatible"
base_url = "http://localhost:8000/v1"
api_key = ""
default_model = "llama-3.3-70b"
enabled = false
# Claude Max (pomija proxy, uzywa natywnego OAuth Claude z ~/.claude)
[[profiles]]
name = "claude-max"
provider_type = "DirectAnthropic"
base_url = "https://api.claude.ai"
default_model = "claude-sonnet-4-20250514"
auth_type = "oauth"
oauth_provider = "claude"
[profiles.models]
haiku = "claude-haiku-4-20250514"
sonnet = "claude-sonnet-4-20250514"
opus = "claude-opus-4-20250514"
# Subskrypcja ChatGPT/Codex (OpenAIResponses)
[[profiles]]
name = "codex-sub"
provider_type = "OpenAIResponses"
base_url = "https://chatgpt.com/backend-api/codex"
default_model = "gpt-5.3-codex"
auth_type = "oauth"
oauth_provider = "openai"
[profiles.models]
haiku = "codex-mini-latest"
sonnet = "gpt-5.3-codex"
opus = "gpt-5.3-codex"
# Google Gemini przez OAuth
[[profiles]]
name = "gemini-sub"
provider_type = "OpenAICompatible"
base_url = "https://generativelanguage.googleapis.com/v1beta/openai"
default_model = "gemini-2.5-pro"
auth_type = "oauth"
oauth_provider = "google"
# Kimi przez OAuth
[[profiles]]
name = "kimi-oauth"
provider_type = "OpenAICompatible"
base_url = "https://api.moonshot.cn/v1"
default_model = "moonshot-v1-128k"
auth_type = "oauth"
oauth_provider = "kimi"
# Qwen przez OAuth
[[profiles]]
name = "qwen-oauth"
provider_type = "OpenAICompatible"
base_url = "https://chat.qwen.ai/api"
default_model = "qwen3-235b-a22b"
auth_type = "oauth"
oauth_provider = "qwen"
# GitHub Copilot przez OAuth
[[profiles]]
name = "copilot"
provider_type = "OpenAICompatible"
base_url = "https://api.githubcopilot.com"
default_model = "gpt-4o"
auth_type = "oauth"
oauth_provider = "github"
# GitLab Duo przez GITLAB_TOKEN
[[profiles]]
name = "gitlab-duo"
provider_type = "OpenAICompatible"
base_url = "https://gitlab.com/api/v4/ai/llm/proxy"
default_model = "claude-sonnet-4-20250514"
auth_type = "oauth"
oauth_provider = "gitlab"
[router]
enabled = false
profile = "local-qwen" # ponowne uzycie base_url + api_key profilu
model = "qwen2.5:3b" # nadpisanie modelu (opcjonalne)
PoleTypDomyslnieOpis
enabledbooleanfalseWlacz inteligentne trasowanie
profilestring""Nazwa profilu do ponownego uzycia do klasyfikacji (uzywa jego base_url + api_key)
modelstring""Nadpisanie modelu do klasyfikacji (domyslnie default_model profilu)
[router.rules]
code = "deepseek"
analysis = "grok"
creative = "chatgpt"
search = "kimi"
math = "deepseek"
default = "grok"
KluczOpis
codeProfil dla zadan programistycznych
analysisProfil dla analizy i rozumowania
creativeProfil dla pisania kreatywnego
searchProfil dla wyszukiwania i badan
mathProfil dla matematyki i logiki
defaultZapasowy gdy intencja nie jest sklasyfikowana
[context.compression]
enabled = false
threshold_tokens = 50000
keep_recent = 10
profile = "local-qwen" # ponowne uzycie base_url + api_key profilu
model = "qwen2.5:3b" # nadpisanie modelu (opcjonalne)
PoleTypDomyslnieOpis
enabledbooleanfalseWlacz kompresje konwersacji
threshold_tokensinteger50000Kompresuj gdy liczba tokenow przekroczy te wartosc
keep_recentinteger10Zawsze zachowuj ostatnie N wiadomosci bez kompresji
profilestring""Nazwa profilu do ponownego uzycia do podsumowywania
modelstring""Nadpisanie modelu do podsumowywania
[context.sharing]
enabled = false
max_context_size = 2000
PoleTypDomyslnieOpis
enabledbooleanfalseWlacz udostepnianie kontekstu miedzy profilami
max_context_sizeinteger2000Maksymalna liczba tokenow do wstrzykniecia z innych profili
[context.rag]
enabled = false
index_paths = ["./src", "./docs"]
profile = "local-qwen" # ponowne uzycie base_url + api_key profilu
model = "nomic-embed-text" # model osadzen
chunk_size = 512
top_k = 5
PoleTypDomyslnieOpis
enabledbooleanfalseWlacz lokalny RAG
index_pathsstring[][]Katalogi do indeksowania
profilestring""Nazwa profilu do ponownego uzycia dla osadzen
modelstring""Nazwa modelu osadzen
chunk_sizeinteger512Rozmiar fragmentu tekstu w tokenach
top_kinteger5Liczba wynikow do wstrzykniecia