unstale

npm / tsx

tsx

What changed in tsx 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-17.

5 performance34 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.0 on npm

tsx 439 changes

Performance 5

  • The CLI loads esbuild lazily, improving CLI startup performance.

    4.23.1release notes

  • Node TypeScript formats are mapped directly for improved performance.

    4.23.1release notes

  • Synchronous module hooks are used on Node v22.22.3 and newer.

    4.23.1release notes

  • The transform cache is indexed lazily, improving startup or cache-related performance.

    4.23.1release notes

  • Avoids redundant filesystem probes during module resolution, improving resolution efficiency.

    4.23.0release notes

Fixes and other changes 34

  • Bare builtins are excluded from namespace inheritance.

    4.23.15release notes

  • Namespaced register overloads are portable for declaration emit.

    4.23.15release notes

  • require.cache and require.extensions are exposed to tsImport CommonJS modules.

    4.23.15release notes

  • Restores the CJS bridge namespace for Node 24 require(esm) when using tsImport.

    4.23.14release notes

  • Shared transform cache memory is now bounded, preventing unbounded cache growth.

    4.23.13release notes

  • Fixes shimming import.meta when tokens are split by comments or newlines.

    4.23.12release notes

  • Preserves the async ESM require fallback behavior for developers using tsx.

    4.23.11release notes

  • tsx now supports nyc coverage discovery, improving coverage collection when using nyc.

    4.23.10release notes

  • Node test locations are mapped correctly, improving location reporting for developers running tests.

    4.23.9release notes

  • tsImport now supports data URLs, allowing TypeScript imports from data URL sources.

    4.23.9release notes

  • Package subpath resolution is preserved, preventing incorrect module resolution for package subpaths.

    4.23.8release notes

  • Typeless ESM dependency exports are preserved, improving compatibility when resolving ESM dependencies without an explicit type.

    4.23.8release notes

  • Prevents cache collisions in tsImport.

    4.23.7release notes

  • Node resolution is preserved when allowJs is enabled.

    4.23.6release notes

  • Resolver URL metadata is now composed correctly.

    4.23.6release notes

  • Resolver URL metadata is now preserved.

    4.23.6release notes

  • Detects when the Node inspector is enabled through NODE_OPTIONS.

    4.23.5release notes

  • Async process.once() signal handlers are now allowed to finish when using the CLI.

    4.23.4release notes

  • Preserves listenerCount overload semantics for developers using the API.

    4.23.3release notes

  • Watch mode exits with 128 plus the signal number when interrupted.

    4.23.2release notes

  • tsImport now works after a global preload.

    4.23.1release notes

  • Watch mode no longer clears piped output.

    4.23.1release notes

  • Watch mode now treats script and dependency paths literally.

    4.23.1release notes

  • Hook state is now isolated per async module.register() registration, preventing state from being shared across registrations.

    4.22.5release notes

  • CommonJS directory requires inside dependencies are now resolved correctly.

    4.22.4release notes

  • Typed loader source is decoded correctly during tsx execution.

    4.22.3release notes

  • Entrypoints are preserved when TypeScript preload hooks are used.

    4.22.3release notes

  • Preserves CommonJS JSON require behavior when using ESM hooks.

    4.22.2release notes

  • Adds support for require and ESM interoperability involving module.exports.

    4.22.2release notes

  • Preserves named exports from CommonJS TypeScript modules.

    4.22.2release notes

  • Resolves tsconfig path aliases containing a colon correctly.

    4.22.1release notes

  • Import.meta paths are supported on Node 20.11 and 21.2.

    4.21.1release notes

  • Adds support for Node.js 24.15.0.

    4.21.1release notes

  • Adds support for Node.js 26.1.0 and 25.9.0.

    4.21.1release notes