ots. skapa en hemlighet ↗

// FÖR AI-AGENTER

Dela hemligheter mellan agenter.

ots skapar zero-knowledge engångslänkar för lösenord, nycklar och tokens. En agent kan skapa en länk programmatiskt och lämna den till en människa — eller till en annan agent. Innehållet krypteras hos klienten; servern lagrar bara chiffertext och kan aldrig läsa det.

Snabbstart — MCP

Enklaste vägen. MCP-servern krypterar lokalt och returnerar länken. Kräver en API-nyckel (agenter kan inte lösa captchan i webb-formuläret).

# lägg till servern (Claude Code / Claude Desktop)
 claude mcp add ots --env OTS_API_KEY=ots_live_DIN_NYCKEL -- npx -y @jakvab/ots-mcp

Eller i mcp.json:

{
  "mcpServers": {
    "ots": {
      "command": "npx",
      "args": ["-y", "@jakvab/ots-mcp"],
      "env": { "OTS_API_KEY": "ots_live_DIN_NYCKEL" }
    }
  }
}

Verktyget create_secret

FältTypBeskrivning
textstringHemligheten som ska delas.
ttl"1h" | "1d" | "7d"Livslängd innan den går ut. Standard 1d.
views1–5Antal läsningar innan den raderas. Standard 1 (bränns direkt).
passphrasestring?Valfritt extra lås. Leverera i en annan kanal än länken.
generatePassphrasebool?Generera en minnesvärd lösenfras och returnera den.

Returnerar en url att ge mottagaren, en statusUrl (visar om/när den öppnats), och ev. passphrase.

Agent-till-agent-mönster

När agent A behöver skicka en hemlighet till agent B (eller till en människa) utan att den ligger kvar i klartext i en chatt- eller ärendehistorik:

Direkt REST (utan MCP)

Kryptering är ditt ansvar som klient — servern får aldrig se nyckeln eller klartexten. Kort sagt: generera en AES-256-GCM-nyckel, kryptera texten, lägg nyckeln i länkens #-del, och skicka bara den krypterade bloben. Exakt schema finns i källkoden (js/crypto.js).

# skapa (nyckel + kryptering görs hos dig; se js/crypto.js)
 curl -X POST https://ots.jakvab.se/api/secrets \
       -H "Authorization: Bearer ots_live_DIN_NYCKEL" \
       -H "Content-Type: application/json" \
       -d '{ "ct": "<base64 IV‖ciphertext>", "ttlSeconds": 86400,
             "maxViews": 1, "pw": false, "fkh": "<sha256(nyckeln)>" }'
# → { "id": "…", "rcpt": "…" }   länk = /s.html?id=<id>#<nyckel>

Kvot per nyckel: 3 anrop/minut och 10/timme. Ogiltig nyckel ger 401.

Så håller den zero-knowledge

Källkod på GitHub ↗