The tsc-ts native binary runs on Linux, delivering the same results as the standard TypeScript compiler.
*An experimental port of the TypeScript 7.0.2 compiler now runs as native code. Vercel Labs pushes the boundaries by compiling the compiler itself with scriptc, promising parity with the official release.*
Vercel Labs has released tsc-ts, a bold experiment that rewrites the TypeScript 7.0.2 compiler in TypeScript itself and then compiles it to native code. The project lives on GitHub under vercel-labs/tsc-ts and already shows 616 commits, 218 stars, and a single fork. By leveraging the scriptc host, the team claims full functional parity with the official compiler while delivering a native executable for macOS, Linux, and Windows. The move challenges the conventional belief that compilers must be written in lower‑level languages to achieve native performance.
tsc-ts is an experimental TypeScript port of the TypeScript 7.0.2 compiler, also known as TypeScript‑Go or tsgo. The project rewrites the compiler in idiomatic TypeScript and then compiles it to native code using the scriptc host. The source lives under the vercel-labs organization on GitHub and currently holds 616 commits. It is released under the Apache‑2.0 license and has attracted 218 stars. The repository includes a full test suite that mirrors the official compiler's behavior across the entire test corpus.
The tsc-ts test harness runs against TypeScript's test corpus of about 12,500 files, split into roughly 17,000 units. Every compiler stage—scanner, parser, binder, module resolution, command‑line handling, diagnostics, JavaScript emit, declaration emit, incremental builds, and watch mode—produces identical results to the reference tsgo build. The API server mirrors the tsc --api interface of version 7.0.2, returning matching responses for each request. Language‑service methods such as getCompletionsAtPosition and getDocumentationComment are supported, while profiling hooks are omitted.
Installation uses npm. Run npm install -D tsc-ts to add the package, then invoke the compiler with npx tsc-ts -p tsconfig.json. The command line pulls a per‑platform native executable from optional dependencies like @tsc-ts/darwin-arm64 or @tsc-ts/linux-x64-gnu. For a native build, execute npm run pack:npm -w tsc-ts to generate a tarball, then install it with npm run pack:npm -w tsc-ts -- --check. The binary can be invoked directly via packages/tsc-ts/dist/tsc or through the --api mode for tooling integration.
tsc-ts requires Node.js 24+ and Go 1.26. The scriptc host must run on macOS, Linux, or Windows with clang available for linking. The build pins scriptc to version 0.3.5; any other version causes failure. To compile from source, run npm ci, then npm run fetch:upstream to clone the tsgo reference at the pinned commit, followed by npm run build to produce the Node.js version and npm run build:oracle for reference builds. Native binaries are produced with npm run build:native -w tsc-ts, optionally unoptimized with npm run build:native:dev. The resulting executable reads library files from its directory or from the TSC_TS_LIB_DIR environment variable.
tsc-ts is an experimental TypeScript port of the TypeScript 7.0.2 compiler, written in TypeScript and compiled to native code with scriptc.
Install via npm with npm install -D tsc-ts and run the compiler using npx tsc-ts -p tsconfig.json; native binaries are pulled from per‑platform optional dependencies.
It runs against TypeScript's test corpus of about 12,500 files (≈17,000 units) and matches the reference tsgo build on every compiler stage.
If tsc-ts lives up to its test‑suite parity, it could reshape how language tooling is built, blurring the line between source and compiler. The project remains experimental, but its open‑source nature invites scrutiny and contribution. As the ecosystem watches, the next milestone will be real‑world adoption in build pipelines that demand both speed and TypeScript fidelity.
Sources: [Hacker News – tsc-ts: TypeScript written in TypeScript]