Загрузки

Установите Clavitor на свою машину.

CLI предоставляет Вашим агентам ограниченный доступ к хранилищу. Прокси прозрачно внедряет учётные данные в HTTPS-запросы. Оба инструмента — небольшие автономные загрузки.

Скачать

Clavitor CLI

Fetch credentials, generate TOTP codes, store new secrets.

PlatformSizeSHA-256
Linux · amd644.3 MB1b99bab674c0a315…Download
Linux · arm643.1 MBc6dbef906d94be82…Download
macOS · Intel2.2 MB62bd8b8b493f498d…Download
macOS · Apple Silicon2.0 MBa9e9d46cec185e5d…Download
Windows · amd641.7 MB5ef09e2884b7f1e8…Download
FreeBSD · amd644.3 MBc8b2568dc6beff64…Download

Clavitor Proxy

Local HTTPS proxy that injects credentials into agent requests.

PlatformSizeSHA-256
Linux · amd644.7 MB4838a1a69e556b20…Download
Linux · arm643.4 MBd535b91eb41df25d…Download
macOS · Intel2.3 MB708551725b7f9872…Download
macOS · Apple Silicon2.2 MBe4b08eac8f461003…Download
Windows · amd641.8 MB8e1b50fbe73fa51f…Download
FreeBSD · amd644.6 MB04a6f97864f2a046…Download

The macOS and Windows downloads are archives: the program and the two libraries of its FIPS crypto module, which stay in the same folder.

Download SHA256SUMS · verify with sha256sum -c SHA256SUMS

Расширение для браузера

Предпочитаете заполнять учётные данные в браузере? Расширение Clavitor подставляет пароли, ключи доступа, карты и одноразовые коды в поле, которое их ожидает — при этом Ваше хранилище остаётся удалённым, без кэширования или расшифровки на Вашей машине.

Доступно сейчас для Chrome. Firefox и Safari скоро.

Настроить агент

Два шага. Менее чем за минуту от установки свежего CLI до рабочего идентификатора агента.

1. Создайте агента в Вашем хранилище

В веб-интерфейсе Вашего хранилища перейдите в Агенты → Новый. Назовите агента (например, "Claude Code") и выберите, к каким записям он может обращаться. Clavitor возвращает blob регистрации и ключ регистрации. Blob запечатан (он кодирует адрес хранилища и идентичность агента); ключ является единственным секретом, который его открывает. Обращайтесь с ключом как с паролем: передайте его напрямую на машину, где выполняется агент, затем удалите.

2. Инициализируйте CLI на машине агента

$ clavitor-cli init <enrollment-blob>
Enrollment key:

CLI запрашивает ключ (он никогда не берётся из командной строки и не отображается при вводе), расшифровывает blob локально и сохраняет результат как зашифрованную локальную конфигурацию в ~/.config/clavitor/config (или $XDG_CONFIG_HOME/clavitor/config). Blob и ключ Вам больше не нужны. Следующий раздел показывает, как с этого момента агент использует CLI.

Настроить прокси

Для агентов, которые уже работают с HTTP/HTTPS — Claude Desktop, пользовательские скрипты, всё, что использует requests или fetch. Прокси располагается между агентом и вышестоящим API, разрешая плейсхолдеры clavitor://Entry/field в потоке данных, так что агент никогда не получает фактические учётные данные. См. страницу архитектуры прокси для модели угроз и деталей протокола.

Пошаговое руководство написано в разговорной манере, чтобы человек или ИИ-агент могли прочитать его от начала до конца и выполнить на реальной машине. Выберите Вашу ОС ниже — каждый раздел представляет собой отдельную шестишаговую процедуру.

Прежде чем начать: получите blob регистрации и ключ из хранилища

Вам нужны blob регистрации и его ключ регистрации из Вашего хранилища. Это единственная часть, которую может выполнить только человек — хранилище требует аппаратного касания, чтобы авторизовать нового агента.

