Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ Public, auditable guided setup for routing local Codex CLI and Claude Code sessi

## Release compatibility

This version configures `https://neuroapi.host/v1/codex` with `supports_websockets = true`, and `https://neuroapi.host/v1/claude-code` for Claude Code. The Codex profile disables hosted web search, multi-agent, goals, apps, and browser use because the current client includes these tools even in simple local tasks, while NeuroAPI does not guarantee their upstream execution. Local shell and file tools remain available. Setup checks both key-scoped catalogs without a paid generation. Verify HTTP/WebSocket Responses and Claude Messages/count_tokens after each server release.
This version configures `https://codex.neuroapi.host/v1` with `supports_websockets = true`, and `https://claude.neuroapi.host` for Claude Code. The Codex profile disables hosted web search, multi-agent, goals, apps, and browser use because the current client includes these tools even in simple local tasks, while NeuroAPI does not guarantee their upstream execution. Local shell and file tools remain available. Setup checks both key-scoped catalogs without a paid generation. Verify HTTP/WebSocket Responses and Claude Messages/count_tokens after each server release.

An existing `CODEX_HOME` selects the profile directory without being modified. Keep its value consistent for setup, launch and uninstall.

Use a current Codex release whose `--help` describes `--profile` as loading `<name>.config.toml`. Update older clients that expect `[profiles.name]` in the main configuration. For WebSocket troubleshooting, temporarily set `supports_websockets = false` in the generated profile, keeping `/v1/codex` and its credential helper.
Use a current Codex release whose `--help` describes `--profile` as loading `<name>.config.toml`. Update older clients that expect `[profiles.name]` in the main configuration. For WebSocket troubleshooting, temporarily set `supports_websockets = false` in the generated profile, keeping `https://codex.neuroapi.host/v1` and its credential helper.

## Quick start

Expand Down Expand Up @@ -49,8 +49,8 @@ This prevents accidental plaintext disclosure. It does not protect a key from ma

## Verification

