One prompt. Every model. Pick the winner.
System prompt (optional, sent to every contender)
Run history
Runs live only in this browser (localStorage). Crown winners to feed the leaderboard; open a run to re-read every output and its preview.
Leaderboard
Wins are the runs where you crowned the model. Latency and output size are averaged over every appearance.
Provider keys
Keys are stored only in this browser and sent only to the matching provider's official API over HTTPS. Nothing ever touches a juniper-0 server. Generated apps run in sandboxed frames that cannot read them.
Model roster
Model IDs change fast — add any ID a provider ships. New entries appear as contender chips in the arena.
Local models: any OpenAI-compatible server works — Ollama (http://localhost:11434/v1), LM Studio (http://localhost:1234/v1), vLLM, llama.cpp. Enable CORS on the server first (Ollama: OLLAMA_ORIGINS=https://analyze.juniper-0.com). From this HTTPS site browsers can only reach localhost/127.0.0.1; to use a model server on another LAN box, run analyze locally with npm run dev.
Pricing ($ per 1M tokens)
Used for the per-run cost estimate. Prefilled with July 2026 list prices where known — edit anytime, they drift.
Publishing a winner
Every pane can Download app (the extracted build as a self-contained app.html) and every finished run can Export showcase — one file with all contenders, previews, metrics and the crowned winner.
- Download the
app.html/ showcase file. - Commit it under
deployments/<name>/index.htmlinProject_Juniper. - Ask Claude to publish it: “deploy deployments/<name> as <name>.juniper-0.com” — the same Hostinger flow that shipped this site (subdomain + archive deploy) does the rest.
This site itself is static — no backend, no analytics, no cookies.