В веб-интерфейсе хранилища перейдите в Агенты → Новый, назовите агента (например, "Локальный прокси"), выберите, к каким записям он может обращаться, и при запросе коснитесь Вашего ключа безопасности. Clavitor возвращает blob регистрации и ключ регистрации. Скопируйте оба. Шаги ниже просят Вас вставить каждый один раз, а затем забыть о них.

Linux

В приведённом ниже руководстве используется bash и предполагается, что Вы работаете на x86-64; замените arm64 на amd64, если Вы используете aarch64.

1. Скачайте бинарный файл прокси и сделайте его исполняемым. Один самодостаточный бинарный файл, без зависимостей:

$ curl -LO https://clavitor.ai/downloads/clavitor-proxy-linux-amd64
$ chmod +x clavitor-proxy-linux-amd64

2. Двоичный файл на диске. Теперь привяжите его к Вашему хранилищу. Прокси читает blob и ключ из stdin (никогда не из командной строки, чтобы они не попали в Вашу историю оболочки). Вставьте каждый из "Прежде чем начать", когда появится запрос (ключ при вводе не отображается), затем подтвердите хост хранилища, который он Вам показывает:

$ ./clavitor-proxy-linux-amd64 init
Paste enrollment blob, then press Enter:
<paste-the-blob-here>
Enrollment key:
<paste-the-key-here>

  This token enrolls the agent against vault:

      <vault-host>

  Your key authenticated the blob — NOT this host. If you did not get
  this blob from your own vault operator, answering yes hands your
  agent's credential resolution to whoever did.
  Enroll against <vault-host>? [yes/no] yes
Enrolled against vault https://<vault-host>
Vault ID <vault-id>
Config /path/to/clavitor.conf
Try: clavitor-proxy ca > ca.pem   then   clavitor-proxy serve

Что только что произошло: blob расшифрован локально ключом (без сетевого вызова), а адрес хранилища + идентичность агента + ключ расшифрования учётных данных записаны в зашифрованный файл clavitor.conf рядом с двоичным файлом (режим 0600). Blob и ключ Вам больше не нужны. Если ввод передан через конвейер, а не набран, на подтверждение хоста нельзя ответить, поэтому сначала задайте CLAVITOR_PROXY_CONFIRM_VAULT=<vault-host>.

3. Экспортируйте корневой сертификат прокси. Прокси будет терминировать каждое HTTPS-соединение, которое делает Ваш агент, и перевыпускать сертификат для каждого вышестоящего хоста на лету. Без доверия к его корневому сертификату эти сертификаты не пройдут проверку:

$ ./clavitor-proxy-linux-amd64 ca > clavitor-proxy-ca.pem

4. Установите корневой сертификат в системное хранилище доверенных сертификатов. В Debian/Ubuntu и производных:

$ sudo cp clavitor-proxy-ca.pem /usr/local/share/ca-certificates/clavitor-proxy-ca.crt
$ sudo update-ca-certificates

update-ca-certificates должен вывести 1 added. С этого момента каждый HTTPS-клиент на машине (curl, Python's requests, Go's net/http и т. д.) принимает сертификаты прокси как легитимные.

5. Запустите прокси. Он привязывается к 127.0.0.1:1983 и работает в режиме переднего плана; Ctrl-C остановит его:

$ ./clavitor-proxy-linux-amd64 serve
clavitor-proxy <version> listening on 127.0.0.1:1983
Point your agent at:  HTTPS_PROXY=http://clavitor:<token>@127.0.0.1:1983
  Token redacted above; it is stored 0600 at /path/to/proxy-auth.
  e.g.  export HTTPS_PROXY="http://clavitor:$(cat /path/to/proxy-auth)@127.0.0.1:1983"

Для постоянной настройки создайте unit systemd, указывающий на тот же бинарный файл, чтобы он перезапускался при перезагрузке — см. документацию по прокси для примера unit.

6. Направьте Вашего агента на прокси и выполните сквозную проверку. В другой оболочке, в папке, где находится двоичный файл (файл proxy-auth там — токен доступа прокси; serve выводит эту строку):

