Simon-Pierre Boucher
All apps & projects
Zyquo Cloud Web icon
Web Platform
TypeScript

Zyquo Cloud Web

Every cloud model. One chat. Zero backend.

A browser-native AI chat for 170 models across 12 providers — bring your own keys, nothing ever leaves your device.

170

models

12

providers

169/169

models verified live

288 kB

gzipped core bundle

56

prompt templates

0

backend servers

Overview

Zyquo Cloud Web is the browser edition of the native Zyquo Cloud app: a full multi-provider AI chat that runs entirely client-side. There is no backend, no account, and no telemetry — your API keys live in your browser and are sent only to the provider you call, directly over CORS.

Under the hood are two faithfully ported wire clients — one OpenAI-compatible client covering 11 providers plus custom endpoints, and one native Anthropic Messages API client — driven by a hand-rolled incremental SSE parser over fetch and ReadableStream. Reasoning streams, Perplexity citations, vision attachments, and auto-retry with backoff are all handled.

Power features go well beyond chat: multi-model compare across up to four streaming columns, variants and branching, a Command-K palette, slash commands, 8 personas, 56 prompt templates, a token-and-cost HUD, and local-first persistence in IndexedDB with optional AES-GCM passphrase encryption.

Key Features

BYOK, no backend

Keys stay in your browser and go only to the provider you call. Strict CSP locks connections to exactly the 12 provider origins plus localhost.

Hand-rolled streaming engine

Token-by-token rendering with live tok/s, stop and continue, and one incremental SSE parser handling both OpenAI-style and Anthropic named events.

Multi-model compare

Broadcast one prompt to 2-4 columns streaming independently, each with its own stop, copy, and regenerate — then promote the best answer into your thread.

Variants and branching

Regenerate keeps previous answers as swipeable variants, branch whole conversations from any message, and edit-and-resend forks from earlier turns.

Command palette and slash commands

A Command-K palette for actions, conversations, models, personas, and templates, plus slash commands with input substitution from a 56-template library.

Vision and attachments

Drag, drop, or paste images as base64 parts and inject text files as fenced context blocks, gated by each model's real capabilities.

Token and cost HUD

Per-message and per-conversation token counts and cost estimates from catalog pricing, with a context-window bar and auto-trim at 90% capacity.

Local-first persistence

Conversations in schema-versioned IndexedDB, settings in namespaced localStorage, full JSON export/import, and undo for deletes — surviving full browser restarts.

Optional passphrase vault

The key map can be encrypted at rest with AES-GCM via WebCrypto and a PBKDF2-derived key using 310k iterations.

How It Works

  1. providers/ — all networking

    A 12-provider registry, one OpenAI-compatible client, a native Anthropic Messages client, the SSE parser with retry, and the complete 170-model typed catalog.

  2. storage/ — all persistence

    The only code touching localStorage and IndexedDB: key map with vault overlay, conversation CRUD with schema migration, settings, and backup export/import.

  3. Zustand store

    A single store orchestrating send, stream, stop, regenerate, branch, and auto-titling — components stay presentational by enforced architectural invariant.

  4. Static deployment

    A 100% static build hosted anywhere; production runs a zero-dependency Node server adding CSP, HSTS, and security headers under PM2 behind an ngrok custom domain.

Tech Stack

Frontend

React 19
TypeScript (strict)
Vite 7
Zustand 5
CSS custom properties (ZyquoTheme tokens)

Rendering

react-markdown
remark-gfm
rehype-highlight
KaTeX
Mermaid (lazy-loaded)

Storage & Security

IndexedDB (dependency-free wrapper)
namespaced localStorage
AES-GCM WebCrypto vault
strict CSP

Testing & Deploy

Playwright (Chromium/WebKit/Firefox)
GitHub Actions CI
GitHub Pages
PWA via Workbox
zero-dependency Node prod server

Highlights

  • Verified live with real keys from a real browser: 169/169 models streaming, 12/12 providers on non-streaming, stop, and CORS, and a network audit showing the page contacted provider origins and localhost — nothing else.
  • CORS feasibility was empirically probed per provider — preflight, authenticated POST, and streaming — and documented with official sources in a public CORS matrix.
  • Dependency-light on purpose: no icon packs, no CSS framework, no IndexedDB wrapper library, no auth SDKs — every dependency is key-theft surface.
  • The ZyquoTheme design system is ported token-for-token from the native macOS app, with light and dark themes, 5 accent choices, and reduced-motion support.
  • Installable PWA with a 1.15 MB app-shell precache that never caches API responses or keys, fully responsive down to phones.
  • Live at www.zyquo.cloud with an auto-deployed GitHub Pages mirror; a per-provider base-URL override can point any provider at a local Zyquo Router.

Explore Zyquo Cloud Web

Browser edition of Zyquo Cloud — the full source is on GitHub.