vercel-labs / tsc-ts
git clone https://github.com/vercel-labs/tsc-ts.git
v0.0.5 · 3d ago
TypeScript written in TypeScript
+9
stars, 24h · #3,662
+~51
stars, 7 days · #3,920
+392
stars, 30 days · #2,081
392
★ total · +15% this week
6
forks · 3 open issues
Star history (as recorded here)
LanguageTypeScript
LicenseApache-2.0
Created2026-10-07 (16d ago)
Last pushtoday
Watchers2
OwnerOrganization
Links
- GitHub: github.com/vercel-labs/tsc-ts
- Homepage: https://tsc-ts.dev
- Releases · Issues · Hacker News mentions
README excerpt
# tsc-ts An experimental TypeScript port of the TypeScript 7.0.2 compiler (TypeScript-Go, or tsgo), compiled to native code with scriptc. ## Installation Install the compiler from npm: [code] The `tsc-ts` package runs a native executable from a per-platform optional dependency (`@tsc-ts/darwin-arm64`, `@tsc-ts/linux-x64-gnu`, …). See `packages/tsc-ts`. See CHANGELOG.md for release notes and GitHub Releases for package archives. To build the packages for the current platform: [code] `-- --binary dist/tsc` packs an existing native build, relative to `packages/tsc-ts`, instead of building one. ## Packages | Package | Description | | ------------------------------------ | ------------------------------------------------------------------------------------------------- | | `packages/tsc-ts` | The compiler, written in TypeScript, with the `tsc-ts` command line and `--api` server. | | `packages/tsgo` | Reference builds of tsgo (its command line and per-stage drivers) that the tests compare against. | Tasks run with Turborepo. ## Documentation `apps/web` contains the tsc-ts compiler guides. [code] ## Requirements - Node.js 24+ and npm - Go 1.26 - A scriptc host: macOS, Linux, or Windows, with `clang` available for linking ## Build [code] `package.json` pins scriptc `0.3.6`, with its `@scriptc/threads` package. The build fails with any other version. ## Compiler `packages/tsc-ts/src/compiler` is the compiler, ported from tsgo 7.0.2 as idiomatic TypeScript. Each part is compared with tsgo on TypeScript's test corpus (about 12,500 files, 17,000 units after splitting multi-file cases): | Part | Compared with tsgo | Status | | ---------------------------- | --------------------------------------------------- | ------------------------ | | Scanner | tokens, values, errors, rescans, JSDoc | all files match | | Parser and AST | tree, diagnostics, API source file encoding | all units match | | Binder | symbols, tables, flow graph, name resolution | all units match | | Module resolution | results, package IDs, `--traceResolution` | all requests match | | `tsconfig.json` and programs | `--showConfig`, `--listFilesOnly`, `--explainFiles` | all cases match | | Command line and options | output, errors, exit codes, `--locale` | all cases match | | Diagnostics catalog | messages, 13 translations, output formats | all match | | JavaScript emit | emitted files, 39 option sets | all compared units match | | Declaration emit | `.d.ts` and `.d.ts.map` output, declaration errors | all units match | | `--build`, `--incremental` | output, `.tsbuildinfo`, emitted files, `--watch` | all scenarios match | | Type checker | diagnostics per file | all files match | The corpus scripts are in `packages/tsc-ts/scripts` (`*-corpus.mjs`). ## API server `tsc-ts --api` serves the same API as TypeScript 7.0.2's `tsc --api`, over stdin and stdout, so tools that drive `tsc --api` (such as scriptc) can run `tsc-ts` instead. [code] Native builds read lib files from the executable's di