---
title: "Utviklere"
description: "Én CLI-kommando. Alle hemmeligheter. Ingen miljøvariabler. Ingen konfigurasjonsfiler. Ingen hemmeligheter i logger."
lang: no
url: https://clavitor.ai/no/developers
markdown: https://clavitor.ai/no/developers.md
translation_of: https://clavitor.ai/en/developers.md
authoritative: false
publisher: Clavitor LLC
---

> This is the Norwegian translation of [Developers](https://clavitor.ai/en/developers.md). The original English text is authoritative; where the two differ, the English version prevails.

# Utviklere: Én CLI-kommando. Alle hemmeligheter.

Ingen miljøvariabler. Ingen konfigurasjonsfiler. Ingen hemmeligheter i logger. Alle hemmeligheter koden din trenger, løst ved kjøretid fra et hvelv agenten din ikke kan omgå.

## Mønsteret: Lagre én gang. Hent hvor som helst.

Hver agent initialiseres én gang med sin egen token, omfang og rate limits. Etter det kan agenten hente hemmeligheter ved kjøretid. Nøkkelen lagres kryptert i hvelvet, aldri i miljøvariabler eller kildekode. Hvis nøkkelen roteres, oppdater den i hvelv-UI-en – hver agent plukker den opp automatisk.

```
# 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
```

## Tre måter å bruke den på: Felt, Gjengi, eller Proxy.

### Felt

Én verdi. Send den inn i en hvilken som helst kommando eller skript. Hemmeligheten eksisterer kun i pipen – aldri i en variabel, aldri på disk.

### Gjengi

Hele konfigurasjonsfilen. Løs alle `clavitor://`-referanser ved oppstart. Malen er trygg å committe. Den løste konfigurasjonen lever i en pipe.

### Proxy

HTTPS-proxy. Påloggingsinformasjon løst fra headere transparent. Agenten skriver `clavitor://` der hemmeligheten skal gå – proxyen injiserer den virkelige verdien. Ingenting i logger, ingenting i agentminnet.

### Hvilken skal jeg bruke?

| Feature | Field | Render | Proxy |
|---|---|---|---|
| Hemmeligheter ut av logger | 3/3 | 2/3 | 3/3 |
| Fungerer med alle programmeringsspråk | 3/3 | 3/3 | 3/3 |
| Fungerer med alle verktøy (curl, SDK, nettleser) | 2/3 | 1/3 | 3/3 |
| Omfangsbegrenset per agent og revisjon | 3/3 | 3/3 | 1/3 |
| Flere hemmeligheter samtidig | 1/3 | 3/3 | 2/3 |
| Ingen kodeendringer nødvendig | 0/3 | 0/3 | 3/3 |
| Konfigurasjonsfiler trygge å committe | 0/3 | 3/3 | 0/3 |
| SSH / ikke-HTTP brukstilfeller | 3/3 | 3/3 | 0/3 |

**Raskt valg:** Bygger du et skript eller CLI-verktøy? Bruk **Felt**. Setter du ut en tjeneste med en konfigurasjonsfil? Bruk **Gjengi**. Kjører du AI-agenter som gjør API-kall? Bruk **Proxy**.

## Hvorfor dette slår enhver annen påloggingsinformasjon-proxy.

**Ingenting å stjele.** Skybaserte proxyer er verdifulle mål – bryt én og du får alle kunders påloggingsinformasjon. Lokale proxyer lagrer påloggingsinformasjon i sin egen konfigurasjon, lesbar av enhver agent på maskinen. Clavitors proxy inneholder kun en kryptert konfigurasjonsfil. Ingen klarteksthemmeligheter på disk, ingen påloggingsinformasjonslager å plyndre.

**Agenter kan ikke lirke den opp.** En kompromittert agent kan ikke trekke ut påloggingsinformasjon fra proxyen – proxyen eksponerer ikke et API, serverer ikke et dashbord, eller aksepterer kommandoer. Den leser én header, løser én referanse, og injiserer resultatet i den utgående forespørselen. Ingen angrepsflate.

**Ingenting i logger.** Agenten skriver `clavitor://Entry/field`. Det er det som vises i stdout, i logger, i samtalehistorikk. Den virkelige påloggingsinformasjonen eksisterer kun inne i proxy-prosessen for varigheten av én HTTP-samtale. Loggaggregatorer, krasjlogger, CI-artefakter – rene.

**Null konfigurasjon.** Ingen rutingtabeller, ingen API-mappinger, ingen påloggingsinformasjonsfiler å administrere. `clavitor://`-referansen i headeren er den eneste instruksjonen. Én `init`, én miljøvariabel, ferdig.

## Språk: Fungerer i alle programmeringsspråk. Ingen SDK kreves.

### 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;
```

## Konfigurasjonsgjengivelse: Lagre konfigurasjonene dine. Ikke hemmelighetene dine.

`clavitor-cli render` skanner enhver fil for `clavitor://entry/field`-referanser, løser hver mot hvelvet, og skriver ut resultatet. Malen er trygg å lagre hvor som helst. Den løste konfigurasjonen lever i en pipe. Hemmeligheter berører aldri disk.

```
# 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": "[resolved]", "db": "[resolved]"}
```

Fungerer med JSON, YAML, TOML, .env, eller enhver tekstfil. Hvis den inneholder `clavitor://`, blir den løst.

## Flere integrasjonsguider

### Infrastruktur

Docker, Kubernetes, Terraform, Ansible, GitHub Actions, GitLab CI, SSH. Null hemmeligheter i konfigurasjon, null hemmeligheter i logger.
[Infrastrukturguide →](https://clavitor.ai/no/developers/infrastructure)

### AI-agenter

Claude Code, Codex, OpenClaw, Hermes, CrewAI, LangChain. Omfangsbegrensede tokens, revisjonsspor, automatisk nedlåsing.
[Agentguide →](https://clavitor.ai/no/developers/agents)

### MSP-verktøy

PowerShell, Datto RMM, N-able, ConnectWise Automate. Utstedelse av påloggingsinformasjon for kundebasen din.
[MSP-guide →](https://clavitor.ai/no/developers/msp)

## Mønsteret er alltid det samme.

Én CLI-kommando, enhver kontekst. Agentens omfang bestemmer hva den kan se. Nivået bestemmer hva den kan dekryptere. Revisjonsloggen registrerer hver tilgang.
[Start gratis](https://clavitor.ai/no/checkout)
