1<!DOCTYPE html><!--NvkFI3K3JcWeGnty8vGQq--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/68d403cf9f2c68c5-s.p.f9f15f61.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/e78bca1c67f3c6b8.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/086b243adc657d55.js"/>
1<script src="/_next/static/chunks/18e416426aee4334.js" async=""></script>
1<script src="/_next/static/chunks/8db8e537a6f2abd2.js" async=""></script>
1<script src="/_next/static/chunks/440b7932303aa943.js" async=""></script>
1<script src="/_next/static/chunks/b48d2d4b029b2afe.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-ecd47d0085b74423.js" async=""></script>
1<script src="/_next/static/chunks/c117910d669fdd7f.js" async=""></script>
1<script src="/_next/static/chunks/d2efd6138645d809.js" async=""></script>
1<script src="/_next/static/chunks/2b1e452b2b1f7f3a.js" async=""></script>
1<script src="/_next/static/chunks/2e6e09be009c86ac.js" async=""></script>
1<script src="/_next/static/chunks/26704f3077b51224.js" async=""></script>
1<script src="/_next/static/chunks/42f882ad049fc6fe.js" async=""></script>
1<script src="/_next/static/chunks/84690edce345e2f6.js" async=""></script>
1<meta name="next-size-adjust" content=""/><meta name="theme-color" media="(prefers-color-scheme: light)" content="white"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="black"/><title>Chat | TinyWhale</title><meta name="description" content="Chat with open source LLMs running entirely in your browser via WebGPU."/><meta name="author" content="TinyWhale"/><meta name="keywords" content="in-browser AI,WebGPU,browser AI,transformers.js,open source LLM,local LLM,private AI,ONNX,web inference"/><meta name="creator" content="TinyWhale"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta property="og:title" content="TinyWhale - In-Browser AI Chat"/><meta property="og:description" content="Chat with open source LLMs running entirely in your browser via WebGPU. No server, no data leaves your device."/><meta property="og:url" content="https://tinywhale.dev"/><meta property="og:site_name" content="TinyWhale"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://tinywhale.dev/og-image.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="TinyWhale - In-Browser AI Chat"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@tantara"/><meta name="twitter:title" content="TinyWhale - In-Browser AI Chat"/><meta name="twitter:description" content="Chat with open source LLMs running entirely in your browser via WebGPU. No server, no data leaves your device."/><meta name="twitter:image" content="https://tinywhale.dev/og-image.png"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/favicon-32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/favicon-16.png" sizes="16x16" type="image/png"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body class="bg-background text-foreground min-h-screen font-sans antialiased inter_dd475d0c-module__9A3jha__variable source_serif_4_81d6187e-module__GRic1G__variable jetbrains_mono_9a7616cc-module__ve5NeG__variable"><div hidden=""><!--$--><!--/$--></div>
1<script>(function(){let a=localStorage.getItem("theme-mode")??"light",b=["light","dark","auto"].includes(a)?a:"light";if("auto"===b){let a=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";document.documentElement.classList.add(a,"auto")}else document.documentElement.classList.add(b)})();</script>
1<div class="flex min-h-screen flex-col bg-ocean-foam"><nav class="fixed top-0 right-0 left-0 z-50 transition-all duration-200 bg-transparent"><div class="container flex items-center justify-between py-4"><a class="flex items-center gap-2 font-semibold" href="/"><img alt="TinyWhale logo" loading="lazy" width="32" height="32" decoding="async" data-nimg="1" style="color:transparent" src="/logo.svg"/><span class="text-lg">TinyWhale</span></a><div class="hidden items-center gap-6 md:flex"><a class="text-foreground/70 hover:text-foreground text-sm font-medium transition-colors" href="/#features">Features</a><a class="text-foreground/70 hover:text-foreground text-sm font-medium transition-colors" href="/how-it-works">How It Works</a><a class="text-foreground/70 hover:text-foreground text-sm font-medium transition-colors" href="/download">Download</a><a class="text-foreground/70 hover:text-foreground text-sm font-medium transition-colors" href="/chat">Chat</a></div><div class="hidden items-center gap-2 md:flex"><a href="https://github.com/tantara/transformers.js-chrome" target="_blank" rel="noopener noreferrer" aria-label="GitHub" data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9"><svg viewBox="0 0 24 24" class="size-5" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"></path></svg></a><button data-slot="dropdown-menu-trigger" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 border shadow-xs size-9 [&>svg]:absolute [&>svg]:size-5 [&>svg]:scale-0" type="button" id="radix-_R_2danpfdb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" class="light:scale-100! auto:scale-0!"><path d="M7.5 0C7.77614 0 8 0.223858 8 0.5V2.5C8 2.77614 7.77614 3 7.5 3C7.22386 3 7 2.77614 7 2.5V0.5C7 0.223858 7.22386 0 7.5 0ZM2.1967 2.1967C2.39196 2.00144 2.70854 2.00144 2.90381 2.1967L4.31802 3.61091C4.51328 3.80617 4.51328 4.12276 4.31802 4.31802C4.12276 4.51328 3.80617 4.51328 3.61091 4.31802L2.1967 2.90381C2.00144 2.70854 2.00144 2.39196 2.1967 2.1967ZM0.5 7C0.223858 7 0 7.22386 0 7.5C0 7.77614 0.223858 8 0.5 8H2.5C2.77614 8 3 7.77614 3 7.5C3 7.22386 2.77614 7 2.5 7H0.5ZM2.1967 12.8033C2.00144 12.608 2.00144 12.2915 2.1967 12.0962L3.61091 10.682C3.80617 10.4867 4.12276 10.4867 4.31802 10.682C4.51328 10.8772 4.51328 11.1938 4.31802 11.3891L2.90381 12.8033C2.70854 12.9986 2.39196 12.9986 2.1967 12.8033ZM12.5 7C12.2239 7 12 7.22386 12 7.5C12 7.77614 12.2239 8 12.5 8H14.5C14.7761 8 15 7.77614 15 7.5C15 7.22386 14.7761 7 14.5 7H12.5ZM10.682 4.31802C10.4867 4.12276 10.4867 3.80617 10.682 3.61091L12.0962 2.1967C12.2915 2.00144 12.608 2.00144 12.8033 2.1967C12.9986 2.39196 12.9986 2.70854 12.8033 2.90381L11.3891 4.3
11802C11.1938 4.51328 10.8772 4.51328 10.682 4.31802ZM8 12.5C8 12.2239 7.77614 12 7.5 12C7.22386 12 7 12.2239 7 12.5V14.5C7 14.7761 7.22386 15 7.5 15C7.77614 15 8 14.7761 8 14.5V12.5ZM10.682 10.682C10.8772 10.4867 11.1938 10.4867 11.3891 10.682L12.8033 12.0962C12.9986 12.2915 12.9986 12.608 12.8033 12.8033C12.608 12.9986 12.2915 12.9986 12.0962 12.8033L10.682 11.3891C10.4867 11.1938 10.4867 10.8772 10.682 10.682ZM5.5 7.5C5.5 6.39543 6.39543 5.5 7.5 5.5C8.60457 5.5 9.5 6.39543 9.5 7.5C9.5 8.60457 8.60457 9.5 7.5 9.5C6.39543 9.5 5.5 8.60457 5.5 7.5ZM7.5 4.5C5.84315 4.5 4.5 5.84315 4.5 7.5C4.5 9.15685 5.84315 10.5 7.5 10.5C9.15685 10.5 10.5 9.15685 10.5 7.5C10.5 5.84315 9.15685 4.5 7.5 4.5Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg><svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" class="auto:scale-0! dark:scale-100!"><path d="M2.89998 0.499976C2.89998 0.279062 2.72089 0.0999756 2.49998 0.0999756C2.27906 0.0999756 2.09998 0.279062 2.09998 0.499976V1.09998H1.49998C1.27906 1.09998 1.09998 1.27906 1.09998 1.49998C1.09998 1.72089 1.27906 1.89998 1.49998 1.89998H2.09998V2.49998C2.09998 2.72089 2.27906 2.89998 2.49998 2.89998C2.72089 2.89998 2.89998 2.72089 2.89998 2.49998V1.89998H3.49998C3.72089 1.89998 3.89998 1.72089 3.89998 1.49998C3.89998 1.27906 3.72089 1.09998 3.49998 1.09998H2.89998V0.499976ZM5.89998 3.49998C5.89998 3.27906 5.72089 3.09998 5.49998 3.09998C5.27906 3.09998 5.09998 3.27906 5.09998 3.49998V4.09998H4.49998C4.27906 4.09998 4.09998 4.27906 4.09998 4.49998C4.09998 4.72089 4.27906 4.89998 4.49998 4.89998H5.09998V5.49998C5.09998 5.72089 5.27906 5.89998 5.49998 5.89998C5.72089 5.89998 5.89998 5.72089 5.89998 5.49998V4.89998H6.49998C6.72089 4.89998 6.89998 4.72089 6.89998 4.49998C6.89998 4.27906 6.72089 4.09998 6.49998 4.09998H5.89998V3.49998ZM1.89998 6.49998C1.89998 6.27906 1.72089 6.09998 1.49998 6.09998C1.27906 6.09998 1.09998 6.27906 1.09998 6.49998V7.09998H0.499976C0.279062 7.09998 0.0999756 7.27906 0.0999756 7.49998C0.0999756 7.72089 0.279062 7.89998 0.499976 7.89998H1.09998V8.49998C1.09998 8.72089 1.27906 8.89997 1.49998 8.89997C1.72089 8.89997 1.89998 8.72089 1.89998 8.49998V7.89998H2.49998C2.72089 7.89998 2.89998 7.72089 2.89998 7.49998C2.89998 7.27906 2.72089 7.09998 2.49998 7.09998H1.89998V6.49998ZM8.54406 0.98184L8.24618 0.941586C8.03275 0.917676 7.90692 1.1655 8.02936 1.34194C8.17013 1.54479 8.29981 1.75592 8.41754 1.97445C8.91878 2.90485 9.20322 3.96932 9.20322 5.10022C9.20322 8.37201 6.82247 11.0878 3.69887 11.6097C3.45736 11.65 3.20988 11.6772 2.96008 11.6906C2.74563 11.702 2.62729 11.9535 2.77721 12.1072C2.84551 12.1773 2.91535 12.2458 2.98667 12.3128L3.05883 12.3795L3.31883 12.6045L3.50684 12.7532L3.62796 12.8433L3.81491 12.9742L3.99079 13.089C4.11175 13.1651 4.23536 13.2375 4.36157 13.3059L4.62496 13.4412L4.88553 13.5607L5.18837 13.6828L5.43169 13.7686C5.56564 13.8128 5.70149 13.8529 5.83857 13.8885C5.94262 13.9155 6.04767 13.9401 6.15405 13.9622C6.27993 13.9883 6.40713 14.0109 6.53544 14.0298L6.85241 14.0685L7.11934 14.0892C7.24637 14.0965 7.37436 14.1002 7.50322 14.1002C11.1483 14.1002 14.1032 11.1453 14.1032 7.50023C14.1032 7.25044 14.0893 7.00389 14.0623 6.76131L14.0255 6.48407C13.991 6.26083 13.9453 6.04129 13.8891 5.82642C13.8213 5.56709 13.7382 5.31398 13.6409 5.06881L13.5279 4.80132L13.4507 4.63542L13.3766 4.48666C13.2178 4.17773 13.0353 3.88295 12.8312 3.60423L12.6782 3.40352L12.4793 3.16432L12.3157 2.98361L12.1961 2.85951L12.0355 2.70246L11.8134 2.50184L11.4925 2.24191L11.2483 2.06498L10.9562 1.87446L10.6346 1.68894L10.3073 1.52378L10.1938 1.47176L9.95488 1.3706L9.67791 1.2669L9.42566 1.1846L9.10075 1.09489L8.83599 1.03486L8.54406 0.98184ZM10.4032 5.30023C10.4032 4.27588 10.2002 3.29829 9.83244 2.40604C11.7623 3.28995 13.1032 5.23862 13.1032 7.50023C13.1032 10.593 10.596 13.1002 7.50322 13.1002C6.63646 13.1002 5.81597 12.9036 5.08355 12.5522C6.5419 12.0941 7.81081 11.2082 8.74322 10.0416C8.87963 10.2284 9.10028 10.3497 9.34928 10.3497C9.76349 10.3497 10.0993 10.0139 10.0993 9.59971C10.0993 9.24256 9.84965 8.94373 9.51535 8.86816C9.57741 8.75165 9.63653 8.63334 9.6926 8.51332C9.88358 8.63163 10.1088 8.69993 10.35 8.69993C11.0403 8.69993 11.6 8.14028 11.6 7.44993C11.6 6.75976 11.0406 6.20024 10.3505 6.19993C10.3853 5.90487 10.4032 5.60464 10.4032 5.30023Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg><svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" class="auto:scale-100!"><path d="M1 3.25C1 3.11193 1.11193 3 1.25 3H13.75C13.8881 3 14 3.11193 14 3.25V10.75C14 10.8881 13.8881 11 13.75 11H1.25C1.11193 11 1 10.8881 1 10.75V3.25ZM1.25 2C0.559643 2 0 2.55964 0 3.25V10.75C0 11.4404 0.559644 12 1.25 12H5.07341L4.82991 13.2986C4.76645 13.6371 5.02612 13.95 5.37049 13.95H9.62951C9.97389 13.95 10.2336 13.6371 10.1701 13.2986L9.92659 12H13.75C14.4404 12 15 11.4404 15 10.75V3.25C15 2.55964 14.4404 2
113.75 2H1.25ZM9.01091 12H5.98909L5.79222 13.05H9.20778L9.01091 12Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg><span class="sr-only">Toggle theme</span></button></div><button class="text-foreground p-2 md:hidden" aria-label="Toggle menu"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-6"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></nav><main class="flex-1 pt-16"><div class="flex h-[calc(100dvh-4rem)] flex-col"><div class="flex flex-1 flex-col items-center justify-center gap-4"><div class="max-w-lg px-4 text-center"><h2 class="mb-2 text-xl font-bold text-ocean-text sm:text-2xl">In-Browser AI Chat</h2><p class="text-ocean-text-muted mb-4 text-sm sm:text-base">Chat with open source large language models running entirely in your browser via WebGPU. No data leaves your device.</p><button data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 shadow-xs h-10 rounded-md px-6 has-[>svg]:px-4 bg-ocean-deep text-white hover:bg-ocean-deep/90">Load Model</button><div class="text-ocean-text-muted mt-2 text-xs"><a href="https://huggingface.co/onnx-community/Qwen3.5-0.8B-ONNX" target="_blank" rel="noopener noreferrer" class="text-ocean-text-muted hover:text-ocean-deep hover:underline">Qwen3.5-0.8B-ONNX</a><span class="mx-1 text-ocean-text-muted/50">·</span><span>~500 MB</span></div></div></div><div class="border-t border-ocean-mid/20 p-3 sm:p-4"><div class="mx-auto max-w-4xl"><div class="mb-2 flex items-center gap-2"><button data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 bg-background hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 border shadow-xs h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5 border-ocean-mid/30 text-ocean-text-muted hover:bg-ocean-shallow text-xs">Settings</button></div><div class="bg-ocean-shallow/50 flex items-end gap-2 rounded-lg border border-ocean-mid/20 p-2"><label class="hover:bg-ocean-light/50 cursor-pointer rounded-md p-2 transition-colors pointer-events-none opacity-50"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-5"><rect width="18" height="18" x="3" y="3" rx="2" ry="2"></rect><circle cx="9" cy="9" r="2"></circle><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"></path></svg><input type="file" accept="image/*" class="hidden" multiple="" disabled=""/></label><textarea class="placeholder:text-ocean-text-muted/60 text-ocean-text max-h-[200px] min-h-[24px] flex-1 resize-none border-0 bg-transparent py-2 text-sm outline-none" placeholder="Load the model first..." rows="1" disabled=""></textarea><button data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='
1size-'])]:size-4 shadow-xs size-9 shrink-0 bg-ocean-deep text-white hover:bg-ocean-deep/90" disabled=""><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="size-4"><path d="m5 12 7-7 7 7"></path><path d="M12 19V5"></path></svg></button></div><p class="text-ocean-text-muted/60 mt-2 text-center text-xs">Generated content may be inaccurate or false. Everything runs locally in your browser.</p></div></div></div></main></div><!--$--><!--/$--><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$-->
1<script src="/_next/static/chunks/086b243adc657d55.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[75656,[\"/_next/static/chunks/c117910d669fdd7f.js\",\"/_next/static/chunks/d2efd6138645d809.js\"],\"ThemeProvider\"]\n3:I[75653,[\"/_next/static/chunks/2b1e452b2b1f7f3a.js\",\"/_next/static/chunks/2e6e09be009c86ac.js\"],\"default\"]\n4:I[36114,[\"/_next/static/chunks/2b1e452b2b1f7f3a.js\",\"/_next/static/chunks/2e6e09be009c86ac.js\"],\"default\"]\n5:I[89447,[\"/_next/static/chunks/c117910d669fdd7f.js\",\"/_next/static/chunks/d2efd6138645d809.js\"],\"Toaster\"]\n6:I[57627,[\"/_next/static/chunks/c117910d669fdd7f.js\",\"/_next/static/chunks/d2efd6138645d809.js\"],\"Analytics\"]\n7:I[30183,[\"/_next/static/chunks/c117910d669fdd7f.js\",\"/_next/static/chunks/d2efd6138645d809.js\",\"/_next/static/chunks/26704f3077b51224.js\",\"/_next/static/chunks/42f882ad049fc6fe.js\",\"/_next/static/chunks/84690edce345e2f6.js\"],\"Navbar\"]\n8:I[87339,[\"/_next/static/chunks/c117910d669fdd7f.js\",\"/_next/static/chunks/d2efd6138645d809.js\",\"/_next/static/chunks/26704f3077b51224.js\",\"/_next/static/chunks/42f882ad049fc6fe.js\",\"/_next/static/chunks/84690edce345e2f6.js\"],\"ChatDemo\"]\n9:I[4527,[\"/_next/static/chunks/2b1e452b2b1f7f3a.js\",\"/_next/static/chunks/2e6e09be009c86ac.js\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[4527,[\"/_next/static/chunks/2b1e452b2b1f7f3a.js\",\"/_next/static/chunks/2e6e09be009c86ac.js\"],\"ViewportBoundary\"]\ne:I[4527,[\"/_next/static/chunks/2b1e452b2b1f7f3a.js\",\"/_next/static/chunks/2e6e09be009c86ac.js\"],\"MetadataBoundary\"]\n10:I[49786,[\"/_next/static/chunks/2b1e452b2b1f7f3a.js\",\"/_next/static/chunks/2e6e09be009c86ac.js\"],\"default\"]\n:HL[\"/_next/static/chunks/e78bca1c67f3c6b8.css\",\"style\"]\n:HL[\"/_next/static/media/68d403cf9f2c68c5-s.p.f9f15f61.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"NvkFI3K3JcWeGnty8vGQq\",\"c\":[\"\",\"chat\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"chat\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/e78bca1c67f3c6b8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/c117910d669fdd7f.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/d2efd6138645d809.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"bg-background text-foreground min-h-screen font-sans antialiased inter_dd475d0c-module__9A3jha__variable source_serif_4_81d6187e-module__GRic1G__variable jetbrains_mono_9a7616cc-module__ve5NeG__variable\",\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen flex-col bg-ocean-foam\",\"children\":[[\"$\",\"$L7\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 pt-16\",\"children\":[\"$\",\"$L8\",null,{}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/26704f3077b51224.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/42f882ad049fc6fe.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/84690edce345e2f6.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$@d\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$@f\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$10\",[]],\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"white\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"black\"}]]\n"])</script>
1<script>self.__next_f.push([1,"11:I[89169,[\"/_next/static/chunks/2b1e452b2b1f7f3a.js\",\"/_next/static/chunks/2e6e09be009c86ac.js\"],\"IconMark\"]\n"])</script>
1<script>self.__next_f.push([1,"f:[[\"$\",\"title\",\"0\",{\"children\":\"Chat | TinyWhale\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Chat with open source LLMs running entirely in your browser via WebGPU.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"TinyWhale\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"in-browser AI,WebGPU,browser AI,transformers.js,open source LLM,local LLM,private AI,ONNX,web inference\"}],[\"$\",\"meta\",\"4\",{\"name\":\"creator\",\"content\":\"TinyWhale\"}],[\"$\",\"meta\",\"5\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"6\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:title\",\"content\":\"TinyWhale - In-Browser AI Chat\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:description\",\"content\":\"Chat with open source LLMs running entirely in your browser via WebGPU. No server, no data leaves your device.\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:url\",\"content\":\"https://tinywhale.dev\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:site_name\",\"content\":\"TinyWhale\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://tinywhale.dev/og-image.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:alt\",\"content\":\"TinyWhale - In-Browser AI Chat\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:creator\",\"content\":\"@tantara\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"TinyWhale - In-Browser AI Chat\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"Chat with open source LLMs running entirely in your browser via WebGPU. No server, no data leaves your device.\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://tinywhale.dev/og-image.png\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"23\",{\"rel\":\"icon\",\"href\":\"/favicon-32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/favicon-16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"25\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$L11\",\"26\",{}]]\n"])</script>
1<script>self.__next_f.push([1,"b:null\n"])</script>
1</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.