tsrs FAQ
tsrs is a browser-only TypeScript type microscope. These answers cover what it does, how it handles your code, and how to read its views.
About tsrs
tsrs expands the resolved type that TypeScript and your editor often collapse into an ellipsis. It turns assignability failures into a structural diff, measures type-check cost with a Rust/WASM engine against a TypeScript baseline, and grades the declaration cost of npm packages. Everything runs in the browser: there is no account, no upload and no server-side compiler.
What is tsrs?
tsrs is a browser-only TypeScript type microscope. It expands the resolved type your editor hides behind ellipses, turns assignability errors into structural diffs, and measures type-check cost with a Rust/WASM engine and a TypeScript baseline.
What can I inspect in the Arena?
The Arena shows Type X-Ray type trees, an Error Diff for structural assignability failures, the full diagnostics list, and per-generic Cost Lens measurements. Four presets cover deep errors, zod and tRPC types, recursive types and a stress case.
Does tsrs upload my code?
No. Compilation runs in Web Workers inside your browser. Share links keep the compressed reproduction in the URL fragment, which is never sent to the server. Nothing is stored in an account or a database.
How does the npm type report work?
The report fetches a package’s public TypeScript declarations from jsdelivr in your browser, then measures declaration weight, exported symbols and type-check cost locally. Results are cached in the browser Cache API.
Is tsrs a replacement for tsc or my IDE?
No. The type checker is stock TypeScript. tsrs adds a different view of the same information: resolved types, structural error diffs and cost measurements. Keep using tsc in CI and your editor for everyday work.
Why do the Arena and npm pages need COOP/COEP?
tsrs sends Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy headers so the page is cross-origin isolated. That isolation enables the high-resolution timers used by the speedometer and keeps WebAssembly workers predictable.
Which languages does the interface support?
The interface ships in English, Simplified Chinese, Japanese and Korean, with the choice stored locally. When JavaScript is enabled, the language menu in the header switches this article in place; the URL stays /faq.
Is tsrs free and open source?
Yes. tsrs runs entirely in your browser with no account and no paid tier. The source code, design notes and release history are available in the oxc-project/tsrs repository on GitHub.