Ontwikkelaars
Eén CLI-aanroep. Elk geheim.
Geen omgevingsvariabelen. Geen configuratiebestanden. Geen geheimen in logs. Elk geheim dat je code nodig heeft, wordt tijdens runtime opgelost vanuit een kluis die je agent niet kan omzeilen.
Het patroon
Sla het één keer op. Haal het overal op.
Elke agent wordt één keer geïnitialiseerd met zijn eigen token, scopes en snelheidslimieten. Daarna kan de agent geheimen tijdens runtime ophalen. De sleutel wordt versleuteld opgeslagen in de kluis, nooit in omgevingsvariabelen of broncode. Als de sleutel roteert, update je deze in de kluis-UI — elke agent pikt deze automatisch op.
# 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
Drie manieren om het te gebruiken
Field, Render, of Proxy.
Field
Eén waarde. Pipe het in elke opdracht of script. Het geheim bestaat alleen in de pipe — nooit in een variabele, nooit op schijf.
Render
Gehele configuratiebestand. Los alle clavitor://-verwijzingen op bij het opstarten. De template kan veilig worden gecommit. De opgeloste configuratie bevindt zich in een pipe.
Proxy
HTTPS-proxy. Inloggegevens worden transparant opgelost vanuit headers. De agent schrijft clavitor:// waar het geheim moet komen — de proxy injecteert de werkelijke waarde. Niets in logs, niets in het geheugen van de agent.
Welke moet ik gebruiken?
| Functie | Field | Render | Proxy |
|---|---|---|---|
| Geheimen uit logs | |||
| Werkt met elke taal | |||
| Werkt met elke tool (curl, SDK, browser) | |||
| Scoping & audit per agent | |||
| Meerdere geheimen tegelijk | |||
| Geen code-wijzigingen nodig | |||
| Configuratiebestanden veilig om te committen | |||
| SSH / niet-HTTP use cases |
Snelle keuze: Een script of CLI-tool bouwen? Gebruik Field. Een service implementeren met een configuratiebestand? Gebruik Render. AI-agents uitvoeren die API-aanroepen doen? Gebruik Proxy.
Waarom dit beter is dan elke andere credential proxy.
Niets te stelen. Cloud-gehoste proxies zijn hoogwaardige doelen — breek er één en je krijgt de inloggegevens van elke klant. Lokale proxies slaan inloggegevens op in hun eigen configuratie, leesbaar door elke agent op de machine. Clavitor's proxy bevat alleen een versleuteld configuratiebestand. Geen platte tekst geheimen op schijf, geen credential store om te plunderen.
Agents kunnen het niet openbreken. Een gecompromitteerde agent kan geen inloggegevens uit de proxy halen — de proxy stelt geen API bloot, serveert geen dashboard, of accepteert geen commando's. Het leest één header, lost één verwijzing op en injecteert het resultaat in het uitgaande verzoek. Geen aanvalsoppervlak.
Niets in logs. De agent schrijft clavitor://Entry/field. Dat is wat verschijnt in stdout, in logs, in gespreksgeschiedenis. Het echte geheim bestaat alleen binnen het proxyproces voor de duur van één HTTP-aanroep. Log-aggregators, crash dumps, CI-artefacten — schoon.
Nul configuratie. Geen routingtabellen, geen API-mappings, geen credential-bestanden om te beheren. De clavitor://-verwijzing in de header is de enige instructie. Eén init, één omgevingsvariabele, klaar.
Talen
Werkt in elke taal. Geen SDK vereist.
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;Config rendering
Sla je configuraties op. Niet je geheimen.
clavitor-cli render scant elk bestand op clavitor://entry/field-verwijzingen, lost elk op tegen de kluis en geeft het resultaat weer. De template kan overal veilig worden opgeslagen. De opgeloste configuratie bevindt zich in een pipe. Geheimen raken nooit de schijf.
# 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"}Werkt met JSON, YAML, TOML, .env, of elk tekstbestand. Als het clavitor:// bevat, wordt het opgelost.
Meer integratiegidsen
Infrastructuur
Docker, Kubernetes, Terraform, Ansible, GitHub Actions, GitLab CI, SSH. Nul geheimen in configuratie, nul geheimen in logs.
Infrastructuurgids →AI-agents
Claude Code, Codex, OpenClaw, Hermes, CrewAI, LangChain. Gescopede tokens, audit trails, automatische vergrendeling.
Agentgids →MSP-tools
PowerShell, Datto RMM, N-able, ConnectWise Automate. Uitgifte van inloggegevens voor je klantenbestand.
MSP-gids →Het patroon is altijd hetzelfde.
Eén CLI-aanroep, elke context. De scope van de agent bepaalt wat deze kan zien. Het niveau bepaalt wat deze kan ontsleutelen. Het auditlog registreert elke toegang.