Test any LLM API key in seconds.
KeyForge is a free, universal LLM API key tester. Paste an API key from any major provider, instantly verify it works, see which models you have access to, benchmark latency, and copy ready-to-use cURL / Python / Node snippets.
Zero signup. Open source. MIT-licensed.
🌐 Live: keyforge.dimssu.com
Replace these placeholders with real screenshots after first deploy.
docs/screenshots/home.png— homepage with provider griddocs/screenshots/test-openai.png— OpenAI test page with results paneldocs/screenshots/playground.png— playground streaming a responsedocs/screenshots/bulk.png— bulk tester CSV export
Every major LLM has its own dashboard, key shape, and validation flow. Switching between OpenAI, Anthropic, Gemini, Groq, and a dozen others means a dozen browser tabs, a dozen curl invocations, and a dozen ways to leak a key into a log. KeyForge gives you one place to:
- Validate a pasted key against the upstream provider.
- See which models the key can call.
- Benchmark latency (p50 / p95 / p99 over 5 pings).
- Copy ready-to-paste snippets for cURL, Python, Node fetch, and axios.
- Compare providers side-by-side.
- Drop in for the bulk tester when you're rotating a stack of keys at once.
The proxy that does the upstream call is stateless — your key is forwarded once, the response comes back, and the key is forgotten. No DB, no logs of headers, no analytics on key values.
OpenAI · Anthropic · Google Gemini · Mistral · Cohere · Groq · DeepSeek · xAI Grok · Perplexity · Together AI · Fireworks AI · OpenRouter · Azure OpenAI · AWS Bedrock · Hugging Face · Replicate · Ollama (local)
That's 17 today. Add another in under 30 minutes →
pnpm install
pnpm devThe site runs at http://localhost:3000. No env vars are required for the core flow. Optional env vars (in .env.local):
KEYFORGE_SIGNING_SECRET— enables shareable redacted result URLs and rotation reminders.RESEND_API_KEY— enables the rotation-reminder email feature (hidden when unset).NEXT_PUBLIC_SITE_URL— overrides the canonical / OG base URL (defaults tohttps://keyforge.dimssu.com).
pnpm build
pnpm startpnpm build statically generates 17 provider test pages and 8 guide articles (plus the homepage, compare, bulk, playground, and tools pages). The proxy + share + reminder routes are server-rendered.
pnpm typecheck # TypeScript strict
pnpm lint # next lint
pnpm test # Vitest unit tests (provider registry, csv, webhooks, jwt)
pnpm test:e2e # Playwright (homepage, OpenAI, Anthropic flows)
pnpm lhci # Lighthouse CI — fails under 95 on any categoryThe one-click button at the top of this README is the fast path. After deploying:
- Open your Vercel project → Settings → Domains.
- Add
keyforge.dimssu.comas a custom domain. - Add the DNS records below at your registrar (Namecheap, Cloudflare, Route 53, etc.).
| Type | Host | Value | TTL |
|---|---|---|---|
| CNAME | keyforge | cname.vercel-dns.com. | Auto |
If you're hosting dimssu.com on Cloudflare, set the proxy mode to DNS only (grey cloud) — Vercel handles its own TLS.
Set under Settings → Environment Variables:
| Name | Required? | Purpose |
|---|---|---|
NEXT_PUBLIC_SITE_URL |
no | Defaults to https://keyforge.dimssu.com. |
KEYFORGE_SIGNING_SECRET |
optional | Enables share links + rotation reminders. |
RESEND_API_KEY |
optional | Enables rotation reminder emails. |
REMINDER_FROM_EMAIL |
optional | Defaults to no-reply@keyforge.dimssu.com. |
KEYFORGE_RATE_LIMIT_PER_MINUTE |
optional | Per-IP rate limit on /api/proxy/*. Default 30. |
KEYFORGE_KEY=sk-... npx keyforge validate openai
KEYFORGE_KEY=sk-ant-... npx keyforge models anthropic
KEYFORGE_KEY=gsk_... npx keyforge bench groq 10See cli/README.md.
The privacy story is the product. The short version:
- Your key is sent through a stateless proxy and forwarded directly upstream.
- We never log, store, or persist it.
- Share URLs encode only the last 4 characters of the key.
- The reminder feature signs a JWT with
{ email, providerId, expiresAt }— never the key.
The long version is on /privacy.
app/ # Next.js 14 App Router
api/proxy/[provider]/ # The trust boundary — stateless, never logs the key
test/[provider]-api-key/ # SEO surface, generateStaticParams over registry
(marketing)/ # Homepage, guides, privacy, security
bulk, compare, playground, tools/{rate-limit,webhook-validator,status}
components/ # UI: navbar, footer, key-input, command palette, results, snippets
lib/
providers/ # Registry + 17 adapters + OpenAI-compat helper
seo/ # Metadata + JSON-LD builders
collections/ # Postman / Insomnia / Bruno exports
rate-limit, jwt, share, status-pages, csv, webhooks, snippets
content/, lib/guides-content.ts # Long-form copy
agents/ # Per-agent specs + completion logs
cli/ # `npx keyforge` companion
See CONTRIBUTING.md. Adding a new provider should take under 30 minutes; the guide walks you through it step-by-step.
MIT. Use it, fork it, deploy your own copy. See LICENSE.
- @dimssu — author + maintainer
If you submit a PR that lands, you'll be added here. KeyForge is a community project; we especially welcome new provider adapters and guide articles.