साइन इन करें हमेशा मुफ़्त शुरू करें

डेवलपर्स

एक CLI कॉल। हर सीक्रेट।

कोई env vars नहीं। कोई कॉन्फ़िग फ़ाइलें नहीं। लॉग में कोई सीक्रेट्स नहीं। आपके कोड को जिस भी सीक्रेट की ज़रूरत है, वह रनटाइम पर एक ऐसे वॉल्ट से रिज़ॉल्व होता है जिसे आपका एजेंट बायपास नहीं कर सकता।

पैटर्न

इसे एक बार स्टोर करें। कहीं भी रिट्रीव करें।

प्रत्येक एजेंट को उसके अपने टोकन, स्कोप्स और रेट लिमिट्स के साथ एक बार इनिशियलाइज़ किया जाता है। इसके बाद, एजेंट रनटाइम पर सीक्रेट्स फ़ेच कर सकता है। कुंजी वॉल्ट में एन्क्रिप्टेड स्टोर की जाती है, कभी भी env vars या सोर्स कोड में नहीं। यदि कुंजी रोटेट होती है, तो इसे वॉल्ट UI में अपडेट करें — हर एजेंट इसे स्वचालित रूप से प्राप्त कर लेता है।

# 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

इसे इस्तेमाल करने के तीन तरीके

Field, Render, या Proxy.

Field

एक वैल्यू। इसे किसी भी कमांड या स्क्रिप्ट में पाइप करें। सीक्रेट केवल पाइप में मौजूद रहता है — कभी भी वेरिएबल में नहीं, कभी भी डिस्क पर नहीं।

Render

पूरी कॉन्फ़िग फ़ाइल। स्टार्टअप पर सभी clavitor:// रेफरेंस रिज़ॉल्व करें। टेम्पलेट को कमिट करना सुरक्षित है। रिज़ॉल्व किया गया कॉन्फ़िग पाइप में रहता है।

Proxy

HTTPS प्रॉक्सी। क्रेडेंशियल्स हेडर्स से पारदर्शी रूप से रिज़ॉल्व होते हैं। एजेंट clavitor:// लिखता है जहाँ सीक्रेट जाना चाहिए — प्रॉक्सी असली वैल्यू इंजेक्ट करता है। लॉग में कुछ नहीं, एजेंट मेमोरी में कुछ नहीं।

मुझे कौन सा इस्तेमाल करना चाहिए?

सुविधाFieldRenderProxy
लॉग से सीक्रेट्स बाहर
किसी भी भाषा के साथ काम करता है
किसी भी टूल के साथ काम करता है (curl, SDK, ब्राउज़र)
प्रति-एजेंट स्कोपिंग और ऑडिट
एक साथ कई सीक्रेट्स
कोई कोड बदलाव की ज़रूरत नहीं
कॉन्फ़िग फ़ाइलें कमिट करने के लिए सुरक्षित
SSH / गैर-HTTP उपयोग के मामले

त्वरित चयन: स्क्रिप्ट या CLI टूल बना रहे हैं? Field का उपयोग करें। कॉन्फ़िग फ़ाइल के साथ सेवा डिप्लॉय कर रहे हैं? Render का उपयोग करें। API कॉल करने वाले AI एजेंट चला रहे हैं? Proxy का उपयोग करें।

यह हर दूसरे क्रेडेंशियल प्रॉक्सी को क्यों मात देता है।

चुराने के लिए कुछ नहीं। क्लाउड-होस्टेड प्रॉक्सी उच्च-मूल्य वाले लक्ष्य होते हैं — एक को ब्रीच करें और आपको हर ग्राहक के क्रेडेंशियल्स मिल जाते हैं। लोकल प्रॉक्सी अपने स्वयं के कॉन्फ़िग में क्रेडेंशियल्स स्टोर करते हैं, जो मशीन पर किसी भी एजेंट द्वारा पढ़े जा सकते हैं। Clavitor की प्रॉक्सी केवल एक एन्क्रिप्टेड कॉन्फ़िग फ़ाइल रखती है। डिस्क पर कोई प्लेनटेक्स्ट सीक्रेट्स नहीं, चुराने के लिए कोई क्रेडेंशियल स्टोर नहीं।

