OpenCode + TokenTool
Получите отдельный ключ, проверьте dry-run, сохраните credential через /connect и примените конфиг с актуальной моделью без секретов в shell history.
Параметры подключения
Base URL
https://api.tokentool.ru/api/v1API Key
не хранить в коде— env или хранилище credential приложенияПолучить отдельный API-ключ TokenTool
Создай аккаунт, затем открой раздел API-ключи и выпусти отдельный ключ для OpenCode. Новый пользователь сначала может зарегистрироваться.
Не вставляй секрет в конфиг, Git или командную строку. Он понадобится ещё дважды: для штатного /connect и для безопасной передачи Rescue через stdin.
Установить OpenCode и выполнить dry-run
Если OpenCode уже установлен, пропусти установку и проверь версию:
npm install -g opencode-ai
opencode --versionДля уже настроенного bun можно использовать:
bun install -g opencode-ai
opencode --versionТеперь запусти dry-run. Он найдёт opencode.json или opencode.jsonc, покажет безопасный diff, не изменит файл и не откроет лишнюю вкладку авторизации:
npx --yes --package=https://tokentool.ru/downloads/tokentool-0.1.2.tgz tokentool rescue opencode --no-openRescue 0.1.2 не читает и не меняет auth.json, не принимает ключ аргументом командной строки и не записывает конфиг без --apply.
Скачать TokenTool Rescue 0.1.2SHA-256
SHA-256: 970e1348005959d2dc93697767715d93d832cbb6529efdac0c262b1337d6d2b6
Сохранить ключ через /connect
Запусти OpenCode и используй его штатное хранилище credential:
/connect
Other
provider id: tokentoolВставь ключ только в запрос OpenCode. Долгосрочно credential хранит OpenCode; Rescue этот файл не читает.
Выбрать model ID из живого каталога
Не копируй model ID из старых примеров. Открой живой каталог моделей или GET /models, выбери доступную текстовую модель и скопируй её ID. На следующем шаге замени ID_ИЗ_КАТАЛОГА этим значением.
Безопасно применить конфигурацию
Команды ниже запрашивают ключ скрытым вводом, передают его Rescue только через stdin и очищают временную переменную после выполнения. Сначала подставь выбранный model ID.
Windows PowerShell 7
$TokenToolKey = Read-Host 'TokenTool API key' -MaskInput
try {
$TokenToolKey | npx --yes --package=https://tokentool.ru/downloads/tokentool-0.1.2.tgz tokentool rescue opencode --key-stdin --model 'ID_ИЗ_КАТАЛОГА' --apply
} finally {
Remove-Variable TokenToolKey -ErrorAction SilentlyContinue
}macOS / Linux — bash
tokentool_apply() {
local TOKEN_TOOL_KEY status
IFS= read -r -s -p 'TokenTool API key: ' TOKEN_TOOL_KEY
printf '\n'
printf '%s\n' "$TOKEN_TOOL_KEY" | npx --yes --package=https://tokentool.ru/downloads/tokentool-0.1.2.tgz tokentool rescue opencode --key-stdin --model "ID_ИЗ_КАТАЛОГА" --apply
status=$?
unset TOKEN_TOOL_KEY
return "$status"
}
tokentool_apply
unset -f tokentool_applyЕсли diff действительно нужен, --apply до любой записи выполнит ровно один минимальный платный запрос. Только ответ HTTP 2xx с сообщением разрешает создать timestamp backup и атомарно обновить config.
При 401, 403, 5xx, timeout или пустом 2xx CLI завершится ошибкой: config и backup останутся нетронутыми. Если конфиг уже актуален, обычный --apply сделает только GET каталога: платного POST и backup не будет. Если явно добавить --smoke, изменяемый config переиспользует успешный pre-write smoke, а no-op выполнит ровно один явный smoke. В обоих случаях второго платного POST нет.
Запустить OpenCode и проверить модель
Успешный apply уже подтвердил реальный 2xx-ответ модели. Теперь перейди в папку проекта и запусти агент:
cd ~/my-project
opencodeВ OpenCode открой /models, выбери provider tokentool и проверенную модель, затем отправь короткий запрос.
Если не заработало:
- ✗Provider not found — снова запусти dry-run и проверь diff.
- ✗Unauthorized — повтори
/connectдля provider idtokentool. - ✗Model not found — выбери новый ID из текущего
/modelsи повтори apply.
Готово к работе?
Зарегистрируйтесь на TokenTool, получите API-ключ и подключите OpenCode + TokenTool за пару минут.