nodejs/amaro — explained in plain English
Analysis updated 2026-08-14 · repo last pushed 2026-08-03
Run TypeScript files directly in Node.js without a separate build step.
Iterate on shared libraries in a monorepo and see changes immediately without rebuilding packages.
Convert TypeScript source code to JavaScript on the fly using the transformSync function in your own code.
| nodejs/amaro | gaearon/suspense-experimental-github-demo | gaearon/todos | |
|---|---|---|---|
| Stars | 791 | 795 | 785 |
| Language | JavaScript | JavaScript | JavaScript |
| Last pushed | 2026-08-03 | 2020-12-28 | 2020-06-10 |
| Maintenance | Active | Dormant | Dormant |
| Setup difficulty | easy | easy | easy |
| Complexity | 2/5 | 2/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Limited to TypeScript version 5.8, so newer language features may not be supported yet.
Amaro is a tool that lets Node.js run TypeScript files directly, without a separate build step that compiles them to plain JavaScript first. TypeScript adds type annotations to JavaScript code, like labeling a variable as a string or a number, which helps developers catch mistakes early. But Node.js itself only understands plain JavaScript. Amaro handles the translation by stripping away those TypeScript-specific annotations and leaving the rest of your code intact so Node.js can run it. It's the same mechanism Node.js uses internally for its own TypeScript support, packaged so anyone can use it independently. At a high level, Amaro takes TypeScript source code, removes the type annotations, and replaces them with blank space so that error messages and stack traces still point to the correct line numbers. You can use it as a command-line loader that intercepts .ts files when Node.js tries to run them, or call its transformSync function directly from code to convert TypeScript strings into JavaScript on the fly. The main audience is developers working in TypeScript who want to skip the usual compile-then-run workflow. It's especially useful in monorepos, projects with multiple linked packages, where you'd normally need to rebuild every package after each change. With Amaro, you can reference TypeScript source files directly, and any edits you make are picked up immediately when you restart the app. For example, a team iterating on a shared library inside a larger app could edit the library's TypeScript source and see the changes reflected without running a build tool in between. One notable tradeoff: Amaro currently supports TypeScript version 5.8, so if you rely on language features introduced in a newer release, you may need to wait for an update. The project is built on a WebAssembly port of SWC, a fast JavaScript parser written in Rust, which keeps the transformation lightweight. It offers two modes: a "strip-only" mode that simply removes type annotations, and a "transform" mode that can handle more complex TypeScript features, at the cost of needing source maps enabled for accurate stack traces.
Amaro lets Node.js run TypeScript files directly by stripping away type annotations on the fly, skipping the usual compile-then-run workflow. It's the same engine Node.js uses internally for its own TypeScript support.
Mainly JavaScript. The stack also includes JavaScript, TypeScript, WebAssembly.
Active — commit in last 30 days (last push 2026-08-03).
No license information provided in the repo description.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.