Native tooling for Node.js projects

Move the whole toolchain closer to the metal.

Install dependencies, transform TypeScript, and build for Node.js or the browser with a native CLI. Knot does not ship its own JavaScript VM; generated code runs in the runtime you choose.

Native CLI Bend2 core CPU-first required path Node.js + browser output

01 / The premise

One native CLI from dependencies to output.

knot install→knot transpile→knot build

Resolve dependencies once, transform source locally, and emit deterministic JavaScript. Node.js or the browser remains responsible for execution.

Resolve onceVerified downloads, lockfiles, and isolated links.
Transform locallySupported TypeScript and JSX become JavaScript with source maps.
Execute elsewhereGenerated output runs in Node.js or the browser.

02 / What exists today

The core ships in layers.

Package management and a compiler subset are available now. Bundling and testing are still in progress.

01Available now

Package management

npm-compatible installs with verified downloads, deterministic lockfiles, isolated dependency links, and a content-addressed store.

knot install
02Available now

TypeScript compiler

Transform a supported TypeScript and JSX subset, follow imports, emit source maps, and leave execution to Node.js or the browser.

knot transpile src/index.ts
03In progress

Production bundler

Complete module graphs, tree-shake reachable code, split chunks, and publish JavaScript, CSS, HTML, and assets atomically.

knot build src/main.ts
04Planned

Isolated test runner

Coordinate Node.js workers for tests with deterministic sharding, snapshots, coverage, reports, and hard process deadlines.

knot test

03 / Measured, not promised

One fixture. Four installers.

One combined view of cached installs on the same manifest. Lower is faster; each manager keeps its own lockfile.

Cached install after deleting node_modules lower is bettermilliseconds
KnotBunpnpmnpm
Fastest reported median Bun
39.38Bun46.45Knot

Bun was 7.07 ms faster than Knot in this run. All tools used the same package manifest, but each generated its own lockfile and resolved graph.

Read the methodology
Unified cached install measurements from 2026-09-27.
ToolMedianPackagesNo-op install
Knot46.45 ms3119.18 ms
Bun39.38 ms2920.48 ms
pnpm550.56 ms29339.88 ms
npm915.21 ms29288.44 ms
Benchmark scope and limits

The fixture manifest was identical for every tool. Each run used warm caches, a separate temporary directory, and five timed installs after deleting node_modules. These measurements do not cover cold caches, first registry resolution, lifecycle scripts, workspaces, or identical lock graphs across tools.

04 / Install

Install Knot.
Keep your workflow.

Knot 0.0.1 is published as @matheusbbarni/knot. The published launcher requires Node.js 18 or newer. Use the source build only when you need the latest repository changes.

Read the release status
Published package · v0.0.1
npmnpm install --global @matheusbbarni/knot
Bunbun add --global @matheusbbarni/knot
pnpmpnpm add --global @matheusbbarni/knot

05 / Next features

What comes next.

The dependable core ships first. Broader bundling and test execution follow the same native, deterministic path.

Now

A dependable core

Verified installs, strict package visibility, compiler transforms, graph analysis, and deterministic output.

Next

A complete build pipeline

Broader syntax support, code splitting, CSS and asset handling, atomic production publication, and watch mode.

Then

A test runner you can trust

Native coordination with isolated Node.js workers, assertions, mocks, snapshots, coverage, and reporters.

Knot mark

The native JavaScript toolchain

Install once.
Build with one tool.