$ export HTTPS_PROXY="http://clavitor:$(cat proxy-auth)@127.0.0.1:1983"
$ curl -H "Authorization: Bearer clavitor://OpenAI/key" https://api.openai.com/v1/models

Что фактически покидает прокси и достигает серверов OpenAI — запрос, который Ваш агент никогда не видит:

GET /v1/models HTTP/1.1
Host: api.openai.com
Authorization: Bearer sk-proj-abc123def456ghi789…    ← real key, injected by the proxy
User-Agent: curl/8.4.0

Если Вы получите JSON-ответ от OpenAI, значит, всё настроено. Прокси разрешил clavitor://OpenAI/key в хранилище, используя ключ расшифровки учётных данных из шага 2, подставил реальный ключ в заголовок Authorization и перенаправил запрос вышестоящему серверу. Ваш код агента содержит только плейсхолдер; реальный ключ никогда не покидает память процесса прокси.

macOS

В приведённом ниже руководстве используется zsh (оболочка по умолчанию в macOS) и предполагается Apple Silicon; замените amd64 на arm64, если Вы используете Intel Mac.

1. Скачайте прокси и распакуйте его. В архиве находится одна папка: программа и две библиотеки её криптомодуля FIPS, которые остаются рядом с ней:

$ curl -LO https://clavitor.ai/downloads/clavitor-proxy-darwin-arm64.tar.gz
$ tar -xzf clavitor-proxy-darwin-arm64.tar.gz
$ cd clavitor-proxy-darwin-arm64

Если macOS Gatekeeper впервые откажется запускать бинарный файл, щелкните его правой кнопкой мыши в Finder, выберите Открыть и подтвердите — это зарегистрирует исключение. После этого вызов из командной строки будет работать.

2. Двоичный файл на диске. Теперь привяжите его к Вашему хранилищу. Прокси читает blob и ключ из stdin (никогда не из командной строки, чтобы они не попали в Вашу историю оболочки). Вставьте каждый из "Прежде чем начать", когда появится запрос (ключ при вводе не отображается), затем подтвердите хост хранилища, который он Вам показывает:

$ ./clavitor-proxyinit
Paste enrollment blob, then press Enter:
<paste-the-blob-here>
Enrollment key:
<paste-the-key-here>

  This token enrolls the agent against vault:

      <vault-host>

  Your key authenticated the blob — NOT this host. If you did not get
  this blob from your own vault operator, answering yes hands your
  agent's credential resolution to whoever did.
  Enroll against <vault-host>? [yes/no] yes
Enrolled against vault https://<vault-host>
Vault ID <vault-id>
Config /path/to/clavitor.conf
Try: clavitor-proxy ca > ca.pem   then   clavitor-proxy serve

Что только что произошло: blob расшифрован локально ключом (без сетевого вызова), а адрес хранилища + идентичность агента + ключ расшифрования учётных данных записаны в зашифрованный файл clavitor.conf рядом с двоичным файлом (режим 0600). Blob и ключ Вам больше не нужны. Если ввод передан через конвейер, а не набран, на подтверждение хоста нельзя ответить, поэтому сначала задайте CLAVITOR_PROXY_CONFIRM_VAULT=<vault-host>.

3. Экспортируйте корневой сертификат прокси. Прокси будет терминировать каждое HTTPS-соединение, которое делает Ваш агент, и перевыпускать сертификат для каждого вышестоящего хоста на лету. Без доверия к его корневому сертификату эти сертификаты не пройдут проверку:

$ ./clavitor-proxyca > clavitor-proxy-ca.pem

4. Установите корневой сертификат в Системный Keychain. Одна команда, запрашивает Ваш пароль sudo:

$ sudo security add-trusted-cert -d -r trustRoot \
    -k /Library/Keychains/System.keychain clavitor-proxy-ca.pem

После этого Safari, curl, Swift, Python, Go и большинство других HTTPS-клиентов на машине принимают сертификаты прокси. (Небольшое количество языковых сред выполнения поставляется со своим собственным набором доверенных сертификатов и требует отдельной настройки — в этом случае Вы увидите ошибку сертификата.)

