From 757870a2551a5d00782247363f11e04eb7394a71 Mon Sep 17 00:00:00 2001 From: Calvin Tan - aelf Date: Fri, 10 Jul 2026 14:02:52 +0800 Subject: [PATCH 1/2] Add NyxID to Works with OpenRouter NyxID is an open-source credential gateway: users bring their own OpenRouter key, and NyxID brokers it at the proxy layer so AI agents (Claude Code, Cursor, Codex, ...) can call OpenRouter without ever reading the raw credential. Each agent gets its own scoped key, with per-agent isolation, rate limits, and audit attribution. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/nyxid/app.yaml | 9 +++++++++ apps/nyxid/logo.png | Bin 0 -> 8505 bytes 2 files changed, 9 insertions(+) create mode 100644 apps/nyxid/app.yaml create mode 100644 apps/nyxid/logo.png diff --git a/apps/nyxid/app.yaml b/apps/nyxid/app.yaml new file mode 100644 index 0000000..acf5ff6 --- /dev/null +++ b/apps/nyxid/app.yaml @@ -0,0 +1,9 @@ +name: "NyxID" +description: "Connect AI agents to OpenRouter without handing them a raw key. Bring your own OpenRouter key — NyxID brokers it at the proxy layer, so each agent gets a scoped credential it can use but never read, with per-agent isolation and audit trails." +url: "https://nyx.chrono-ai.fun" +docs: "https://nyx.chrono-ai.fun/docs/ai/guides/openrouter" +tags: + - coding + - productivity +open_source: "https://github.com/ChronoAIProject/NyxID" +date_added: "2026-07-10" diff --git a/apps/nyxid/logo.png b/apps/nyxid/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3d2c59e547e5fe08733620b456abce54dfb7c0d3 GIT binary patch literal 8505 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 literal 0 HcmV?d00001 From 6a08b688b120d8ebc97bf4cbaf68faa177b84f65 Mon Sep 17 00:00:00 2001 From: Calvin Tan - aelf Date: Fri, 10 Jul 2026 14:06:16 +0800 Subject: [PATCH 2/2] Sharpen NyxID pitch: one key for every model, one setup for every agent Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/nyxid/app.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/nyxid/app.yaml b/apps/nyxid/app.yaml index acf5ff6..7d7e089 100644 --- a/apps/nyxid/app.yaml +++ b/apps/nyxid/app.yaml @@ -1,5 +1,5 @@ name: "NyxID" -description: "Connect AI agents to OpenRouter without handing them a raw key. Bring your own OpenRouter key — NyxID brokers it at the proxy layer, so each agent gets a scoped credential it can use but never read, with per-agent isolation and audit trails." +description: "OpenRouter gives you one key for every model; NyxID lets you hand that key to every agent. Set it up once, then split it into scoped per-agent keys that proxy through NyxID — each agent uses the credential but never reads it, with per-agent isolation, rate limits, and audit." url: "https://nyx.chrono-ai.fun" docs: "https://nyx.chrono-ai.fun/docs/ai/guides/openrouter" tags: