Kirjaudu sisään Ilmainen ikuisesti Aloita

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ää?

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