К основному содержанию
скилл CX Codex

omni-api-keys — скилл для Claude Code: ключи Anthropic

Скилл управляет ключами Anthropic через API: создаёт, перечисляет, отзывает и меняет права. Пригодится, когда ключи нужно выдавать и ограничивать из агента.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add cheaper-inference/OmniRoute --skill omni-api-keys -a claude-code
Открыть на GitHub

Что делает omni-api-keys

Скилл закрывает работу с ключами Anthropic: создать, посмотреть список, обновить, отозвать, перегенерировать. Ещё он умеет выдавать ключу доступ к конкретным моделям и комбо и смотреть, какие устройства этим ключом пользовались.

Внутри — набор вызовов к локальному API на http://localhost:20128. Например, список ключей берётся через GET /api/keys, создание — через POST /api/keys, а права на модели меняются атомарно через POST /api/keys/{id}/access. Отдельная ветка эндпоинтов отвечает за группы ключей и их разрешения.

Перед первым запросом нужен Bearer-токен: его получают через POST /api/auth/login, либо для локальной разработки выставляют REQUIRE_API_KEY=false. Если ключ разрешает все модели или все комбо, добавление новых через /access потребует switchToRestricted: true, иначе вернётся 409 Conflict. А параллельные PATCH /api/keys/{id} перезаписывают политику целиком в обход блокировки — это стоит держать в голове, если ключи правит не только агент.

Какие задачи решает

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

Примеры запросов агенту

  • Покажи список ключей Anthropic
  • Создай новый ключ и разреши ему только модель gpt-4o
  • Отзови ключ с id abc123

Как установить omni-api-keys

1Через Skills CLI (Vercel)

npx skills add cheaper-inference/OmniRoute --skill omni-api-keys -a claude-code

2Вручную: положить файлы

~/.claude/skills/omni-api-keys/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/omni-api-keys/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о omni-api-keys

Как установить omni-api-keys в Claude Code?

Выполните npx skills add cheaper-inference/OmniRoute --skill omni-api-keys -a claude-code, после чего скилл окажется в ~/.claude/skills/omni-api-keys/SKILL.md.

Что делает omni-api-keys?

Создаёт, перечисляет, обновляет, перегенерирует и отзывает ключи Anthropic, а также управляет их правами на модели, лимитами и сроком действия.

Что нужно, чтобы скилл заработал?

Bearer-токен, полученный через POST /api/auth/login, либо REQUIRE_API_KEY=false для локальной разработки. Запросы идут на http://localhost:20128.

Исходный текст

SKILL.md · MIT
---
name: omni-api-keys
description: Create, list, rotate, and revoke OmniRoute API keys. Control per-key scopes, spending limits, and expiration. Keys gate access to all proxy and management endpoints.
---
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->

## Overview

Create, list, rotate, and revoke OmniRoute API keys. Control per-key scopes, spending limits, and expiration. Keys gate access to all proxy and management endpoints.

## Authentication

All requests require a valid Bearer token or session cookie. Obtain a token via `POST /api/auth/login` or configure `REQUIRE_API_KEY=false` for local development.

## Endpoints

### GET /api/keys

List API keys

```bash
curl http://localhost:20128/api/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### POST /api/keys

Create API key

```bash
curl -X POST http://localhost:20128/api/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### GET /api/keys/{id}

Get API key

```bash
curl http://localhost:20128/api/keys/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### PATCH /api/keys/{id}

Update API key

```bash
curl -X PATCH http://localhost:20128/api/keys/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE /api/keys/{id}

Delete API key

```bash
curl -X DELETE http://localhost:20128/api/keys/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### POST /api/keys/{id}/access

Add or remove allowed models and combos on an API key atomically

Adds or removes allowed models and combos on an API key without lost updates.
Serialized per key ID using an in-process async lock.
Keys allowing all models (modelAccessMode: all) or all combos (allowedCombos containing 'combo/*')
require switchToRestricted: true when adding new models or combos, otherwise returning a 409 Conflict.
When switching to restricted mode, the allowlist becomes exactly the net added items (at least one required).
Direct concurrent PATCH calls to /api/keys/{id} completely overwrite the policy outside this lock.


```bash
curl -X POST http://localhost:20128/api/keys/{id}/access \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### GET /api/keys/{id}/devices

List devices for an API key

Lists the distinct devices (masked IP + User-Agent fingerprints) tracked for an API key by the in-memory device tracker. IPs are masked before storage; the route never sees the raw client IP.

```bash
curl http://localhost:20128/api/keys/{id}/devices \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### POST /api/keys/{id}/regenerate

POST keys › <id> › regenerate

```bash
curl -X POST http://localhost:20128/api/keys/{id}/regenerate \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### GET /api/keys/{id}/reveal

GET keys › <id> › reveal

```bash
curl http://localhost:20128/api/keys/{id}/reveal \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### GET /api/keys/{id}/usage-limits

GET keys › <id> › usage limits

```bash
curl http://localhost:20128/api/keys/{id}/usage-limits \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### GET /api/keys/groups

GET keys › groups