5. Запустите прокси. Он привязывается к 127.0.0.1:1983 и работает в режиме переднего плана; Ctrl-C остановит его:

$ ./clavitor-proxyserve
clavitor-proxy <version> listening on 127.0.0.1:1983
Point your agent at:  HTTPS_PROXY=http://clavitor:<token>@127.0.0.1:1983
  Token redacted above; it is stored 0600 at /path/to/proxy-auth.
  e.g.  export HTTPS_PROXY="http://clavitor:$(cat /path/to/proxy-auth)@127.0.0.1:1983"

Для постоянной настройки установите его как агент launchd, чтобы он запускался при входе в систему и перезапускался при сбое.

6. Направьте Вашего агента на прокси и выполните сквозную проверку. В другой оболочке, в папке, где находится двоичный файл (файл proxy-auth там — токен доступа прокси; serve выводит эту строку):

$ export HTTPS_PROXY="http://clavitor:$(cat proxy-auth)@127.0.0.1:1983"
$ curl -H "Authorization: Bearer clavitor://OpenAI/key" https://api.openai.com/v1/models

Что фактически покидает прокси и достигает серверов OpenAI — запрос, который Ваш агент никогда не видит:

GET /v1/models HTTP/1.1
Host: api.openai.com
Authorization: Bearer sk-proj-abc123def456ghi789…    ← real key, injected by the proxy
User-Agent: curl/8.4.0

Если Вы получите JSON-ответ от OpenAI, значит, всё настроено. Прокси разрешил clavitor://OpenAI/key в хранилище, используя ключ расшифровки учётных данных из шага 2, подставил реальный ключ в заголовок Authorization и перенаправил запрос вышестоящему серверу. Ваш код агента содержит только плейсхолдер; реальный ключ никогда не покидает память процесса прокси.

Windows

В приведённой ниже инструкции используется PowerShell на 64-разрядной Windows.

1. Скачайте прокси и распакуйте его. В архиве zip находится одна папка: clavitor-proxy.exe и две библиотеки её криптомодуля FIPS, которые остаются рядом с ним:

> Invoke-WebRequest https://clavitor.ai/downloads/clavitor-proxy-windows-amd64.zip `
    -OutFile clavitor-proxy.zip
> Expand-Archive clavitor-proxy.zip .
> cd clavitor-proxy-windows-amd64

Windows SmartScreen может показать предупреждение при первом запуске неподписанного бинарного файла — нажмите Дополнительные сведения → Запустить в любом случае, чтобы разрешить его.

2. Двоичный файл на диске. Теперь привяжите его к Вашему хранилищу. Прокси читает blob и ключ из stdin (никогда не из командной строки, чтобы они не попали в Вашу историю PowerShell). Вставьте каждый из "Прежде чем начать", когда появится запрос (ключ при вводе не отображается), затем подтвердите хост хранилища, который он Вам показывает:

> .\clavitor-proxy.exe init
Paste enrollment blob, then press Enter:
<paste-the-blob-here>
Enrollment key:
<paste-the-key-here>

  This token enrolls the agent against vault:

      <vault-host>

  Your key authenticated the blob — NOT this host. If you did not get
  this blob from your own vault operator, answering yes hands your
  agent's credential resolution to whoever did.
  Enroll against <vault-host>? [yes/no] yes
Enrolled against vault https://<vault-host>
Vault ID <vault-id>
Config C:\path\to\clavitor.conf
Try: clavitor-proxy ca > ca.pem   then   clavitor-proxy serve

Что только что произошло: blob расшифрован локально ключом (без сетевого вызова), а адрес хранилища + идентичность агента + ключ расшифрования учётных данных записаны в зашифрованный файл clavitor.conf рядом с двоичным файлом. Blob и ключ Вам больше не нужны. Если ввод передан через конвейер, а не набран, на подтверждение хоста нельзя ответить, поэтому сначала задайте CLAVITOR_PROXY_CONFIRM_VAULT=<vault-host>.

