Grok Build
CLI-агент xAI (`grok`): TUI, headless-скрипты, ACP. По умолчанию ходит на api.x.ai. К LLM Mart подключается как набор кастомных моделей в `~/.grok/config.toml`:
Что нужно
- Grok Build — установка:
curl -fsSL https://x.ai/cli/install.sh | bash - Ключ
sk-…в переменной окружения (не в git) - Slug из каталога — столько, сколько профилей будете переключать
Протокол
Три бэкенда в поле api_backend (если не указать — chat_completions):
api_backend | Куда уходит запрос | Base URL |
|---|---|---|
chat_completions | POST /v1/chat/completions | https://www.llmmart.ru/api/v1 |
responses | POST /v1/responses | https://www.llmmart.ru/api/v1 — только модели с responses |
messages | POST /v1/messages | https://www.llmmart.ru/api/v1 (Grok сам дописывает /messages) |
Ключ: Authorization: Bearer через env_key. Не кладите api_key в файл, если конфиг попадает в репозиторий.
Для messages в примере xAI ключ кладут в extra_headers как x-api-key. LLM Mart принимает и Bearer, и x-api-key.
Конфиг
Файл ~/.grok/config.toml (Windows: %USERPROFILE%\.grok\config.toml). Несколько блоков [model.<id>] — по одному на каждую модель, которую хотите видеть в /model.
[models]
default = "llmmart-sonnet"
[model.llmmart-mini]
model = "gpt-4o-mini"
base_url = "https://www.llmmart.ru/api/v1"
name = "GPT-4o mini (LLM Mart)"
env_key = "LLM_MART_API_KEY"
api_backend = "chat_completions"
context_window = 128000
[model.llmmart-sonnet]
model = "anthropic/claude-sonnet-5"
base_url = "https://www.llmmart.ru/api/v1"
name = "Claude Sonnet 5 (LLM Mart)"
env_key = "LLM_MART_API_KEY"
api_backend = "chat_completions"
context_window = 200000
[model.llmmart-opus]
model = "anthropic/claude-opus-4.6"
base_url = "https://www.llmmart.ru/api/v1"
name = "Claude Opus 4.6 (LLM Mart)"
env_key = "LLM_MART_API_KEY"
api_backend = "chat_completions"
context_window = 200000model — slug, который уйдёт в API. Имя секции (llmmart-sonnet) — то, что видно в пикере и в -m.
Для native Messages (thinking / prompt cache на native Anthropic) — отдельный профиль:
[model.llmmart-sonnet-messages]
model = "anthropic/claude-sonnet-5"
base_url = "https://www.llmmart.ru/api/v1"
name = "Claude Sonnet 5 (Messages)"
env_key = "LLM_MART_API_KEY"
api_backend = "messages"
context_window = 200000Для моделей только с Responses:
[model.llmmart-responses]
model = "gpt-4o-mini"
base_url = "https://www.llmmart.ru/api/v1"
name = "GPT-4o mini (Responses)"
env_key = "LLM_MART_API_KEY"
api_backend = "responses"export LLM_MART_API_KEY="sk-…"Не задавайте XAI_API_KEY в той же сессии, если не хотите, чтобы Grok ушёл на api.x.ai при промахе в env_key.
Подтянуть список с GET /v1/models (опционально):
[endpoints]
models_base_url = "https://www.llmmart.ru/api/v1"Либо GROK_MODELS_BASE_URL=https://www.llmmart.ru/api/v1. Тогда Grok берёт ключ из Authorization: Bearer и не требует grok login.
Запуск и проверка
grok inspect— в источниках конфига должен быть~/.grok/config.tomlи ваши[model.*].grok models— в списке профилиllmmart-*.- Headless:
grok -p "Hello" -m llmmart-sonnet. - В TUI:
/model llmmart-sonnetилиCtrl+M.
Типичные ошибки
| Симптом | Что проверить |
|---|---|
| Запросы на api.x.ai | задан [model.*] с base_url LLM Mart; не сработал fallback XAI_API_KEY / grok login |
| 401 | export LLM_MART_API_KEY, имя совпадает с env_key |
404 /v1/v1 | в base_url ровно один /v1 |
| 404 model_not_found | model = — slug каталога, не имя секции |
| Responses не открывается | у модели есть responses; иначе оставьте chat_completions |
| Авто-compaction слишком рано | задайте context_window явно: для новой модели Grok по умолчанию ставит 200000 |
Проверено: 2026-09-01 по Grok Build, Settings и справочнику TOML ([model.<id>], api_backend).
Что дальше
Hermes
Агент Nous Research (CLI `hermes`). Кастомный шлюз — не `OPENAI_BASE_URL` в `.env`: для всех провайдеров кроме прямого OpenAI источник — `~/.hermes/config.yaml`
OpenWorker
Десктопный агент (andrewyng/openworker): файлы, терминал, коннекторы, готовые «сотрудники» (security review, отчёты). Движок — aisuite. К LLM Mart подключается