Перейти к основному содержимому

Полный справочник по конфигурации

Каждый ключ, который принимает ~/.opencli/config.toml. Для той горстки, которую трогает большинство, есть файл конфигурации — он короче.

Самый быстрый путь: пусть OpenCLI сам найдёт ваши модели​

Если у вас уже локально работают Ollama, LM Studio, vLLM или llama.cpp:

opencli provider scan

Он простукивает обычные порты на localhost, спрашивает у каждого найденного сервера, какие модели тот отдаёт, и пишет соответствующие разделы [model_providers.*] и [[models]] в ваш config.toml — существующие комментарии и настройки сохраняются. Добавьте --dry-run, чтобы сначала увидеть, что он собирается записать.

Для хостящихся поставщиков поставьте одного из каталога и задайте ключ:

opencli provider list # каталог плюс то, что уже настроено
opencli provider add openrouter
export OPENROUTER_API_KEY=...

В каталоге только сведения о подключении: никаких ключей с бинарником не поставляется, и ничего не действует, пока вы это не добавите. Чтобы настроить то, чего в каталоге нет, напишите разделы вручную, как описано ниже.

Заполнить возможности модели​

Окно контекста локальной модели и поддержка вызова инструментов нигде не опубликованы, а угадывать хуже, чем оставить незаданным: слишком большое окно контекста означает, что поставщик отклонит ход, вместо того чтобы автоматически сжать разговор. Спросите саму модель:

opencli model probe <slug> # добавьте --dry-run для предпросмотра

Это читает метаданные самой среды выполнения, где они есть (Ollama сообщает настоящую длину контекста и список возможностей) и вдобавок делает один живой запрос, чтобы увидеть, вызовет ли модель предложенный инструмент и возвращает ли она свои рассуждения в отдельном поле reasoning. Найденное записывается в запись [[models]] этой модели.

Модели, которые вообще не умеют вести диалог — например, эмбеддинговые — provider scan пропускает, так что до списка /model они не доходят.

Выбор моделей и поставщиков​

В этой сборке есть предустановки для нескольких шлюзов, но любую модель, доступную по OpenAI-совместимому API, можно настроить в ~/.opencli/config.toml без пересборки.

Добавить поставщика​

Записи в [model_providers.<id>] перекрывают встроенного поставщика с тем же id, так что это же и способ перенаправить встроенный шлюз на прокси или зеркало:

[model_providers.my-gateway]
name = "My Gateway"
base_url = "https://gateway.example.com/v1"
env_key = "MY_GATEWAY_API_KEY"
wire_api = "chat"
# По желанию: увеличьте, если этот шлюз медленно выдаёт первый токен.
stream_idle_timeout_ms = 90000

Ключи API всегда читаются из окружения; они никогда не хранятся в файле конфигурации.

Добавить модель​

Объявляйте модели через [[models]]. Они появляются в списке /model рядом со встроенными предустановками, а запись, чей model совпадает со встроенной предустановкой, заменяет её:

[[models]]
model = "qwen3-max"
provider = "my-gateway"
display_name = "Qwen3 Max" # необязательно, по умолчанию slug
description = "Своя установка." # необязательно
show_in_picker = true # необязательно, по умолчанию true

provider обязателен и должен называть поставщика, определённого выше, либо встроенного; модель, указывающая на неопределённого поставщика, отклоняется при запуске, а не падает потом с посторонней ошибкой.

Чтобы выбрать модель, не добавляя её в список, задайте model и model_provider напрямую:

model = "qwen3-max"
model_provider = "my-gateway"

Если model называет нечто, что не является ни встроенной предустановкой, ни записью [[models]], а model_provider не задан, запросы уходят к поставщику openai, и в журнал пишется предупреждение.

Окна контекста​

Модели, метаданных о которых у этой сборки нет, начинают с осторожного окна в 131 072 токена и узнают настоящее из первого отказа шлюза по превышению окна. Задайте model_context_window, чтобы прибить его явно.

Подключение к серверам MCP​

OpenCLI может подключаться к серверам MCP, объявленным в ~/.opencli/config.toml.

[mcp_servers.github]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env_vars = ["GITHUB_PERSONAL_ACCESS_TOKEN"]

[mcp_servers.internal]
url = "https://mcp.example.com/mcp"

env_vars называет переменные, нужные серверу; значения хранятся вместе с остальными вашими ключами, а не в этом файле, который отдают другим. Объявленный здесь сервер стартует со следующим открытым разговором, а не с тем, что перед вами.

Настольное приложение пишет ту же таблицу из Abilities → Connectors, где ещё и проверяется рукопожатие и перечисляются инструменты, которые предлагает каждый сервер.

Приложения (Connectors)​

Наберите $ в поле ввода, чтобы вставить коннектор ChatGPT; всплывающий список покажет доступные приложения. Команда /apps перечисляет доступные и установленные приложения. Подключённые идут первыми и помечены как подключённые; остальные помечены как доступные для установки.

Уведомления​

OpenCLI может запускать хук уведомления, когда агент завершает ход.

notify = ["/path/to/your/script.sh"]

Программа вызывается с одним аргументом: JSON-объектом с описанием того, что произошло. Она запускается отдельно, поэтому медленный скрипт не задерживает следующий ход, а упавший скрипт попадает в журнал, а не всплывает перед вами.

JSON Schema​

Сгенерированная JSON Schema для config.toml лежит в opencli-rs/core/config.schema.json и выкладывается с каждым релизом как config-schema.json. Направьте на неё редактор, и при ручной правке файла будут работать автодополнение и проверка.

Она генерируется из типов Rust, и CI падает, если она с ними разойдётся, — то есть это единственное описание этого файла, которое не может устареть.

Подсказки​

OpenCLI хранит отметки «больше не показывать» для некоторых подсказок интерфейса в таблице [notice].

Выход по Ctrl+C/Ctrl+D использует подсказку о повторном нажатии в пределах примерно секунды (ctrl + c again to quit).