---
title: "Udviklere"
description: "Ét CLI-kald. Alle loginoplysninger. Ingen miljøvariabler. Ingen konfigurationsfiler. Ingen loginoplysninger i logs."
lang: da
url: https://clavitor.ai/da/developers
markdown: https://clavitor.ai/da/developers.md
translation_of: https://clavitor.ai/en/developers.md
authoritative: false
publisher: Clavitor LLC
---

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

# Udviklere: Ét CLI-kald. Alle loginoplysninger.

Ingen miljøvariabler. Ingen konfigurationsfiler. Ingen loginoplysninger i logs. Alle loginoplysninger din kode skal bruge, hentes ved kørselstid fra en boks, som din AI-agent ikke kan omgå.

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

Hver AI-agent initialiseres én gang med sin egen token, scopes og rate limits. Derefter kan AI-agenten hente loginoplysninger ved kørselstid. Nøglen gemmes krypteret i boksen, aldrig i miljøvariabler eller kildekode. Hvis nøglen roteres, opdateres den i boksens UI — enhver AI-agent henter den 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åder at bruge det på: Felt, Render eller Proxy.

### Felt

Én værdi. Send den ind i enhver kommando eller script. Loginoplysningen eksisterer kun i pipen — aldrig i en variabel, aldrig på disk.

### Render

Hele konfigurationsfilen. Opløs alle `clavitor://`-referencer ved opstart. Skabelonen kan trygt committes. Den opløste konfiguration lever i en pipe.

### Proxy

HTTPS-proxy. Loginoplysninger opløses fra headere transparent. AI-agenten skriver `clavitor://`, hvor loginoplysningen skal hen — proxyen indsætter den reelle værdi. Intet i logs, intet i AI-agentens hukommelse.

### Hvilken skal jeg bruge?

| Feature | Field | Render | Proxy |
|---|---|---|---|
| Loginoplysninger ud af logs | 3/3 | 2/3 | 3/3 |
| Virker med ethvert programmeringssprog | 3/3 | 3/3 | 3/3 |
| Virker med ethvert værktøj (curl, SDK, browser) | 2/3 | 1/3 | 3/3 |
| Per-AI-agent scoping & audit | 3/3 | 3/3 | 1/3 |
| Flere loginoplysninger på én gang | 1/3 | 3/3 | 2/3 |
| Ingen kodeændringer nødvendige | 0/3 | 0/3 | 3/3 |
| Konfigurationsfiler, der er sikre at committe | 0/3 | 3/3 | 0/3 |
| SSH / ikke-HTTP use cases | 3/3 | 3/3 | 0/3 |

**Hurtigt valg:** Bygger du et script eller CLI-værktøj? Brug **Felt**. Implementerer du en service med en konfigurationsfil? Brug **Render**. Kører du AI-agenter, der foretager API-kald? Brug **Proxy**.

## Hvorfor dette slår enhver anden credential proxy.

**Intet at stjæle.** Cloud-baserede proxyer er mål med høj værdi — bryd én, og du får alle kunders loginoplysninger. Lokale proxyer gemmer loginoplysninger i deres egen konfiguration, læsbar af enhver AI-agent på maskinen. Clavitors proxy indeholder kun en krypteret konfigurationsfil. Ingen plaintext loginoplysninger på disk, ingen credential store at plyndre.

**AI-agenter kan ikke åbne den.** En kompromitteret AI-agent kan ikke udtrække loginoplysninger fra proxyen — proxyen eksponerer ikke en API, serverer ikke et dashboard eller accepterer kommandoer. Den læser én header, opløser én reference og indsætter resultatet i den udgående anmodning. Ingen angrebsflade.

**Intet i logs.** AI-agenten skriver `clavitor://Entry/field`. Det er det, der vises i stdout, i logs, i samtalehistorik. Den reelle loginoplysning eksisterer kun inde i proxy-processen i varigheden af ét HTTP-kald. Logaggregatorer, crash dumps, CI-artefakter — rene.

**Nul konfiguration.** Ingen routingtabeller, ingen API-mappinger, ingen credential-filer at administrere. `clavitor://`-referencen i headeren er den eneste instruktion. Ét `init`, én miljøvariabel, færdig.

## Sprog: Virker i ethvert programmeringssprog. Ingen SDK påkrævet.

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

## Konfigurationsrendering: Gem dine konfigurationer. Ikke dine loginoplysninger.

`clavitor-cli render` scanner enhver fil for `clavitor://entry/field`-referencer, opløser hver mod boksen og outputter resultatet. Skabelonen kan gemmes hvor som helst. Den opløste konfiguration lever i en pipe. Loginoplysninger rører aldrig disken.

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

Virker med JSON, YAML, TOML, .env eller enhver tekstfil. Hvis den indeholder `clavitor://`, bliver den opløst.

## Flere integrationsvejledninger

### Infrastruktur

Docker, Kubernetes, Terraform, Ansible, GitHub Actions, GitLab CI, SSH. Nul loginoplysninger i konfiguration, nul loginoplysninger i logs.
[Infrastrukturvejledning →](https://clavitor.ai/da/developers/infrastructure)

### AI-agenter

Claude Code, Codex, OpenClaw, Hermes, CrewAI, LangChain. Scoped tokens, audit trails, automatisk nedlukning.
[AI-agentvejledning →](https://clavitor.ai/da/developers/agents)

### MSP-værktøjer

PowerShell, Datto RMM, N-able, ConnectWise Automate. Udstedelse af loginoplysninger til din kundebase.
[MSP-vejledning →](https://clavitor.ai/da/developers/msp)

## Mønsteret er altid det samme.

Ét CLI-kald, enhver kontekst. AI-agentens scope bestemmer, hvad den kan se. Niveauet bestemmer, hvad den kan dekryptere. Auditloggen registrerer enhver adgang.
[Start gratis](https://clavitor.ai/da/checkout)
