# tsx changelog > Runs TypeScript and ESM directly in Node, as a CLI and a loader. - Vendor: tsx - Category: Developer Tools - Official site: https://tsx.hirok.io - Tracked by: What's New (https://whatsnew.fyi/product/tsx) - Harvested from: GitHub (privatenumber/tsx) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v4.23.1 - Date: 2026-07-13 - Version: v4.23.1 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.23.1 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.23.1 ##### [4.23.1](https://github.com/privatenumber/tsx/compare/v4.23.0...v4.23.1) (2026-07-13) ###### Bug Fixes * support tsImport after global preload ([8d4ffc2](https://github.com/privatenumber/tsx/commit/8d4ffc24f37b396ca2fe3f251aa92c4919f2c1a4)) * **watch:** avoid clearing piped output ([95d0672](https://github.com/privatenumber/tsx/commit/95d0672e0247a829ae4469daa493212967ea768e)) * **watch:** treat script and dependency paths literally ([79fddde](https://github.com/privatenumber/tsx/commit/79fddde523d3bb7d0af66682ce1265f95113a073)) ###### Performance Improvements * index transform cache lazily ([e818ad6](https://github.com/privatenumber/tsx/commit/e818ad608159a6fb36fb8a0bd59327fec313323d)) * load esbuild lazily in CLI ([d067938](https://github.com/privatenumber/tsx/commit/d0679381b60a55a9b5863603a4022a81db5d13c8)) * map Node TypeScript formats directly ([cdcc623](https://github.com/privatenumber/tsx/commit/cdcc6232a3277fb3028b226958b66c49a6d86c17)) * use sync module hooks on Node v22.22.3+ ([f8992f1](https://github.com/privatenumber/tsx/commit/f8992f1a50213e11b7ef8ab5121c78e0d2f29384)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.23.1) ### v4.23.0 - Date: 2026-07-03 - Version: v4.23.0 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.23.0 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.23.0 #### [4.23.0](https://github.com/privatenumber/tsx/compare/v4.22.5...v4.23.0) (2026-07-03) ###### Bug Fixes * avoid redundant filesystem probes during module resolution ([257bbbb](https://github.com/privatenumber/tsx/commit/257bbbb7eb2784cad6a3bb7a2d9c9747d28d96ec)), closes [privatenumber/tsx#809](https://github.com/privatenumber/tsx/issues/809) ###### Features * add multi-scenario startup benchmark suite ([c178197](https://github.com/privatenumber/tsx/commit/c178197b104d055fd3431f7448982f3156394d12)), closes [privatenumber/tsx#809](https://github.com/privatenumber/tsx/issues/809) [#809](https://github.com/privatenumber/tsx/issues/809) [hi#signal](https://github.com/hi/issues/signal) [privatenumber/tsx#145](https://github.com/privatenumber/tsx/issues/145) [#809](https://github.com/privatenumber/tsx/issues/809) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.23.0) ### v4.22.5 - Date: 2026-07-02 - Version: v4.22.5 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.22.5 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.22.5 ##### [4.22.5](https://github.com/privatenumber/tsx/compare/v4.22.4...v4.22.5) (2026-07-02) ###### Bug Fixes * isolate hook state per async module.register() registration ([a305f36](https://github.com/privatenumber/tsx/commit/a305f365f0cbcc31a44549dcbb0e63dc2883e96d)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.22.5) ### v4.22.4 - Date: 2026-05-31 - Version: v4.22.4 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.22.4 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.22.4 ##### [4.22.4](https://github.com/privatenumber/tsx/compare/v4.22.3...v4.22.4) (2026-05-31) ###### Bug Fixes * resolve CommonJS directory requires inside dependencies ([#803](https://github.com/privatenumber/tsx/issues/803)) ([1ce8463](https://github.com/privatenumber/tsx/commit/1ce846335b7c445a3328c7d27f06424949356d97)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.22.4) ### v4.22.3 - Date: 2026-05-19 - Version: v4.22.3 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.22.3 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.22.3 ##### [4.22.3](https://github.com/privatenumber/tsx/compare/v4.22.2...v4.22.3) (2026-05-19) ###### Bug Fixes * decode typed loader source ([dce02fc](https://github.com/privatenumber/tsx/commit/dce02fc3b8b64a58d24560714902b16f89332f1f)) * preserve entrypoint with TypeScript preload hooks ([68f72f3](https://github.com/privatenumber/tsx/commit/68f72f3304d8c3ff7048bde8571af9c163fcefa2)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.22.3) ### v4.22.2 - Date: 2026-05-18 - Version: v4.22.2 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.22.2 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.22.2 ##### [4.22.2](https://github.com/privatenumber/tsx/compare/v4.22.1...v4.22.2) (2026-05-18) ###### Bug Fixes * preserve CJS JSON require in ESM hooks ([35b700b](https://github.com/privatenumber/tsx/commit/35b700bd8620696df03827068af29dcd0d091a60)) * preserve named exports from CommonJS TypeScript ([11de737](https://github.com/privatenumber/tsx/commit/11de737dae1fb9dae28db3716df5b1a7e1a6a089)) * support module.exports require(esm) interop ([cf8f199](https://github.com/privatenumber/tsx/commit/cf8f19918e4e0a0dc5ee5c52d8cc15e5e22d7c49)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.22.2) ### v4.22.1 - Date: 2026-05-17 - Version: v4.22.1 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.22.1 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.22.1 ##### [4.22.1](https://github.com/privatenumber/tsx/compare/v4.22.0...v4.22.1) (2026-05-17) ###### Bug Fixes * resolve tsconfig path aliases containing a colon ([#780](https://github.com/privatenumber/tsx/issues/780)) ([6979f28](https://github.com/privatenumber/tsx/commit/6979f28810829dc79ec9baf406e162a18b65ab4b)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.22.1) ### v4.22.0 - Date: 2026-05-14 - Version: v4.22.0 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.22.0 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.22.0 #### [4.22.0](https://github.com/privatenumber/tsx/compare/v4.21.1...v4.22.0) (2026-05-14) ###### Features * upgrade esbuild to 0.28 ([#789](https://github.com/privatenumber/tsx/issues/789)) ([b29f6ee](https://github.com/privatenumber/tsx/commit/b29f6ee4d6872fdef474eb0a89c6d4e982478a77)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.22.0) ### v4.21.1 - Date: 2026-05-14 - Version: v4.21.1 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.21.1 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.21.1 ##### [4.21.1](https://github.com/privatenumber/tsx/compare/v4.21.0...v4.21.1) (2026-05-14) ###### Bug Fixes * support Node 20.11/21.2 import.meta paths ([acf3d8f](https://github.com/privatenumber/tsx/commit/acf3d8ffee39fcb4655956fc052b78666aacbc3d)) * support Node.js 24.15.0 ([c1d2d45](https://github.com/privatenumber/tsx/commit/c1d2d45432eba7c6ff0785a43b0aeae85b5a3391)) * support Node.js 26.1.0 and 25.9.0 ([1d7e528](https://github.com/privatenumber/tsx/commit/1d7e528762a7e4f801175fd7d7d6082b00df3e5c)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.21.1) ### v4.21.0 - Date: 2025-11-30 - Version: v4.21.0 - Original notes: https://github.com/privatenumber/tsx/releases/tag/v4.21.0 - Permalink: https://whatsnew.fyi/product/tsx/releases/v4.21.0 #### [4.21.0](https://github.com/privatenumber/tsx/compare/v4.20.6...v4.21.0) (2025-11-30) ###### Features * upgrade esbuild ([#748](https://github.com/privatenumber/tsx/issues/748)) ([048fb62](https://github.com/privatenumber/tsx/commit/048fb623870f22c5026ad84187b545d418d2dfe8)) --- This release is also available on: - [npm package (@latest dist-tag)](https://www.npmjs.com/package/tsx/v/4.21.0)