```bash
curl http://localhost:20128/api/keys/groups \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### POST /api/keys/groups

POST keys › groups

```bash
curl -X POST http://localhost:20128/api/keys/groups \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### GET /api/keys/groups/{id}

GET keys › groups › <id>

```bash
curl http://localhost:20128/api/keys/groups/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### PUT /api/keys/groups/{id}

PUT keys › groups › <id>

Updates the group. Setting isActive to false pauses its allow rules while preserving membership restrictions and deny rules. Other active groups may still grant access unless a deny matches. Keys belonging only to inactive groups have no group grants. Keys without groups remain unrestricted by group policy; per-key restrictions still apply.

```bash
curl -X PUT http://localhost:20128/api/keys/groups/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE /api/keys/groups/{id}

DELETE keys › groups › <id>

```bash
curl -X DELETE http://localhost:20128/api/keys/groups/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### GET /api/keys/groups/{id}/keys

GET keys › groups › <id> › keys

```bash
curl http://localhost:20128/api/keys/groups/{id}/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### POST /api/keys/groups/{id}/keys

POST keys › groups › <id> › keys

```bash
curl -X POST http://localhost:20128/api/keys/groups/{id}/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE /api/keys/groups/{id}/keys

DELETE keys › groups › <id> › keys

```bash
curl -X DELETE http://localhost:20128/api/keys/groups/{id}/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### GET /api/keys/groups/{id}/permissions

GET keys › groups › <id> › permissions

```bash
curl http://localhost:20128/api/keys/groups/{id}/permissions \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

### POST /api/keys/groups/{id}/permissions

POST keys › groups › <id> › permissions

```bash
curl -X POST http://localhost:20128/api/keys/groups/{id}/permissions \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### DELETE /api/keys/groups/{id}/permissions

DELETE keys › groups › <id> › permissions

```bash
curl -X DELETE http://localhost:20128/api/keys/groups/{id}/permissions \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
```

## Payloads

See the full OpenAPI specification at `GET /api/openapi/spec` or `docs/openapi.yaml` for detailed request/response schemas.

© cheaper-inference · MIT · cheaper-inference/OmniRoute

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
setup-matt-pocock-skills Matt Pocock Скилл настраивает репозиторий для инженерных скиллов Matt Pocock: задаёт трекер задач, метки триажа и расположение доменной документации. Запустите его перед первым использованием остальных скиллов. 1 052 851установок ask-matt Matt Pocock Помогает выбрать подходящий скилл или рабочий поток из набора Matt Pocock. Пригодится, когда непонятно, с чего начать задачу: от идеи до разбора бага. 766 587установок to-tickets Matt Pocock Разбивает план, спецификацию или переписку на небольшие сквозные задачи и отмечает, какие из них блокируют остальные. Пригодится, когда нужно согласовать порядок работы до публикации задач в трекере. 711 230установок writing-plans Jesse Vincent Скилл превращает требования к многошаговой задаче в подробный план реализации до начала работы с кодом. Пригодится, когда исполнителю нужно зафиксировать файлы, интерфейсы и проверки. CX Codex 282 859установок caveman-review JuliusBrussee Пишет замечания к коду одной строкой: место, проблема, исправление. Пригодится, когда ревью диффа или PR надо пройти быстро и без воды. CX Codex +1 411 800установок caveman-compress JuliusBrussee Сжимает CLAUDE.md, списки задач и другие текстовые файлы в краткий формат, сохраняя читаемую резервную копию. CX Codex +1 411 500установок

Из того же набора45

omni-budget Задаёт лимиты расходов, квоты токенов и политики rate-limit по ключу или глобально. Показывает текущее потребление и контролирует затраты на всех провайдерах. CX Codex +1 973установок omni-context-rtk Настраивает RTK-фильтры, правила работы с контекстом и его передачу между этапами. Нужен для проверки сжатия на реальных запросах. CX Codex +1 984установок cli-chat Отправляет запросы в чат-модели OmniRoute из терминала, стримит ответы и запускает интерактивную REPL-сессию. CX Codex +1 970установок omni-cli-tools Управляет интеграциями CLI-инструментов через API OmniRoute. Пригодится для настройки профилей, проверки статусов и вызова плагинов автоматизации. CX Codex +1 982установок omni-agents-a2a Скилл взаимодействия между агентами через JSON-RPC 2.0 протокол. Позволяет агентам узнавать друг о друге, выбирать оптимальную модель по стоимости и возможностям, проверять квоты и здоровье системы. CX Codex +1 977установок cli-backup-sync Скилл для работы с бэкапами Anthropic из терминала: инкрементальные снимки, синхронизация с облаком, расписания и восстановление из архивов. CX Codex +1 963установок cli-compression Настраивает и проверяет сжатие промптов через утилиту omniroute. Помогает настраивать фильтры RTK и тестировать правила Caveman на реальных промптах. CX Codex +1 976установок cli-resilience Инструкция для агента по командам OmniRoute: посмотреть предохранители, кулдауны соединений и остатки квот, сбросить застрявшего провайдера из терминала. CX Codex +1 976установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой