Inloggen Gratis voor altijd Aan de slag

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?

FunctieFieldRenderProxy
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.