A cross-browser web performance testing toolkit built on Playwright. This repository is a monorepo containing two packages:
| Package | Description |
|---|---|
packages/telescope |
Core CLI and library (@cloudflare/telescope) |
packages/telescope-web |
Web app for uploading and viewing results (telescopetest.io) |
A TypeScript CLI and Node.js library that launches real browsers, collects performance data, and saves results locally.
Supported browsers: Chrome, Chrome Beta, Chrome Canary, Edge, Firefox, Safari (WebKit)
What it collects per test:
- HAR file (
pageload.har) - Web Vitals and performance metrics (
metrics.json) - Console output (
console.json) - Resource timing data (
resources.json) - Screenshot (
screenshot.png) - Filmstrip and video of the page load
Install from npm:
npm install -g @cloudflare/telescope
telescope -u https://example.com -b chromeThe postinstall script automatically downloads Playwright's browser binaries (~700MB).
Or from a clone of this repo:
npm install
npm run build -w packages/telescope
npm link # registers `telescope` globally
telescope -u https://example.com -b chromeSee packages/telescope/README.md for full documentation.
The Astro + Cloudflare Workers web application hosted at telescopetest.io. Users upload Telescope ZIP results and view an interactive breakdown of metrics, waterfall, filmstrip, console logs, and more.
Stack: Astro v6, Cloudflare Workers, D1 (SQLite via Prisma), R2, Workers AI
cd packages/telescope-web
npm install
npm run dev:setup # one-time setup: DB, migrations, Prisma client, type generation
npm run devSee packages/telescope-web/README.md for full documentation.
packages/
telescope/ # Core CLI and library
src/ # TypeScript source
__tests__/ # Integration tests (Vitest)
tests/ # Static test fixtures
processors/ # Standalone HTML report generator
support/ # Browser support files
telescope-web/ # telescopetest.io web app
src/ # Astro pages, components, and server logic
migrations/ # D1 SQL migrations
prisma/ # Prisma schema
.github/
workflows/
test.yml # CI: builds and tests packages/telescope on every PR
deploy.yml # CD: deploys packages/telescope-web on merge to main
test.yml— runs on every push and PR (excludingpackages/telescope-web/**changes). Buildspackages/telescopeand runs the full browser test suite inside the official Playwright Docker container.deploy.yml— runs on push tomainwhenpackages/telescope-web/**changes. Applies D1 migrations, builds, and deploys to Cloudflare Workers.
Apache 2.0 — see LICENSE.