एजेंट इसे ज़बरदस्ती खोल नहीं सकते। एक कंप्रोमाइज़ किया गया एजेंट प्रॉक्सी से क्रेडेंशियल्स निकाल नहीं सकता — प्रॉक्सी API एक्सपोज़ नहीं करता, डैशबोर्ड सर्व नहीं करता, या कमांड स्वीकार नहीं करता। यह एक हेडर पढ़ता है, एक रेफरेंस रिज़ॉल्व करता है, और परिणाम को आउटबाउंड रिक्वेस्ट में इंजेक्ट करता है। कोई अटैक सरफेस नहीं।

लॉग में कुछ नहीं। एजेंट clavitor://Entry/field लिखता है। यही stdout में, लॉग में, कन्वर्सेशन हिस्ट्री में दिखाई देता है। असली क्रेडेंशियल केवल एक HTTP कॉल की अवधि के लिए प्रॉक्सी प्रोसेस के अंदर मौजूद रहता है। लॉग एग्रीगेटर्स, क्रैश डंप, CI आर्टिफैक्ट्स — सब साफ़।

ज़ीरो कॉन्फ़िग। कोई राउटिंग टेबल नहीं, कोई API मैपिंग नहीं, प्रबंधन करने के लिए कोई क्रेडेंशियल फ़ाइलें नहीं। हेडर में clavitor:// रेफरेंस ही एकमात्र निर्देश है। एक init, एक env var, हो गया।

भाषाएँ

हर भाषा में काम करता है। किसी 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;

कॉन्फ़िग रेंडरिंग

अपने कॉन्फ़िग स्टोर करें। अपने सीक्रेट्स नहीं।

clavitor-cli render किसी भी फ़ाइल को clavitor://entry/field रेफरेंस के लिए स्कैन करता है, प्रत्येक को वॉल्ट से रिज़ॉल्व करता है, और परिणाम आउटपुट करता है। टेम्पलेट को कहीं भी स्टोर करना सुरक्षित है। रिज़ॉल्व किया गया कॉन्फ़िग पाइप में रहता है। सीक्रेट्स कभी भी डिस्क पर नहीं जाते।

# 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"}

JSON, YAML, TOML, .env, या किसी भी टेक्स्ट फ़ाइल के साथ काम करता है। यदि इसमें clavitor:// है, तो यह रिज़ॉल्व हो जाता है।

अधिक इंटीग्रेशन गाइड

इंफ्रास्ट्रक्चर

Docker, Kubernetes, Terraform, Ansible, GitHub Actions, GitLab CI, SSH. कॉन्फ़िग में ज़ीरो सीक्रेट्स, लॉग में ज़ीरो सीक्रेट्स।

इंफ्रास्ट्रक्चर गाइड →

AI एजेंट

Claude Code, Codex, OpenClaw, Hermes, CrewAI, LangChain. परिधिबद्ध टोकन, ऑडिट ट्रेल्स, स्वचालित लॉकडाउन।

एजेंट गाइड →

MSP टूल्स

PowerShell, Datto RMM, N-able, ConnectWise Automate. आपके क्लाइंट बेस के लिए क्रेडेंशियल जारी करना।

MSP गाइड →

पैटर्न हमेशा एक जैसा ही होता है।

एक CLI कॉल, कोई भी कॉन्टेक्स्ट। एजेंट का स्कोप तय करता है कि वह क्या देख सकता है। टियर तय करता है कि वह क्या डिक्रिप्ट कर सकता है। ऑडिट लॉग हर एक्सेस को रिकॉर्ड करता है।