{"slug": "tsx", "name": "tsx", "category": "other", "category_name": "Other software", "description": "", "recommenders": 4, "commenters": 4, "warners": 0, "score": 2.236, "rising": -1.31, "first": "2025-11-25", "latest": "2026-07-02", "why": "I like tsx for this, and it's actively maintained.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 0, "compare": 1, "warn": 0}, "spark": [1, 0, 0, 1, 0, 0, 1, 0, 2, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I like tsx for this, and it's actively maintained.", "kind": "", "icon": false, "domain": null, "github_repo": "github.com/privatenumber/tsx", "official_url": "https://tsx.is", "pricing": "", "aliases": ["tsx"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 780171312, "item_id": 48760707, "url": "https://news.ycombinator.com/item?id=48760707", "by": "ivanjermakov", "date": "2026-07-02", "version": null, "stance": "recommend", "quote": "Luckly, `node --import=tsx file.ts` handles imports well.", "excerpt": "No, because of ESM import resolution rules. Typescript suggests extensionless imports, making it incompartible with ESM and therefore Node. Luckly, `node --import=tsx file.ts` handles imports well. This is especially hairy when making a typescript library that is distributed non-compiled (without dist/) and is supposed to run in both browser and Node. https://github.com/nodejs/node/issues/46006 https://github.com/mic", "context": "", "use_case": "Running TypeScript in Node", "switched_from": "", "story": "Vite+ Beta"}, {"id": 770261904, "item_id": 48141369, "url": "https://news.ycombinator.com/item?id=48141369", "by": "ivanjermakov", "date": "2026-05-14", "version": null, "stance": "recommend", "quote": "I'm quite satisfied with TSX", "excerpt": "For those looking for an alternative no-compilation TypeScript runner, I'm quite satisfied with TSX: https://github.com/privatenumber/tsx Node.js itself is getting quite close to running TypeScript natively, but they don't support using ES imports of CJS packages and importing with no-extension qualifier.", "context": "", "use_case": "run TypeScript without compiling", "switched_from": "", "story": "Rewrite Bun in Rust has been merged"}, {"id": 753073696, "item_id": 47067106, "url": "https://news.ycombinator.com/item?id=47067106", "by": "dcre", "date": "2026-02-18", "version": null, "stance": "recommend", "quote": "I like tsx for this, and it's actively maintained.", "excerpt": "I like tsx for this, and it's actively maintained. The author may not know about it. https://github.com/privatenumber/tsx", "context": "", "use_case": "Run TypeScript directly", "switched_from": "", "story": "Fastest Front End Tooling for Humans and AI"}, {"id": 736865104, "item_id": 46054069, "url": "https://news.ycombinator.com/item?id=46054069", "by": "vivzkestrel", "date": "2025-11-25", "version": null, "stance": "recommend", "quote": "or you could do what tsx does? charge money to fix issues as an option", "excerpt": "or you could do what tsx does? charge money to fix issues as an option https://github.com/privatenumber/tsx/issues/758 issues are fixed on priority basis for people willing to pay", "context": "", "use_case": "", "switched_from": "", "story": "What they don't tell you about maintaining an open source project"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["running typescript in node", "running typescript on node", "run typescript without compiling", "run typescript directly"], "compared": [{"slug": "node-js", "name": "Node.js", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=48759761", "title": "Vite+ Beta", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=48299384", "title": "tsz: high performance TypeScript checker, emitter, and language service in Rust", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48132488", "title": "Rewrite Bun in Rust has been merged", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47060052", "title": "Fastest Front End Tooling for Humans and AI", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46051393", "title": "What they don't tell you about maintaining an open source project", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {}, "2026-01": {}, "2026-02": {"recommend": 1}, "2026-03": {}, "2026-04": {}, "2026-05": {"recommend": 1, "compare": 1}, "2026-06": {}, "2026-07": {"recommend": 2}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 780189488, "item_id": 48761843, "url": "https://news.ycombinator.com/item?id=48761843", "by": "MrJohz", "date": "2026-07-02", "version": null, "stance": "recommend", "quote": "", "excerpt": "You can use one of the following: `allowImportingTsExtensions: true` (https://www.typescriptlang.org/tsconfig/#allowImportingTsExtensions, useful if you're running `tsc` in noEmit mode as a linter) `rewriteRelativeImportExtensions: true` (https://www.typescriptlang.org/tsconfig/#rewriteRelativeImportExtensions, useful if you're using `tsc` to compile TS files to JS. This allows you to use fully-specified imports in T", "context": "", "use_case": "Running TypeScript in Node", "switched_from": "", "story": "Vite+ Beta"}, {"id": 780171680, "item_id": 48760730, "url": "https://news.ycombinator.com/item?id=48760730", "by": "ivanjermakov", "date": "2026-07-02", "version": null, "stance": "neutral", "quote": "Yes, I use tsx for Node programs.", "excerpt": "Yes, I use tsx for Node programs. It's not great when sharing the same codebase for both client and server code, they have completely different dev workflows.", "context": "", "use_case": "running TypeScript on Node", "switched_from": "", "story": "Vite+ Beta"}, {"id": 780171312, "item_id": 48760707, "url": "https://news.ycombinator.com/item?id=48760707", "by": "ivanjermakov", "date": "2026-07-02", "version": null, "stance": "recommend", "quote": "Luckly, `node --import=tsx file.ts` handles imports well.", "excerpt": "No, because of ESM import resolution rules. Typescript suggests extensionless imports, making it incompartible with ESM and therefore Node. Luckly, `node --import=tsx file.ts` handles imports well. This is especially hairy when making a typescript library that is distributed non-compiled (without dist/) and is supposed to run in both browser and Node. https://github.com/nodejs/node/issues/46006 https://github.com/mic", "context": "", "use_case": "Running TypeScript in Node", "switched_from": "", "story": "Vite+ Beta"}, {"id": 772861584, "item_id": 48303849, "url": "https://news.ycombinator.com/item?id=48303849", "by": "vivzkestrel", "date": "2026-05-27", "version": null, "stance": "compare", "quote": "how does it compare to tsx ?", "excerpt": "how does it compare to tsx ? https://github.com/privatenumber/tsx", "context": "", "use_case": "", "switched_from": "", "story": "tsz: high performance TypeScript checker, emitter, and language service in Rust"}, {"id": 770261904, "item_id": 48141369, "url": "https://news.ycombinator.com/item?id=48141369", "by": "ivanjermakov", "date": "2026-05-14", "version": null, "stance": "recommend", "quote": "I'm quite satisfied with TSX", "excerpt": "For those looking for an alternative no-compilation TypeScript runner, I'm quite satisfied with TSX: https://github.com/privatenumber/tsx Node.js itself is getting quite close to running TypeScript natively, but they don't support using ES imports of CJS packages and importing with no-extension qualifier.", "context": "", "use_case": "run TypeScript without compiling", "switched_from": "", "story": "Rewrite Bun in Rust has been merged"}, {"id": 753073696, "item_id": 47067106, "url": "https://news.ycombinator.com/item?id=47067106", "by": "dcre", "date": "2026-02-18", "version": null, "stance": "recommend", "quote": "I like tsx for this, and it's actively maintained.", "excerpt": "I like tsx for this, and it's actively maintained. The author may not know about it. https://github.com/privatenumber/tsx", "context": "", "use_case": "Run TypeScript directly", "switched_from": "", "story": "Fastest Front End Tooling for Humans and AI"}, {"id": 736865104, "item_id": 46054069, "url": "https://news.ycombinator.com/item?id=46054069", "by": "vivzkestrel", "date": "2025-11-25", "version": null, "stance": "recommend", "quote": "or you could do what tsx does? charge money to fix issues as an option", "excerpt": "or you could do what tsx does? charge money to fix issues as an option https://github.com/privatenumber/tsx/issues/758 issues are fixed on priority basis for people willing to pay", "context": "", "use_case": "", "switched_from": "", "story": "What they don't tell you about maintaining an open source project"}]}