Kehittäjät
Yksi CLI-kutsu. Kaikki salaisuudet.
Ei ympäristömuuttujia. Ei konfiguraatiotiedostoja. Ei salaisuuksia lokeissa. Kaikki salaisuudet, joita koodisi tarvitsee, ratkaistaan ajon aikana holvista, jota agentti ei voi ohittaa.
Kaava
Tallenna kerran. Nouda mistä tahansa.
Jokainen agentti alustetaan kerran omalla tunnuksellaan, rajauksillaan ja nopeusrajoituksillaan. Sen jälkeen agentti voi noutaa salaisuuksia ajon aikana. Avain tallennetaan salattuna holviin, ei koskaan ympäristömuuttujiin tai lähdekoodiin. Jos avain vaihtuu, päivitä se holvin käyttöliittymässä – jokainen agentti hakee sen automaattisesti.
# 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
Kolme tapaa käyttää sitä
Kenttä, Renderöinti tai Välityspalvelin.
Kenttä
Yksi arvo. Ohjaa se mihin tahansa komennon tai skriptin. Salaisuus on olemassa vain putkessa – ei koskaan muuttujassa, ei koskaan levyllä.
Renderöinti
Koko konfiguraatiotiedosto. Ratkaise kaikki clavitor://-viittaukset käynnistyksen yhteydessä. Mallipohja on turvallista tallentaa. Ratkaistu konfiguraatio elää putkessa.
Välityspalvelin
HTTPS-välityspalvelin. Tunnistetiedot ratkaistaan otsikoista läpinäkyvästi. Agentti kirjoittaa clavitor://-osoitteen sinne, minne salaisuuden pitäisi mennä – välityspalvelin injektoi todellisen arvon. Ei mitään lokeissa, ei mitään agentin muistissa.
Kumman minun pitäisi käyttää?
| Ominaisuus | Field | Render | Proxy |
|---|---|---|---|
| Salaisuudet pois lokeista | |||
| Toimii minkä tahansa kielen kanssa | |||
| Toimii minkä tahansa työkalun kanssa (curl, SDK, selain) | |||
| Rajaus ja auditointi per agentti | |||
| Useita salaisuuksia kerralla | |||
| Ei koodimuutoksia tarvita | |||
| Konfiguraatiotiedostot turvallisia tallentaa | |||
| SSH / ei-HTTP-käyttötapaukset |
Nopea valinta: Rakennatko skriptiä tai CLI-työkalua? Käytä Kenttää. Otatko käyttöön palvelua konfiguraatiotiedoston kanssa? Käytä Renderöintiä. Käytätkö tekoälyagentteja, jotka tekevät API-kutsuja? Käytä Välityspalvelinta.
Miksi tämä päihittää kaikki muut tunnistetietojen välityspalvelimet.
Ei mitään varastettavaa. Pilvipohjaiset välityspalvelimet ovat arvokkaita kohteita – murra yksi ja saat jokaisen asiakkaan tunnistetiedot. Paikalliset välityspalvelimet tallentavat tunnistetiedot omaan konfiguraatioonsa, jonka kuka tahansa koneen agentti voi lukea. Clavitorin välityspalvelin sisältää vain salatun konfiguraatiotiedoston. Ei selväkielisiä salaisuuksia levyllä, ei tunnistetietojen tallennustilaa ryöstettäväksi.
Agentit eivät voi avata sitä. Kompromettoitu agentti ei voi poimia tunnistetietoja välityspalvelimesta – välityspalvelin ei tarjoa API:a, palvelua kojelautaa tai hyväksy komentoja. Se lukee yhden otsikon, ratkaisee yhden viittauksen ja injektoi tuloksen lähtevään pyyntöön. Ei hyökkäyspinta-alaa.
Ei mitään lokeissa. Agentti kirjoittaa clavitor://Entry/field. Sitä ilmestyy stdoutiin, lokeihin, keskusteluhistoriaan. Todellinen tunnistetieto on olemassa vain välityspalvelinprosessissa yhden HTTP-kutsun ajan. Lokien kerääjät, kaatumisjäljet, CI-artefaktit – puhtaita.
Nolla konfiguraatiota. Ei reititystaulukoita, ei API-määrityksiä, ei hallittavia tunnistetietotiedostoja. Otsikon clavitor://-viittaus on ainoa ohje. Yksi init, yksi ympäristömuuttuja, valmis.
Kielet
Toimii jokaisella kielellä. SDK:ta ei tarvita.
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;Konfiguraation renderöinti
Tallenna konfiguraatiosi. Ei salaisuuksiasi.
clavitor-cli render skannaa minkä tahansa tiedoston clavitor://entry/field-viittauksien varalta, ratkaisee jokaisen holvia vastaan ja tulostaa tuloksen. Mallipohja on turvallista tallentaa mihin tahansa. Ratkaistu konfiguraatio elää putkessa. Salaisuudet eivät koskaan kosketa levyä.
# 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"}Toimii JSON-, YAML-, TOML-, .env- tai minkä tahansa tekstitiedoston kanssa. Jos se sisältää clavitor://, se ratkaistaan.
Lisää integraatio-oppaita
Infrastruktuuri
Docker, Kubernetes, Terraform, Ansible, GitHub Actions, GitLab CI, SSH. Nolla salaisuutta konfiguraatiossa, nolla salaisuutta lokeissa.
Infrastruktuuriopas →Tekoälyagentit
Claude Code, Codex, OpenClaw, Hermes, CrewAI, LangChain. Rajatut tunnukset, auditointijäljet, automaattinen lukitus.
Agenttiopas →MSP-työkalut
PowerShell, Datto RMM, N-able, ConnectWise Automate. Tunnistetietojen myöntäminen asiakaskunnallesi.
MSP-opas →Kaava on aina sama.
Yksi CLI-kutsu, mikä tahansa konteksti. Agentin rajaus määrittää, mitä se voi nähdä. Taso määrittää, mitä se voi purkaa. Auditloki tallentaa jokaisen pääsyn.