Zaloguj się Na zawsze za darmo Rozpocznij

Deweloperzy

Jedno wywołanie CLI. Każdy sekret.

Brak zmiennych środowiskowych. Brak plików konfiguracyjnych. Brak sekretów w logach. Każdy sekret, którego potrzebuje kod, jest rozwiązywany w czasie wykonania z sejfu, którego agent AI nie może ominąć.

Wzorzec

Zapisz raz. Pobierz wszędzie.

Każdy agent AI jest inicjowany raz za pomocą własnego tokenu, zakresów i limitów żądań. Następnie agent AI może pobierać sekrety w czasie wykonania. Klucz jest przechowywany zaszyfrowany w sejfie, nigdy w zmiennych środowiskowych ani w kodzie źródłowym. Jeśli klucz ulegnie rotacji, należy zaktualizować go w interfejsie sejfu — każdy agent AI pobierze go automatycznie.

# One-time setup — paste the token at the prompt, or pipe it in
$ echo "$CLAVITOR_TOKEN" | clavitor-cli init

# Single value — piped, never stored
$ clavitor-cli get "Deploy Key" --field private_key | ssh-add -

# Whole config — secrets resolved, template safe to store anywhere
$ clavitor-cli render app.config.json | myapp --config -

# Proxy — credentials injected at the network layer
$ export HTTPS_PROXY=http://localhost:1983
$ curl -H "Authorization: Bearer clavitor://OpenRouter/key" https://openrouter.ai/api/v1/models

Trzy sposoby użycia

Pole, Renderuj lub Pośrednicz.

Pole

Jedna wartość. Przekieruj ją do dowolnego polecenia lub skryptu. Sekret istnieje tylko w potoku — nigdy w zmiennej, nigdy na dysku.

Renderuj

Cały plik konfiguracyjny. Rozwiąż wszystkie odwołania clavitor:// przy starcie. Szablon można bezpiecznie zapisać. Rozwiązana konfiguracja znajduje się w potoku.

Pośrednicz

Pośrednik HTTPS. Poświadczenia rozwiązywane z nagłówków w sposób przejrzysty. Agent zapisuje clavitor:// tam, gdzie powinien trafić sekret — pośrednik wstrzykuje rzeczywistą wartość. Nic w logach, nic w pamięci agenta.

Którego powinienem użyć?

FunkcjaFieldRenderProxy
Sekrety poza logami
Działa z każdym językiem
Działa z każdym narzędziem (curl, SDK, przeglądarka)
Zakresy i audyt na agenta
Wiele sekretów naraz
Brak konieczności zmian w kodzie
Pliki konfiguracyjne bezpieczne do zapisu
Przypadki użycia SSH / nie-HTTP

Szybki wybór: Tworzysz skrypt lub narzędzie CLI? Użyj Pola. Wdrażasz usługę z plikiem konfiguracyjnym? Użyj Renderowania. Uruchamiasz agentów AI, którzy wykonują wywołania API? Użyj Pośredniczenia.

Dlaczego to przewyższa każdy inny pośrednik poświadczeń.

Nic do kradzieży. Pośredniki hostowane w chmurze są cennymi celami — naruszenie jednego oznacza dostęp do poświadczeń wszystkich klientów. Pośredniki lokalne przechowują poświadczenia we własnej konfiguracji, czytelnej dla każdego agenta na maszynie. Pośrednik Clavitor przechowuje tylko zaszyfrowany plik konfiguracyjny. Brak jawnych sekretów na dysku, brak magazynu poświadczeń do przeszukania.

Agenci nie mogą go otworzyć. Skompromitowany agent nie może wyodrębnić poświadczeń z pośrednika — pośrednik nie udostępnia API, nie serwuje panelu ani nie akceptuje poleceń. Odczytuje jeden nagłówek, rozwiązuje jedno odwołanie i wstrzykuje wynik do wychodzącego żądania. Brak powierzchni ataku.

Nic w logach. Agent zapisuje clavitor://Entry/field. To właśnie pojawia się w standardowym wyjściu, w logach, w historii rozmów. Rzeczywisty sekret istnieje tylko w procesie pośrednika przez czas trwania jednego wywołania HTTP. Agregatory logów, zrzuty awaryjne, artefakty CI — czysto.

