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 и принимает вклад от сообщества.