cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:20::ac43:4996:8443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=9Qd1ixH6d5Geei0QEbeKxWZEwC044VHtQV%2B0pTOrQ9YnCnjQPzMdO9wCursRRbY2dom%2FpZ8VOB1zoR6nGsDcbKd4MwR5JhCurdsM0qG3nrwkmg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d2ee8cd271-FRA
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 2606:4700:20::681a:114:8443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=cD%2Fl%2FxJmFNsGHPtHAbWiimUlWQ3nUJra8QQwlZNTfQH3El7cOSoOgb0n4DCiiZHoX%2BdmmrX6XqtJ4WpIcjwYHizCFvCFYR1MFrpOsj0i0VzNBQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d24c00d94b-AMS
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 172.67.73.150:443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=CkZsdX6N6KvlKhpRNQkVthxn0y3zFUKJ0CVvH4K3um1zuapqJ1Kp6546QRd3UUipiGmZdCXtEeoxx8%2BgbZ9JA%2FdwcuzsAg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d2db7debb8-YYZ
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 172.67.73.150:8443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Re0LpeikAY3PDB0Mydz7QhANO93cCrP09wfh2g6RcLawtIH78liGthUZel6X4ExkNBSgXbE9FmKn8Kfg3R4k6iPV6Df88w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d2f992c469-BLR
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 2606:4700:20::ac43:4996:443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Rv%2FlVpoq3uh12kYGps878bWRJj3DSbVgVRs%2FBmO8Xej0EBKrEM4OwpfYbischxHbOZlj0JDYU81Hp%2B7jfxAIv3o2%2FqYVE05O4E87mnuZa1ufRg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d2f958741b-BLR
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 2606:4700:20::681a:14:8443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=WeJeIcYq%2BPtc4WNw5B3n7Ja6gj4Q9Pa%2BryRPilwVHqW5lnBvXws8XQJFT6Q%2BQk8IxGUbUYiYDG6D69KIbNzaWC%2BhKoC5Mhzc0hKkLa6gsgH%2BnQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d2fe5ef473-BLR
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 172.67.73.150:80 · gage.io
2026-01-02 07:27
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Jan 2026 07:27:31 GMT
Content-Length: 0
Connection: close
Location: https://gage.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=LO6Yv23o%2Fn3faHnmY%2BL6IH%2BhPWNrc3tvaozTfEP%2FGva6ct%2BcIpPRFYpRveJKQsPaX5b1OA1oxeny0xlDJXMqrSPfV3mUZA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d02ff23a79-FRA
Open service 2606:4700:20::681a:14:80 · gage.io
2026-01-02 07:27
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Jan 2026 07:27:31 GMT
Content-Length: 0
Connection: close
Location: https://gage.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=1gVlahZ9KJBxoq7MBa8EchkQmK0B1p7b4pc%2FN8MK4uWYCx9X1KwrnO8JMVTMXhmpsDUm1tr1cGmCcMnn7gNr09OWCEAkmm0riuxxyf15gyE%2BlA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d00f3636c5-YYZ
Open service 2606:4700:20::681a:114:80 · gage.io
2026-01-02 07:27
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Jan 2026 07:27:31 GMT
Content-Length: 0
Connection: close
Location: https://gage.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=N9BY9dUh5iQ5oCwC6G9K2ZTetS9WkdJ9CR6ziV1YVw3h%2BXxHdWtBRzMLupRZqSzSxTJp6cjXvKYs2jqVzepa1ksRrNBjQ%2Fexm42RzYazwYKJCg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d00dc9de74-YYZ
Open service 104.26.1.20:8443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=dMLcLe9G1LhMv8wddkoFtuVMrZ8PS3gV7aG8URYsxJevtVG9bZF2osfx0s%2Bhy%2B2z7UIttkTPbg9vYO8gclNM%2B1spaOegLw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d21eba904e-FRA
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 104.26.1.20:80 · gage.io
2026-01-02 07:27
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Jan 2026 07:27:31 GMT
Content-Length: 0
Connection: close
Location: https://gage.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=2LhHjr2bL0ltaO1e%2FNbXT0A2qCkVo7iDPmEJo2dissQdyE8nN65v8QFOs7lrJW4sEvF%2FzQVF0z2BKbQZHEeM3EUtm9hNZw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d01d30c72a-FRA
Open service 104.26.0.20:8443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ZRdCECDwStg1oojEi0v9Dl0F3cM6799BJ5mvc%2BVRzS1Ep0WhskkxJ0%2BbgDQ6ZfjYm3HcSeKoWwT8jp4ojtljo7cADhpDcQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d21bd1dbf6-FRA
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 104.26.0.20:80 · gage.io
2026-01-02 07:27
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Jan 2026 07:27:31 GMT
Content-Length: 0
Connection: close
Location: https://gage.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=0RPNP6UIoiuPCzk8CU9PnXyDyYUaCP5pucvGknHWH3IZkoJWvLRprViaWcqFesLg9mY7iRP6pYHMWnk8i4A2riTORwCu2w%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d01e4e1994-FRA
Open service 2606:4700:20::681a:14:443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kEQ5H4zmRdOy0ns75BqB44nvxIMQ8X7n4kfWkxZAGmGjtsy7Lruwicvacxf3vLGpYevoDL5xvpBrqMnxSC5C3o%2Bj%2BK6uanU6LlHW%2Fb5iKoyPHA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d178d7bbb3-FRA
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 2606:4700:20::ac43:4996:80 · gage.io
2026-01-02 07:27
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Jan 2026 07:27:31 GMT
Content-Length: 0
Connection: close
Location: https://gage.io/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=iNaQXXvc7448fc8z3U1D73XAtap3B5gZ3Mzn0SRe0K27Gr%2FsvZ%2FUqw5Zqolvtx4Ku0ynixbny%2BhFjYqCsKIne2FOV6ZShiXz1gUf3XvPUzI2mQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888cfdca90ad6-FRA
Open service 104.26.1.20:443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=R5gBKngtm4hcx2avGR97%2BZBCQpJr0we9JKo56txN%2BGBt9esKOnbmzy6PrO0hGfXsHu8eVk%2FRMo4IbHgHe2Us2y2TuuKHdw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d15a584d26-FRA
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 2606:4700:20::681a:114:443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=v%2Fjl3zC%2BLswZ2LC5Q0v%2Bi4FqsYuhNrfZYFxyD8mCCCM2cINVRbH3eycyI0y63a9vol9hlTlasnOLDuqGJ55V1p8nFxFemb17ajwNlOBLVbYuHA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d26a4a1c7c-AMS
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><
Open service 104.26.0.20:443 · gage.io
2026-01-02 07:27
HTTP/1.1 200 OK
Date: Fri, 02 Jan 2026 07:27:32 GMT
Content-Type: text/html
Content-Length: 11946
Connection: close
ETag: "net68z"
Link: <./_app/immutable/assets/0.gI2jaR1P.css>; rel="preload"; as="style"; nopush, <./_app/immutable/assets/3.oNdm0DV7.css>; rel="preload"; as="style"; nopush, <./_app/immutable/entry/start.BZ_7IQa5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/_4se4UF5.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/30qND2GV.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BYys6yow.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DhfMfE4A.js>; rel="modulepreload"; nopush, <./_app/immutable/entry/app.D0cUTfvH.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/CVx2-2dr.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/z8lSP_gN.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/BxNgbhZF.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/4DUgpEyR.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/0.CupZ813k.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/drMlnDfm.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DaQ1Vill.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DWU5Sd2U.js>; rel="modulepreload"; nopush, <./_app/immutable/chunks/DKKquCJa.js>; rel="modulepreload"; nopush, <./_app/immutable/nodes/3.BGMmED7t.js>; rel="modulepreload"; nopush
x-sveltekit-page: true
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=FA7kb3uPXBZgoe85ciFPayGLe%2BKQfAooyfNg66dqi3FIrmiB9zUYGU%2BsEN%2BOHDx03pfAFASG7xo0YtSDtAuSn2QEA112cw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9b7888d21949dbb3-FRA
Page title: Gage
<!doctype html>
<html
lang="en"
class="h-full bg-white scheme-light dark:bg-gray-950 dark:scheme-dark"
>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&family=Noto+Serif:ital,wght@0,100..900;1,100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap"
rel="stylesheet"
/>
<link href="./_app/immutable/assets/0.gI2jaR1P.css" rel="stylesheet">
<link href="./_app/immutable/assets/3.oNdm0DV7.css" rel="stylesheet"><!--12qhfyh--><link rel="icon" href="/favicon.ico"/><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><!--6upawv--><script>
{
const theme = localStorage.getItem("theme");
document.documentElement.classList.add(
!theme || theme === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: theme,
);
}
</script><!----><!----><title>Gage</title>
</head>
<body data-sveltekit-preload-data="hover" class="h-full">
<div style="display: contents"><!--[--><!--[--><!----><div class="flex flex-col flex-nowrap"><div class="sticky top-0 z-3 border-b border-b-gray-300 bg-gray-200 dark:border-b-gray-600 dark:bg-gray-900"><div class="mx-auto w-full max-w-7xl"><header><nav class="flex items-center justify-between p-4" aria-label="Site"><div class="flex lg:flex-1"><a href="/" class="-m-1.5 p-1.5 font-medium">Gage</a></div> <div class="flex lg:hidden"><button type="button" command="show-modal" commandfor="mobile-menu" class="-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-gray-400"><span class="sr-only">Open nav menu</span> <span class="icon--menu h-6 w-6 svelte-vny38x"></span></button></div> <el-popover-group class="hidden lg:flex lg:gap-x-12"><div class="relative"><button popovertarget="desktop-menu-documentation" class="flex items-center gap-x-1 text-sm/6 font-medium text-gray-900 dark:text-white">Docs <svg viewBox="0 0 20 20" fill="currentColor" data-slot="icon" aria-hidden="true" class="size-5 flex-none text-gray-400 dark:text-gray-500"><path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd" fill-rule="evenodd"></path></svg></button> <el-popover id="desktop-menu-documentation" anchor="bottom" popover="auto" class="m-0 w-screen max-w-md overflow-hidden rounded-lg bg-white p-0 shadow-lg outline outline-gray-900/5 transition transition-discrete [--anchor-gap:--spacing(3)] backdrop:bg-transparent open:block data-closed:translate-y-1 data-closed:opacity-0 data-enter:duration-75 data-enter:ease-out data-leave:duration-75 data-leave:ease-in dark:bg-gray-800 dark:shadow-none dark:-outline-offset-1 dark:outline-white/10"><div class="p-3"><!--[--><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/cli" class="block font-semibold text-gray-900 dark:text-white">Tools <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Gage command line interface</p></div></div><div class="group relative flex items-center gap-x-6 rounded-lg p-3 text-sm/6 hover:bg-gray-50 dark:hover:bg-white/5"><div class="flex-auto"><a href="/docs/api" class="block font-semibold text-gray-900 dark:text-white">API <span class="absolute inset-0"></span></a> <p class="mt-1 text-gray-600 dark:text-gray-400">Build LLM apps in Python</p></div></div><