- In `codex-neuroapi`, run `/debug-config` and confirm the `neuroapi-host` profile and `https://neuroapi.host/v1/codex`.
- In `claude-neuroapi`, run `/status` and confirm `https://neuroapi.host/v1/claude-code` plus `apiKeyHelper`.
- In `codex-neuroapi`, run `/debug-config` and confirm the `neuroapi-host` profile and `https://codex.neuroapi.host/v1`.
- In `claude-neuroapi`, run `/status` and confirm `https://claude.neuroapi.host` plus `apiKeyHelper`.
- For Codex Desktop, check a new local task, `https://codex.neuroapi.host/v1` in the user config, and the request in your NeuroAPI usage logs. Setup uses HTTP/SSE for this GUI integration.
- Check current model IDs and pricing at [neuroapi.host/price](https://neuroapi.host/price).

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ NeuroAPI — российский AI API-сервис: единый доступ

## Совместимость версии

Эта версия создаёт профиль Codex с `https://neuroapi.host/v1/codex` и `supports_websockets = true`, а профиль Claude Code — с `https://neuroapi.host/v1/claude-code`. Codex-профиль отключает hosted web search, multi-agent, goals, apps и browser use: эти инструменты новейший клиент отправляет даже в простых задачах, а NeuroAPI пока не гарантирует их провайдерское исполнение. Локальные команды, чтение и редактирование файлов работают. Установщик проверяет доступ ключа к обоим каталогам без платной генерации. Генерацию через HTTP/WebSocket Responses и Claude Messages/count_tokens проверяйте после серверного релиза.
Эта версия создаёт профиль Codex с `https://codex.neuroapi.host/v1` и `supports_websockets = true`, а профиль Claude Code — с `https://claude.neuroapi.host`. Codex-профиль отключает hosted web search, multi-agent, goals, apps и browser use: эти инструменты новейший клиент отправляет даже в простых задачах, а NeuroAPI пока не гарантирует их провайдерское исполнение. Локальные команды, чтение и редактирование файлов работают. Установщик проверяет доступ ключа к обоим каталогам без платной генерации. Генерацию через HTTP/WebSocket Responses и Claude Messages/count_tokens проверяйте после серверного релиза.

Уже заданный `CODEX_HOME` учитывается для профиля и не изменяется; сохраняйте одинаковое значение при установке, запуске и удалении.

Нужен актуальный Codex с отдельными profile-файлами: `codex --help` должен описывать `--profile` как загрузку `<name>.config.toml`. Старые версии с `[profiles.name]` в общем конфиге обновите перед установкой. Для диагностики WebSocket можно временно поставить `supports_websockets = false` в созданном профиле, сохранив `/v1/codex` и credential helper. Подробнее — [решение проблем](docs/troubleshooting.md).
Нужен актуальный Codex с отдельными profile-файлами: `codex --help` должен описывать `--profile` как загрузку `<name>.config.toml`. Старые версии с `[profiles.name]` в общем конфиге обновите перед установкой. Для диагностики WebSocket можно временно поставить `supports_websockets = false` в созданном профиле, сохранив `https://codex.neuroapi.host/v1` и credential helper. Подробнее — [решение проблем](docs/troubleshooting.md).

## Установка в один запуск

Expand Down Expand Up @@ -74,7 +74,7 @@ bash setup-macos.command
| Codex Desktop по согласию | пользовательский `config.toml`, DPAPI helper, каталог доступных моделей | пользовательский `config.toml`, Keychain helper, каталог доступных моделей |
| Существующий `config.toml` | резервная копия и атомарное изменение только по согласию; конфликт останавливает установку | резервная копия и атомарное изменение только по согласию; конфликт останавливает установку |

Установщик отправляет ключ только в NeuroAPI для проверки доступных моделей; платной генерации при настройке нет. При запуске `codex-neuroapi` или `claude-neuroapi` запускатель вновь получает актуальный каталог с `https://neuroapi.host`, затем клиент использует API при ваших запросах.
Установщик отправляет ключ только в NeuroAPI для проверки доступных моделей; платной генерации при настройке нет. При запуске `codex-neuroapi` или `claude-neuroapi` запускатель вновь получает актуальный каталог с соответствующего субдомена NeuroAPI, затем клиент использует API при ваших запросах.

## Почему ключ не лежит в конфиге

Expand Down Expand Up @@ -111,13 +111,13 @@ Codex CLI:

1. Запустите `codex-neuroapi`.
2. Выполните `/debug-config`.
3. Проверьте профиль `neuroapi-host`, provider `neuroapi` и `https://neuroapi.host/v1/codex`.
3. Проверьте профиль `neuroapi-host`, provider `neuroapi` и `https://codex.neuroapi.host/v1`.

Claude Code:

1. Запустите `claude-neuroapi`.
2. Выполните `/status`.
3. Проверьте base URL `https://neuroapi.host/v1/claude-code` и credential source `apiKeyHelper`.
3. Проверьте base URL `https://claude.neuroapi.host` и credential source `apiKeyHelper`.

При каждом запуске launcher получает актуальный список для вашего обычного ключа NeuroAPI. Codex использует отдельный каталог, Claude Code — настроенное меню; фиксированных моделей в установщике нет. Проверенные минимумы: Codex 0.158.0 и Claude Code 2.1.284. Для Claude Code установщик задаёт начальный лимит вывода 4096 токенов, чтобы запросы с большим стандартным лимитом не резервировали избыточную квоту. При ошибке обновления или пустом списке запуск останавливается, не возвращаясь к старым моделям. Подробности и ограничения managed-политик: [ручная настройка](docs/manual-setup.md).

Expand Down
12 changes: 6 additions & 6 deletions docs/manual-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ browser_use = false

[model_providers.neuroapi]
name = "NeuroAPI"
base_url = "https://neuroapi.host/v1/codex"
base_url = "https://codex.neuroapi.host/v1"
wire_api = "responses"
supports_websockets = true

Expand All @@ -39,7 +39,7 @@ refresh_interval_ms = 300000

Codex 0.158.0 по умолчанию добавляет к каждому запросу hosted `web_search` и namespace-инструмент для multi-agent, даже при локальном чтении файла. NeuroAPI не объявляет эти инструменты как поддерживаемые для Codex-профиля: они требуют отдельного провайдерского контракта и тарификации. Профиль отключает только эти возможности, а чтение, правка и запуск команд остаются доступны. Возвращать их вручную в профиле можно лишь после отдельной проверки поддержки сервером.

Запуск: `codex-neuroapi`. Перед каждым запуском launcher получает `/v1/codex/models` с обычным ключом NeuroAPI, проверяет ответ и передаёт приватный файл через `model_catalog_json` вместе с доступной моделью по умолчанию. Файл удаляется после завершения клиента. Проверка: `/debug-config` и `/model`.
Запуск: `codex-neuroapi`. Перед каждым запуском launcher получает `https://codex.neuroapi.host/v1/models` с обычным ключом NeuroAPI, проверяет ответ и передаёт приватный файл через `model_catalog_json` вместе с доступной моделью по умолчанию. Файл удаляется после завершения клиента. Проверка: `/debug-config` и `/model`.

Прямой `codex --profile neuroapi-host` пропускает этот механизм: command-auth discovery может подмешать встроенные модели. При ручной настройке без launcher можно задать собственный проверенный `model_catalog_json`; поддерживать его актуальность тогда нужно самостоятельно.

Expand All @@ -53,20 +53,20 @@ Project `.codex/config.toml` не подходит для provider/auth redirect

## HTTP/SSE для диагностики

Если соединение WebSocket блокируется вашей сетью, в секции `[model_providers.neuroapi]` созданного профиля замените `supports_websockets = true` на `supports_websockets = false`. Base URL остаётся `https://neuroapi.host/v1/codex`, auth helper и key storage не меняются. При повторном запуске setup управляемый профиль снова получит настройку по умолчанию `true`.
Если соединение WebSocket блокируется вашей сетью, в секции `[model_providers.neuroapi]` созданного профиля замените `supports_websockets = true` на `supports_websockets = false`. Base URL остаётся `https://codex.neuroapi.host/v1`, auth helper и key storage не меняются. При повторном запуске setup управляемый профиль снова получит настройку по умолчанию `true`.

Если сервер ещё не предоставляет `/v1/codex`, не распространяйте эту версию установщика: сначала требуется согласованный серверный выпуск. Возврат к общему `/v1` не решает несовпадение формата каталога при command-backed auth.
Если сервер ещё не предоставляет `https://codex.neuroapi.host/v1/models` и `/v1/responses` на том же субдомене, не распространяйте эту версию установщика: сначала требуется согласованный серверный выпуск. Общий `/v1` возвращает другой формат каталога при command-backed auth.

## Claude Code

Нужен Claude Code 2.1.284 или новее. Существующий `~/.claude/settings.json` не меняется. Launcher получает `/v1/claude-code/client-settings`, проверяет разрешённые поля данных, добавляет локальный `apiKeyHelper` и передаёт приватный JSON через `claude --settings <file>`.
Нужен Claude Code 2.1.284 или новее. Существующий `~/.claude/settings.json` не меняется. Launcher получает `https://claude.neuroapi.host/client-settings`, проверяет разрешённые поля данных, добавляет локальный `apiKeyHelper` и передаёт приватный JSON через `claude --settings <file>`.

```json
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"apiKeyHelper": "/absolute/path/to/installer-owned-helper",
"env": {
"ANTHROPIC_BASE_URL": "https://neuroapi.host/v1/claude-code"
"ANTHROPIC_BASE_URL": "https://claude.neuroapi.host"
}
}
```
Expand Down
6 changes: 3 additions & 3 deletions docs/security.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ macOS:

## Сетевое поведение

Setup и uninstall не вызывают NeuroAPI. Каждый launcher сначала получает актуальный каталог через HTTPS с сохранённым ключом: фиксированный адрес, запрет redirects, ограничение времени и размера ответа. Ключ остаётся в памяти/анонимных pipes, не передаётся в argv и не сохраняется в каталоге. Отражение ключа в ответе проверяется до записи, включая JSON escaping. Произвольные hooks, команды и настройки сервера не принимаются.
Uninstall не вызывает NeuroAPI. Setup проверяет ключ через каталоги, а каждый launcher сначала получает актуальный каталог через HTTPS с сохранённым ключом: фиксированный адрес, запрет redirects, ограничение времени и размера ответа. Ключ остаётся в памяти/анонимных pipes, не передаётся в argv и не сохраняется в каталоге. Отражение ключа в ответе проверяется до записи, включая JSON escaping. Произвольные hooks, команды и настройки сервера не принимаются.

- Codex custom provider: `https://neuroapi.host/v1/codex`;
- Claude Code gateway: `https://neuroapi.host/v1/claude-code`.
- Codex custom provider: `https://codex.neuroapi.host/v1`;
- Claude Code gateway: `https://claude.neuroapi.host`.

Проверенные данные записываются в приватный отдельный каталог на время одного запуска, затем удаляются. Параллельные запуски не делят изменяемый snapshot. Ошибка загрузки не включает старый каталог. Чужие provider/auth overrides нейтрализуются только в дочернем процессе и его локальных settings; настройки пользователя на диске не переписываются. Host-managed provider mode отклоняется, а не обходится.

Expand Down
Loading
Loading