# ts-r docs

> Six separate Rust tools for TypeScript, each usable on its own next to tsc, ESLint and Vite. What works today, how to install it, and every error code.

ts-r is a family of command-line tools for TypeScript, written from scratch in Rust. Each tool is
a separate binary that replaces one tool you use today and reads the config you already have.
You can adopt one without the others: none of them needs another ts-r tool or a background
service.

ts-r is in alpha, on the npm dist-tag `next`. To try a tool, [install it from npm](https://ts-r.dev/docs/getting-started/).

## The tools

| Tool | Replaces | Status today |
| --- | --- | --- |
| [`ts-r-dev`](https://ts-r.dev/docs/tools/ts-r-dev/) | `vite dev` | Dev server with hot reload and React Fast Refresh; no `vite.config` support yet |
| [`ts-r-build`](https://ts-r.dev/docs/tools/ts-r-build/) | esbuild, Vite build | esbuild-compatible bundler CLI; no plugins or CSS bundling yet |
| [`ts-r-check`](https://ts-r.dev/docs/tools/ts-r-check/) | `tsc --noEmit` | Type checker in progress: 66.1% of tsc 7's conformance tests match exactly |
| [`ts-r-lint`](https://ts-r.dev/docs/tools/ts-r-lint/) | ESLint + typescript-eslint, oxlint | 103 rules matching ESLint's tests; no type-aware rules yet |
| [`ts-r-run`](https://ts-r.dev/docs/tools/ts-r-run/) | tsx, ts-node | Runs a TypeScript file on your Node, with `--watch` and source maps |
| [`ts-r-lsp`](https://ts-r.dev/docs/tools/ts-r-lsp/) | tsserver, the ESLint server | One shared language server per workspace, with a VS Code extension |

The `ts-r` launcher runs them as `ts-r dev`, `ts-r build` and so on, and `ts-r ci` runs check,
lint and build in parallel. It contains no compiler code
([crates/ts_r_cli](https://github.com/Webb-Ventures/typescript-rust/blob/main/crates/ts_r_cli/AGENTS.md)).

## Where to go next

- [Getting started](https://ts-r.dev/docs/getting-started/): build the tools and run each one.
- [Compatibility and status](https://ts-r.dev/docs/status/): what passes against tsc, esbuild and ESLint today,
  and how the top 1,000 npm packages fare.
- [Error codes](https://ts-r.dev/errors/): one page per diagnostic, starting with the most
  common ones, each with an example and a fix.
- [Sound mode](https://ts-r.dev/docs/sound-mode/): the opt-in mode that makes types hold at runtime (pre-alpha).
- [Benchmarks](https://ts-r.dev/benchmarks/): every measured number, with how it was
  measured, including the ones that miss their targets.

## How these docs are made

The site is a statically exported Next.js app that renders Markdown from
[landing/content](https://github.com/Webb-Ventures/typescript-rust/tree/main/landing/content). Facts come from the crates' `AGENTS.md` files, the design
records and measured runs; error-code examples are run through `ts-r-check` and shown only when
it reports the code. Each page has a Markdown version at the same address with `index.md`
appended, and [llms.txt](https://ts-r.dev/llms.txt) lists them all.

Source: https://ts-r.dev/docs/
