Get Started with Perry
From zero to a running native executable in three steps. No Node.js, no bundler, no runtime to install on the target machine.
Get Started
Install Perry and start compiling TypeScript to native executables
1Installation
$ brew tap PerryTS/perry$ brew install perryRequires Homebrew. Supports macOS arm64 and x86_64.
2Usage
perry compile main.tsCompiles main.ts to a native executable
perry compile main.ts -o myappSpecify the output executable name
perry compile main.ts --enable-js-runtimeEnable V8 for JavaScript npm package compatibility
perry check ./srcValidate TypeScript code for native compilation
Your first binary, step by step
Once Perry is installed, compiling TypeScript to a native executable is a single command. Write a file:
const name = process.argv[2] ?? "World";
console.log(`Hello, ${name}!`);Compile it and run the result — the output is a self-contained machine-code binary, not a bundled script:
$ perry compile hello.ts
✓ Compiled executable: hello
$ ./hello Perry
Hello, Perry!
That binary starts in about a millisecond and runs on any machine with the same OS and architecture — nothing to install first. Read more about how Perry compiles TypeScript to a binary or what happens inside the TypeScript native compiler.
Where to go next
Documentation
Guides for the CLI, perry/ui widgets, threading, i18n, and every compilation target — at docs.perryts.com.
Showcase
Real apps compiled with Perry, shipping on the App Store and beyond.
Compare
How Perry stacks up against Bun, Deno, Electron, Tauri, React Native, and Static Hermes.
GitHub
Source, issues, and discussions — Perry is open source.