← На главную

OneCLI скрывает API-ключи за Rust-шлюзом и расшифровывает по HTTP-запросу

23.07.2026 15:42 · hackernews

OneCLI — это опенсорсный шлюз, который прячет API-ключи от AI-агентов. Вы сохраняете секреты один раз в OneCLI, а агенты работают с подставными ключами вроде FAKE_KEY. При HTTP-запросе гейтвей сам находит нужный реальный ключ, расшифровывает его и подставляет в запрос. Агент никогда не видит настоящих секретов.

Зачем это нужно. Когда агентам приходится стучаться в десятки внешних сервисов, раздавать им прямые доступы к API-ключам слишком рискованно. OneCLI становится единой точкой, где вы управляете доступами, ротируете креды и отслеживаете, куда лезут агенты. Гейтвей авторизует самих агентов по токенам в заголовке Proxy-Authorization, сверяет host и path входящего запроса, расшифровывает нужный секрет и встраивает его в исходящий вызов — header’ом или query-параметром.

В основе — Rust-гейтвей, который перехватывает запросы (включая MITM-прокси для HTTPS) и молниеносно подставляет креды. Рядом работает веб-дашборд на Next.js, где вы создаёте агентов, прописываете разрешения и храните ключи. Сами секреты лежат в зашифрованном виде под AES-256-GCM и расшифровываются только в момент запроса, никакого открытого хранения. В продакшене можно вообще не держать ключи на сервере — OneCLI умеет на лету подтягивать их из Bitwarden (или других менеджеров паролей) по модели on-demand injection.

Запустить всё можно одной командой: curl -fsSL https://onecli.sh/install | sh Она разворачивает приложение и PostgreSQL. После этого дашборд доступен на http://localhost:10254, а сам гейтвей слушает http://localhost:10255. Локальный режим по умолчанию идёт без авторизации (single-user), и никаких .env заполнять не нужно. Если захотите пустить команду, включаете Google OAuth, задав NEXTAUTH_SECRET и OAuth-учётные данные Google.

В монорепо лежат три составные части: apps/web — тот самый Next.js-дашборд с API, apps/gateway — Rust-гейтвей для инъекции кредов, packages/db — слой Prisma ORM и миграций для PostgreSQL, а в packages/ui — общие компоненты на shadcn/ui. Для разработки потребуются mise (ставит Node.js и pnpm), Rust и Docker. Команды стандартные: pnpm dev поднимает web и gateway в dev-режиме, pnpm db:up стартует базу, pnpm db:migrate накатывает миграции.

Все переменные окружения можно не трогать — секретный ключ шифрования SECRET_ENCRYPTION_KEY генерируется автоматически. Проект распространяется под лицензией Apache-2.0 и принимает вклад от сообщества.

Читать оригинал →