vercel-labs/scriptc

▲ 792 stars today★ 5,904⑂ 166

TypeScript-to-Native Compiler

About vercel-labs/scriptc

vercel-labs/scriptc is an open-source project on GitHub, mainly written in TypeScript. TypeScript-to-Native Compiler It currently holds 5,904 stars and 166 forks with 66 open issues, and was last pushed on 2026-10-03 (repository created 2026-07-22).

Project Overview

Git Homed tracks it on the Today's Trending board.

GitHub Repository Details

Repository vercel-labs/scriptc · default branch main · size 37789 KB · watchers 18 · source: GitHub REST API and repository README

README

scriptc

https://github.com/vercel-labs/scriptc/blob/HEAD/Vercel Labs Experiment https://github.com/vercel-labs/scriptc/blob/HEAD/npm version: scriptc https://github.com/vercel-labs/scriptc/blob/HEAD/License: Apache-2.0 https://github.com/vercel-labs/scriptc/blob/HEAD/npm downloads per month: scriptc

scriptc compiles TypeScript and JavaScript to native executables and WebAssembly. It uses TypeScript's type information to compile supported code to native instructions. Static builds run without Node.js or a JavaScript engine.

For npm dependencies and any-typed code, enable --dynamic to include the embedded quickjs-ng engine. Dependency JavaScript is included at build time.

scriptc is experimental and supports a subset of JavaScript, TypeScript, and Node.js APIs. See the limitations and Node.js compatibility reference before using it for an existing project.

Installation

Install with Node.js 24 or later and npm:

$ npm install -g scriptc

The installed compiler runs natively on supported macOS, Linux, and Windows hosts. Native compilation and execution do not require Node.js. Standalone compiler archives are also available from GitHub Releases.

Executable builds require a platform linker and SDK/sysroot. See the quickstart for prerequisites and platform support for host requirements, cross-compilation, and WebAssembly.

Build a program

Create hello.ts:

const who = process.argv.length > 2 ? process.argv[2] : "world";
console.log(hello, ${who});

Compile and run it in one step:

$ scriptc run hello.ts
hello, world

Or write a standalone executable:

$ scriptc build hello.ts -o hello
$ ./hello scriptc
hello, scriptc

These examples use POSIX shell syntax. On Windows, build hello.exe and run it with .\hello.exe.

Use scriptc coverage hello.ts to check which operations compile statically, require dynamic execution, or are unsupported. See coverage reports for details.

Use Node APIs

Supported Node APIs compile to the native runtime. For example, server.ts:

import { createServer } from "node:http";

const server = createServer((req, res) => { res.setHeader("content-type", "application/json"); res.end(JSON.stringify({ path: req.url })); });

server.listen(8080, () => { console.log("listening on http://localhost:8080"); });

$ scriptc build server.ts -o server
$ ./server
listening on http://localhost:8080

Use npm packages

Pass --dynamic to embed an npm package's JavaScript in the executable. The result does not read node_modules at runtime.

Create cli.ts:

import pc from "picocolors";

console.log(pc.green("hello from scriptc"));

$ npm install picocolors
$ scriptc build cli.ts --dynamic -o cli
$ ./cli
hello from scriptc

Enabling --dynamic does not add support for unsupported statically typed calls. See npm dependencies for package resolution and the boundary between static and dynamic code.

Documentation

Contributing

See CONTRIBUTING.md for source setup, testing, native artifact builds, and docs development.

GitHub Stars & Activity

5,904Stars
166Forks
66Open issues
TypeScriptLanguage

GitHub Popularity

GitHub stars5,904
Forks166
Open issues66
Primary languageTypeScript
LicenseApache-2.0
Stars gained today792
Created2026-07-22
Last pushed2026-10-03

Trending History

Weekly boardrank #45 · ▲ 792 stars

Related GitHub Projects

1

anthropics / claude-code

TypeScript★ 149,409⑂ 25,484▲ 336 stars
→
2

iptv-org / iptv

TypeScript★ 140,319⑂ 8,191▲ 106 stars
→
3

garrytan / gstack

TypeScript★ 135,116⑂ 20,089▲ 121 stars
→
4

earendil-works / pi

TypeScript★ 112,417⑂ 14,255▲ 400 stars
→
5

thedotmack / claude-mem

TypeScript★ 96,057⑂ 8,482▲ 627 stars
→
6

OpenCut-app / OpenCut

TypeScript★ 92,053⑂ 9,078▲ 512 stars
→
7

heygen-com / hyperframes

TypeScript★ 56,704⑂ 5,087▲ 410 stars
→
8

mksglu / context-mode

TypeScript★ 25,380⑂ 1,815▲ 189 stars
→

More Trending Repositories