{"slug": "transformers-js", "name": "Transformers.js", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 13, "warners": 0, "score": 5.926, "rising": 0.02, "first": "2025-12-15", "latest": "2026-10-26", "why": "transformer.js v4 (released last month) seems more stable now with some runtime/perf improvements", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 12, "compare": 0, "warn": 0}, "spark": [0, 0, 1, 0, 2, 0, 0, 0, 0, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "transformer.js v4 (released last month) seems more stable now with some runtime/perf improvements", "kind": "", "icon": false, "domain": null, "github_repo": "github.com/huggingface/transformers.js", "official_url": "https://huggingface.co/docs/transformers.js", "pricing": "", "aliases": ["Transformers.js", "transformers.js"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 789257184, "item_id": 49328574, "url": "https://news.ycombinator.com/item?id=49328574", "by": "akx", "date": "2026-08-17", "stance": "recommend", "quote": "buildable pretty easily with transformers.js", "excerpt": "There are lots of AI-sloppy tells, starting from, let's see: * the web site's layout (eyebrows, glows, em-dashes, middots, that certain breathless tone in the pricing box) * the changelog listing, eg. the fact that you can search by language code as a headline feature * in the app, things like \"Click here to choose an audio file to transcribe \u2013 swap it any time\" are Claude-like copy; I'd be surprised if you _couldn't", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Vocal Slice \u2013 cut audio by selecting text, fully on-device"}, {"id": 761193040, "item_id": 47574565, "url": "https://news.ycombinator.com/item?id=47574565", "by": "pavelai", "date": "2026-03-30", "stance": "recommend", "quote": "it opens new era in browser-run models", "excerpt": "Transformers.js allows you to run models right in the browser. The fourth version focuses on performance. The new version has support of WebGPU and it opens new era in browser-run models Here the demos on HuggingFace: https://huggingface.co/collections/webml-community/transformersjs-v4-demos It's just a surprise to see what can be done with the models in browsers today. This demos shows the abilities of the models, a", "context": "", "use_case": "Running ML models in browser", "switched_from": "", "story": "HuggingFace has just released Transformer.js v4 with WebGPU support"}, {"id": 759214865, "item_id": 47450929, "url": "https://news.ycombinator.com/item?id=47450929", "by": "aratahikaru5", "date": "2026-03-19", "stance": "recommend", "quote": "transformer.js v4 (released last month) seems more stable now with some runtime/perf improvements", "excerpt": "Yes, someone already made a web demo for it: https://github.com/clowerweb/kitten-tts-web-demo (7 months ago). WebGPU support was marked experimental there, but transformer.js v4 (released last month) seems more stable now with some runtime/perf improvements: https://huggingface.co/blog/transformersjs-v4#performance--runtime-improvements", "context": "", "use_case": "Browser ML inference", "switched_from": "", "story": "Show HN: Three new Kitten TTS models \u2013 smallest less than 25MB"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["in-browser structured output", "client-side embeddings", "running ml models in browser", "browser ml inference", "in-browser ml models", "local embeddings"], "compared": [{"slug": "sqlite", "name": "SQLite", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "onnx-runtime", "name": "ONNX Runtime", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "mediapipe", "name": "MediaPipe", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46516267", "title": "Show HN: Jax-JS, array library in JavaScript targeting WebGPU", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50242870", "title": "Fixing Tool-Call Accuracy in vLLM", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49748553", "title": "Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49636195", "title": "item 49636195", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49245021", "title": "Show HN: Vocal Slice \u2013 cut audio by selecting text, fully on-device", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48811644", "title": "Ternlight \u2013 7 MB embedding model that runs in browser (WASM)", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"neutral": 1}, "2026-01": {"neutral": 2, "recommend": 1}, "2026-02": {"neutral": 2}, "2026-03": {"neutral": 3, "recommend": 2}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {"neutral": 1}, "2026-08": {"recommend": 1}, "2026-09": {"neutral": 2}, "2026-10": {"neutral": 1}}, "quotes": [{"id": 803906880, "item_id": 50244180, "url": "https://news.ycombinator.com/item?id=50244180", "by": "sroussey", "date": "2026-10-26", "stance": "neutral", "quote": "Constrained decoding came to JS land transformers last month for in browser structured output as well", "excerpt": "Constrained decoding came to JS land transformers last month for in browser structured output as well, also used for tool calling. https://github.com/huggingface/transformers.js/blob/main/packages/transformers-structured-output/README.md", "context": "", "use_case": "in-browser structured output", "switched_from": "", "story": "Fixing Tool-Call Accuracy in vLLM"}, {"id": 796192560, "item_id": 49762035, "url": "https://news.ycombinator.com/item?id=49762035", "by": "sroussey", "date": "2026-09-19", "stance": "neutral", "quote": "I think it will be the basis for a rewrite of transformers.js v5", "excerpt": "For reference: https://huggingface.co/blog/webgpu-kernels I think it will be the basis for a rewrite of transformers.js v5, but no need for you to wait as you would likely want direct access. It is also way better than loading WASM, and faster to boot!", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash"}, {"id": 794179139, "item_id": 49636196, "url": "https://news.ycombinator.com/item?id=49636196", "by": "darshi7331", "date": "2026-09-09", "stance": "neutral", "quote": "Transformers.js for Firefox", "excerpt": "Hey everyone! Last year, Mozilla released Orbit, an AI-powered browser summarizer hosted on a GCP server. After people started digging into the extension, they discovered things like backend endpoints such as store_result. Eventually, Mozilla discontinued the project. For the past month, I\u2019ve been trying to rebuild Orbit from scratch, but with one major difference: Apogee is fully local and privacy-focused. Apogee do", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 789257184, "item_id": 49328574, "url": "https://news.ycombinator.com/item?id=49328574", "by": "akx", "date": "2026-08-17", "stance": "recommend", "quote": "buildable pretty easily with transformers.js", "excerpt": "There are lots of AI-sloppy tells, starting from, let's see: * the web site's layout (eyebrows, glows, em-dashes, middots, that certain breathless tone in the pricing box) * the changelog listing, eg. the fact that you can search by language code as a headline feature * in the app, things like \"Click here to choose an audio file to transcribe \u2013 swap it any time\" are Claude-like copy; I'd be surprised if you _couldn't", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Vocal Slice \u2013 cut audio by selecting text, fully on-device"}, {"id": 781034593, "item_id": 48814662, "url": "https://news.ycombinator.com/item?id=48814662", "by": "abhgh", "date": "2026-07-07", "stance": "neutral", "quote": "use Transformers.js to embed", "excerpt": "Cool project! I tried something similar a while ago [1] - I wanted to load up an embedding model and semantically order texts, all in the browser. So I pull ONNX weights from HuggingFace (MPNet, MiniLM), use Transformers.js to embed, and use a clusterer from scikit-learn (running on pyiodide - it was a surprise to me that this worked flawlessly) on the page - all client-side. [1] http://sol.quipu-strands.com/", "context": "", "use_case": "Client-side embeddings", "switched_from": "", "story": "Ternlight \u2013 7 MB embedding model that runs in browser (WASM)"}, {"id": 761193040, "item_id": 47574565, "url": "https://news.ycombinator.com/item?id=47574565", "by": "pavelai", "date": "2026-03-30", "stance": "recommend", "quote": "it opens new era in browser-run models", "excerpt": "Transformers.js allows you to run models right in the browser. The fourth version focuses on performance. The new version has support of WebGPU and it opens new era in browser-run models Here the demos on HuggingFace: https://huggingface.co/collections/webml-community/transformersjs-v4-demos It's just a surprise to see what can be done with the models in browsers today. This demos shows the abilities of the models, a", "context": "", "use_case": "Running ML models in browser", "switched_from": "", "story": "HuggingFace has just released Transformer.js v4 with WebGPU support"}, {"id": 760541461, "item_id": 47533841, "url": "https://news.ycombinator.com/item?id=47533841", "by": "ldubinets", "date": "2026-03-26", "stance": "neutral", "quote": "via transformers.js and WebGPU", "excerpt": "Shimmer transcribes your meetings and generates live Mermaid diagrams as the conversation unfolds. Speech recognition (Whisper or Voxtral) and diagram generation (Qwen 3.5) both run on-device via transformers.js and WebGPU. No audio leaves your browser. You talk, it listens, and a diagram evolves in real-time. It auto-detects the best diagram type (flowchart, sequence, mindmap, timeline, ER, state, class) or you can ", "context": "", "use_case": "", "switched_from": "", "story": "Shimmer \u2013 Real-time meeting diagrams that run in the browser"}, {"id": 759214865, "item_id": 47450929, "url": "https://news.ycombinator.com/item?id=47450929", "by": "aratahikaru5", "date": "2026-03-19", "stance": "recommend", "quote": "transformer.js v4 (released last month) seems more stable now with some runtime/perf improvements", "excerpt": "Yes, someone already made a web demo for it: https://github.com/clowerweb/kitten-tts-web-demo (7 months ago). WebGPU support was marked experimental there, but transformer.js v4 (released last month) seems more stable now with some runtime/perf improvements: https://huggingface.co/blog/transformersjs-v4#performance--runtime-improvements", "context": "", "use_case": "Browser ML inference", "switched_from": "", "story": "Show HN: Three new Kitten TTS models \u2013 smallest less than 25MB"}, {"id": 757412881, "item_id": 47338305, "url": "https://news.ycombinator.com/item?id=47338305", "by": "baskvava", "date": "2026-03-11", "stance": "neutral", "quote": "it wraps Transformers.js models", "excerpt": "Hi HN, I built react-zero-ai because I was tired of spinning up backend infrastructure and handling CORS just to do basic sentiment analysis or vector embeddings in my React apps. I also wanted a solution that guarantees absolute user privacy (no data leaves the browser). Under the hood, it wraps Transformers.js models into standard React Hooks (useSentimentAnalysis, useEmbeddings, useImageClassifier) and automatical", "context": "", "use_case": "In-browser ML models", "switched_from": "", "story": "Client-Side AI React Hooks Powered by Transformers.js and Web Workers"}, {"id": 756920004, "item_id": 47307500, "url": "https://news.ycombinator.com/item?id=47307500", "by": "zanfiel", "date": "2026-03-09", "stance": "neutral", "quote": "Stack: Bun, SQLite (FTS5), transformers.js", "excerpt": "I built Engram because every AI agent I worked with had amnesia. Between sessions, everything was gone. I needed something that could store what agents learn, find it by meaning later, and do it without requiring a vector database, an OpenAI key, or any external service. What it does: Store memories, search them semantically, recall relevant context automatically \u2014 backed by a single SQLite file. What makes it differ", "context": "", "use_case": "Local embeddings", "switched_from": "", "story": "Show HN: Engram \u2013 open-source persistent memory for AI agents (Bun and SQLite)"}, {"id": 755031553, "item_id": 47189472, "url": "https://news.ycombinator.com/item?id=47189472", "by": "Leftium", "date": "2026-02-27", "stance": "neutral", "quote": "there is an (unrelated?) moonshine demo based on transformers.js", "excerpt": "WASM-based port: https://github.com/moonshine-ai/moonshine-js I also did a survey of other in-browser transcription solutions: https://github.com/Leftium/rift-transcription/blob/main/reference/streaming-transcription-demos.md#in-browser--wasm-offline-no-server - Notably, there is an (unrelated?) moonshine demo based on transformers.js (using WebGPU) with WASM fallback.", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Moonshine Open-Weights STT models \u2013 higher accuracy than WhisperLargev3"}, {"id": 751042514, "item_id": 46940157, "url": "https://news.ycombinator.com/item?id=46940157", "by": "escapeact", "date": "2026-02-08", "stance": "neutral", "quote": "the ML model runs client-side through Transformers.js", "excerpt": "i've been frustrated with search on documentation sites for a while. if you don't use the exact same words as the docs, you get nothing useful back. like searching \"background jobs\" when the page is called \"Background Tasks\", or \"file uploads\" when the docs say \"Request Files.\" the page you need exists, keyword search just doesn't find it. so i built sift. it's a CLI that indexes your markdown into a SQLite file, and", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Sift - semantic search for static sites, no server"}, {"id": 744289105, "item_id": 46518069, "url": "https://news.ycombinator.com/item?id=46518069", "by": "ekzhang", "date": "2026-01-06", "stance": "recommend", "quote": "", "excerpt": "Since ONNX is just a model data format, you can actually parse and run ONNX files in jax-js as well. Here\u2019s an example of running DETR ResNet-50 from Xenova\u2019s transformers.js checkpoint in jax-js https://jax-js.com/detr-resnet-50 I don\u2019t think I intend to support everything in ONNX right now, especially quant/dequant, but eventually it would be interesting to see if we can help accelerate transformers.js with a jax-j", "context": "", "use_case": "Running models in browser", "switched_from": "", "story": "Show HN: Jax-JS, array library in JavaScript targeting WebGPU"}, {"id": 744288177, "item_id": 46518011, "url": "https://news.ycombinator.com/item?id=46518011", "by": "sroussey", "date": "2026-01-06", "stance": "neutral", "quote": "Huggingface\u2019s transformers.js uses it. And I use that", "excerpt": "onnx on the web has the most models available and can use webgpu which is available everywhere. Huggingface\u2019s transformers.js uses it. And I use that for https://workglow.dev (also tensorflow mediapipe though that is using wasm). I don\u2019t think webnn has gone anywhere and is too restrictive.", "context": "", "use_case": "in-browser ML", "switched_from": "", "story": "Show HN: Jax-JS, array library in JavaScript targeting WebGPU"}, {"id": 743374962, "item_id": 46460935, "url": "https://news.ycombinator.com/item?id=46460935", "by": "l33t-mt", "date": "2026-01-01", "stance": "neutral", "quote": "RAG with in-browser embeddings (Transformers.js)", "excerpt": "Hey HN, I built EmergentFlow \u2013 a visual AI workflow builder where the execution engine is your browser, not a server. The key difference: When you run a workflow, your browser orchestrates everything directly. API calls go straight from your browser to OpenAI/Anthropic/etc. Nothing routes through my servers (except optional free-tier credits). Your API keys never touch my backend. What you can build: Chain LLMs with ", "context": "", "use_case": "", "switched_from": "", "story": null}, {"id": 740507441, "item_id": 46281715, "url": "https://news.ycombinator.com/item?id=46281715", "by": "sroussey", "date": "2025-12-15", "stance": "neutral", "quote": "both transformers.js and tensor-flow mediapipe", "excerpt": "https://workglow.dev It is a workflow graph automation site (drag and drop and connect nodes), but is a toy and only allows a local user and local models (both transformers.js and tensor-flow mediapipe), so costs me nothing. Mostly text stuff at the moment, but working on a slate of image stuff this week, may get to audio and video as well, we shall see.", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (December 2025)"}]}