3. Экспортируйте корневой сертификат прокси. Прокси будет терминировать каждое HTTPS-соединение, которое делает Ваш агент, и перевыпускать сертификат для каждого вышестоящего хоста на лету. Без доверия к его корневому сертификату эти сертификаты не пройдут проверку:

> .\clavitor-proxy.exe ca > clavitor-proxy-ca.pem

4. Установите корневой сертификат в хранилище доверенных корневых сертификатов локального компьютера. Откройте повышенный PowerShell (щелкните правой кнопкой мыши PowerShell → Запуск от имени администратора) и выполните:

> certutil -addstore -f "ROOT" clavitor-proxy-ca.pem

После этого Edge, .NET, curl.exe и большинство HTTP-клиентов на машине принимают сертификаты прокси. (Firefox поддерживает свой собственный набор доверенных сертификатов; если Вы тестируете через Firefox, импортируйте корневой сертификат отдельно в разделе Настройки → Конфиденциальность и безопасность → Сертификаты → Просмотреть сертификаты → Центры сертификации → Импорт.)

5. Запустите прокси. Он привязывается к 127.0.0.1:1983 и работает в режиме переднего плана; Ctrl-C остановит его:

> .\clavitor-proxy.exe serve
clavitor-proxy <version> listening on 127.0.0.1:1983
Point your agent at:  HTTPS_PROXY=http://clavitor:<token>@127.0.0.1:1983
  Token redacted above; it is stored 0600 at C:\path\to\proxy-auth.
  e.g.  export HTTPS_PROXY="http://clavitor:$(cat C:\path\to\proxy-auth)@127.0.0.1:1983"

Для постоянной настройки зарегистрируйте его как службу Windows или запланированную задачу, чтобы он запускался при загрузке.

6. Направьте Вашего агента на прокси и выполните сквозную проверку. В другом окне PowerShell, в папке, где находится двоичный файл (файл proxy-auth там — токен доступа прокси):

> $env:HTTPS_PROXY = "http://clavitor:$(Get-Content proxy-auth)@127.0.0.1:1983"
> curl.exe -H "Authorization: Bearer clavitor://OpenAI/key" `
    https://api.openai.com/v1/models

(Явно используйте curl.exe — псевдоним curl в PowerShell указывает на Invoke-WebRequest, который по-разному обрабатывает переменную среды прокси.) Что фактически покидает прокси и достигает серверов OpenAI — запрос, который Ваш агент никогда не видит:

GET /v1/models HTTP/1.1
Host: api.openai.com
Authorization: Bearer sk-proj-abc123def456ghi789…    ← real key, injected by the proxy
User-Agent: curl/8.4.0

Если Вы получите JSON-ответ от OpenAI, значит, всё настроено. Прокси разрешил clavitor://OpenAI/key в хранилище, используя ключ расшифровки учётных данных из шага 2, подставил реальный ключ в заголовок Authorization и перенаправил запрос вышестоящему серверу. Ваш код агента содержит только плейсхолдер; реальный ключ никогда не покидает память процесса прокси.

Установите навык Claude Code

CLI поставляется со встроенным определением навыка, которое обучает Claude Code использовать Ваше хранилище. Одна команда устанавливает его.

# Install globally (all projects)
$ clavitor-cli skill > ~/.claude/skills/clavitor.md

# Or install for a specific project
$ clavitor-cli skill > /path/to/project/.claude/skills/clavitor.md

Навык встроен в бинарный файл. Обновляйте его, скачивая новый релиз.

Используйте его

Ваш агент теперь может получать учётные данные, генерировать коды TOTP и сохранять новые секреты. Каждый доступ регистрируется в журнале аудита хранилища.

# Fetch a credential
$ clavitor-cli get github

# Generate a TOTP code
$ clavitor-cli totp github

# Store a new credential
$ clavitor-cli put credential "AWS Prod" --username admin --password s3cret

# List all entries
$ clavitor-cli list

Один вызов CLI. Любой секрет.

Ваше хранилище, Ваши области доступа, Ваш журнал аудита. Никаких переменных среды, никаких файлов конфигурации, никаких секретов в логах.