Zero konfiguracji. Brak tabel routingu, mapowań API, plików poświadczeń do zarządzania. Odwołanie clavitor:// w nagłówku jest jedyną instrukcją. Jedno init, jedna zmienna środowiskowa, gotowe.

Języki

Działa w każdym języku. Nie wymaga SDK.

Bash

# The proxy handles credential injection — no secrets in the command
$ export HTTPS_PROXY=http://localhost:1983
$ curl -H "Authorization: Bearer clavitor://OpenRouter API/key" \
  https://openrouter.ai/api/v1/models

Go

key, _ := exec.Command("clavitor-cli", "get", "OpenRouter API", "--field", "key").Output()
client := openai.NewClient(option.WithAPIKey(strings.TrimSpace(string(key))))

Python

import subprocess
# Pass directly — or use the HTTPS proxy to avoid holding the key entirely
stripe.api_key = subprocess.check_output(
    ["clavitor-cli", "get", "Stripe API", "--field", "key"]
).decode().strip()

Rust

let key = std::process::Command::new("clavitor-cli")
    .args(["get", "AWS Credentials", "--field", "secret_key"])
    .output()?;
let client = aws::Client::new(String::from_utf8(key.stdout)?.trim());

TypeScript / Node

import { execSync } from 'child_process';
const apiKey = execSync('clavitor-cli get "Anthropic API" --field key').toString().trim();
const client = new Anthropic({ apiKey });

C# / .NET

using System.Diagnostics;
var psi = new ProcessStartInfo("clavitor-cli") { RedirectStandardOutput = true, UseShellExecute = false };
psi.ArgumentList.Add("get");
psi.ArgumentList.Add("Stripe API");
psi.ArgumentList.Add("--field");
psi.ArgumentList.Add("key");
var key = Process.Start(psi)!.StandardOutput.ReadToEnd().Trim();
var client = new StripeClient(key);

PowerShell

# Single value — pipe or use directly
$key = clavitor-cli get "AWS Credentials" --field secret_key
Set-AWSCredential -AccessKey $env:AWS_ACCESS_KEY -SecretKey $key

# Or use the proxy — no secrets in the script at all
$env:HTTPS_PROXY = "http://localhost:1983"
Invoke-RestMethod -Uri "https://api.openai.com/v1/models" `
  -Headers @{ Authorization = "Bearer clavitor://OpenAI/key" }

Java

import java.nio.charset.StandardCharsets;

Process p = new ProcessBuilder("clavitor-cli", "get", "Stripe API", "--field", "key").start();
String key = new String(p.getInputStream().readAllBytes(), StandardCharsets.UTF_8).trim();
Stripe.apiKey = key;

Renderowanie konfiguracji

Przechowuj konfiguracje. Nie sekrety.

clavitor-cli render skanuje dowolny plik w poszukiwaniu odwołań clavitor://entry/field, rozwiązuje każde z nich względem sejfu i wyprowadza wynik. Szablon można bezpiecznie przechowywać w dowolnym miejscu. Rozwiązana konfiguracja znajduje się w potoku. Sekrety nigdy nie dotykają dysku.

# Template (safe to store anywhere)
$ cat app.config.json
{"api_key": "clavitor://OpenRouter API/key", "db": "clavitor://Prod DB/password"}

# Resolved (piped to application, never on disk)
$ clavitor-cli render app.config.json
{"api_key": "sk-or-v1-abc123...", "db": "hunter2"}

Działa z JSON, YAML, TOML, .env lub dowolnym plikiem tekstowym. Jeśli zawiera clavitor://, zostanie rozwiązany.

Więcej przewodników integracji

Infrastruktura

Docker, Kubernetes, Terraform, Ansible, GitHub Actions, GitLab CI, SSH. Zero sekretów w konfiguracji, zero sekretów w logach.

Przewodnik po infrastrukturze →

Agenci AI

Claude Code, Codex, OpenClaw, Hermes, CrewAI, LangChain. Tokeny z zakresem, ścieżki audytu, automatyczne blokowanie.

Przewodnik po agentach →

Narzędzia MSP

PowerShell, Datto RMM, N-able, ConnectWise Automate. Wydawanie poświadczeń dla bazy klientów.

Przewodnik MSP →

Wzorzec jest zawsze taki sam.

Jedno wywołanie CLI, dowolny kontekst. Zakres agenta określa, co może zobaczyć. Poziom określa, co może odszyfrować. Dziennik audytu rejestruje każdy dostęp.