{"slug": "babashka", "name": "babashka", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 6, "warners": 0, "score": 3.506, "rising": 0.02, "first": "2025-12-30", "latest": "2026-10-21", "why": "Babashka is my go-to tool for starting all new projects now.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 4, "compare": 1, "warn": 0}, "spark": [0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1], "listed": true, "loved": [], "caveat": "", "short_quote": "Babashka is my go-to tool for starting all new projects now.", "icon": false, "domain": null, "github_repo": null, "official_url": "https://babashka.org", "pricing": "", "aliases": ["babashka", "Babashka"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 802856161, "item_id": 50178510, "url": "https://news.ycombinator.com/item?id=50178510", "by": "chamomeal", "date": "2026-10-21", "stance": "recommend", "quote": "All of my new projects start as a single babashka script now.", "excerpt": "I don\u2019t disagree with you and I lurve frameworks. Yes, I love react. It is so awesome. But it is SO nice to not have any build step. All of my new projects start as a single babashka script now. You got html templating, throw in a stylesheet. Slap a datastar script tag in there for everything else. It\u2019s just easy peasy.", "context": "", "use_case": "single-script web projects", "switched_from": "", "story": "The Future of CSS"}, {"id": 783200304, "item_id": 48950019, "url": "https://news.ycombinator.com/item?id=48950019", "by": "snorremd", "date": "2026-07-17", "stance": "recommend", "quote": "I love Babashka.", "excerpt": "As a former Clojure dev (now just using Clojure in my spare time) I love Babashka. Michiel Borkent really nailed it with sci (Small Clojure Interpreter) and Babashka. Running a custom Clojure interpreter in a GraalVM compiled Clojure app is quite clever. Now there are of course limitations to what you can do in terms of not supporting Java reflection or the full Clojure compiler. But I've made some nifty small script", "context": "former Clojure dev", "use_case": "scripting instead of bash", "switched_from": "", "story": "A Road to Lisp: Which Lisp"}, {"id": 759820848, "item_id": 47488803, "url": "https://news.ycombinator.com/item?id=47488803", "by": "slowmovintarget", "date": "2026-03-23", "stance": "recommend", "quote": "You want binaries... Babashka.", "excerpt": "Shrugs in Clojure Clojure is the most token efficient of the major languages. It's a pleasure to work in. The sample code base that Claude knows skews toward higher quality code than the large volumes of middling JS or Python (this is not about the language but about what gets shared in the open for training data). You want binaries... Babashka. CLI... sure. Access to the entire Java ecosystem... also yes. The one ot", "context": "", "use_case": "Clojure scripting binaries", "switched_from": "", "story": "Why I Vibe in Go, Not Rust or Python"}, {"id": 742965776, "item_id": 46435361, "url": "https://news.ycombinator.com/item?id=46435361", "by": "chamomeal", "date": "2025-12-30", "stance": "recommend", "quote": "Babashka is my go-to tool for starting all new projects now.", "excerpt": "For another excellent scripting solution that has - fast startup (no compilation) - uses a real language - easy to upgrade beyond a script - has tons of excellent dependencies baked-in Look no further than babashka! It\u2019s a clojure interpreter that has first class support scripting stuff. Great built in libs for shelling out to other programs, file management, anything http related (client and server), parsing, html b", "context": "", "use_case": "scripting and new projects", "switched_from": "", "story": "Go Away Python"}]}], "caveats": [], "who": [{"by": "snorremd", "context": "former Clojure dev", "url": "https://news.ycombinator.com/item?id=48950019", "date": "2026-07-17"}, {"by": "iLemming", "context": "Clojure developer", "url": "https://news.ycombinator.com/item?id=48299003", "date": "2026-05-27"}, {"by": "arikrahman", "context": "Clojure developer", "url": "https://news.ycombinator.com/item?id=48013135", "date": "2026-05-04"}], "tags": [], "use_cases": ["single-script web projects", "shell scripting", "scripting instead of bash", "nrepl mcp server", "linux modal toolkit scripting", "clojure development"], "compared": [{"slug": "emacs", "name": "Emacs", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=50175070", "title": "The Future of CSS", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49516341", "title": "Janet Verison 1.42.0 Out", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48947455", "title": "A Road to Lisp: Which Lisp", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48237012", "title": "Use Boring Languages with LLMs", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48118727", "title": "The Emacsification of Software", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47957624", "title": "Functional Programmers need to take a look at Zig", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 1}, "2026-01": {"neutral": 1}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {"neutral": 1}, "2026-05": {"neutral": 2}, "2026-06": {}, "2026-07": {"recommend": 1}, "2026-08": {}, "2026-09": {"compare": 1}, "2026-10": {"recommend": 1}}, "quotes": [{"id": 802856161, "item_id": 50178510, "url": "https://news.ycombinator.com/item?id=50178510", "by": "chamomeal", "date": "2026-10-21", "stance": "recommend", "quote": "All of my new projects start as a single babashka script now.", "excerpt": "I don\u2019t disagree with you and I lurve frameworks. Yes, I love react. It is so awesome. But it is SO nice to not have any build step. All of my new projects start as a single babashka script now. You got html templating, throw in a stylesheet. Slap a datastar script tag in there for everything else. It\u2019s just easy peasy.", "context": "", "use_case": "single-script web projects", "switched_from": "", "story": "The Future of CSS"}, {"id": 793499314, "item_id": 49593707, "url": "https://news.ycombinator.com/item?id=49593707", "by": "iLemming", "date": "2026-09-07", "stance": "compare", "quote": "I was thinking of using it instead of babashka for some shell-scripty things, but bb turned out to be a bit more ergonomic. Although impractically memory hungry.", "excerpt": "> Java interop being idiomatic is the worst part of Clojure But Clojure today is not only on JVM - I use nbb, and sometimes Squint; I fooled around Clojure-Dart; You can even wrap some Elisp into Clojure today, although I have yet to find a practical use case for that - Elisp is very text-oriented, while every other Lisp is data-oriented, and I lately don't have any tasks for Emacs that require data-centric approach.", "context": "early adopter, writes Lisps", "use_case": "shell scripting", "switched_from": "", "story": "Janet Verison 1.42.0 Out"}, {"id": 783200304, "item_id": 48950019, "url": "https://news.ycombinator.com/item?id=48950019", "by": "snorremd", "date": "2026-07-17", "stance": "recommend", "quote": "I love Babashka.", "excerpt": "As a former Clojure dev (now just using Clojure in my spare time) I love Babashka. Michiel Borkent really nailed it with sci (Small Clojure Interpreter) and Babashka. Running a custom Clojure interpreter in a GraalVM compiled Clojure app is quite clever. Now there are of course limitations to what you can do in terms of not supporting Java reflection or the full Clojure compiler. But I've made some nifty small script", "context": "former Clojure dev", "use_case": "scripting instead of bash", "switched_from": "", "story": "A Road to Lisp: Which Lisp"}, {"id": 772784049, "item_id": 48299003, "url": "https://news.ycombinator.com/item?id=48299003", "by": "iLemming", "date": "2026-05-27", "stance": "neutral", "quote": "I built mine in Clojure (in babashka)", "excerpt": "It depends. If you're building an Emacs package or extending your own customizations, having \"every buffer accessible\" helps, because that way LLM is not dealing with Emacs (so to say), but with Emacs REPL, that has access to everything running within it. That however doesn't really work well with other languages like Clojure - LLM can poke into clj REPL from the Emacs REPL by tapping to it through emacsclient, in pr", "context": "Clojure developer", "use_case": "nREPL MCP server", "switched_from": "", "story": "Use Boring Languages with LLMs"}, {"id": 770224645, "item_id": 48139040, "url": "https://news.ycombinator.com/item?id=48139040", "by": "iLemming", "date": "2026-05-14", "stance": "neutral", "quote": "written in Babashka (Clojure), that means I can expose nrepl port", "excerpt": "> what the other parts are Of course I can't explain in detail in a single comment everything I listed, besides, that's just a subset of things I do through Emacs. Sometimes I want to kick off a process in the external terminal - long-lived processes are better handled that way. Kitty has remote protocol. I needed bidirectionally - being able to pipe into and from an arbitrary Emacs buffer to and from the terminal, s", "context": "", "use_case": "Linux modal toolkit scripting", "switched_from": "", "story": "The Emacsification of Software"}, {"id": 768210160, "item_id": 48013135, "url": "https://news.ycombinator.com/item?id=48013135", "by": "arikrahman", "date": "2026-05-04", "stance": "neutral", "quote": "For personal development:\n    babashka\n    clojure\n    clojure-lsp\n    clj-kondo\n    cljfmt", "excerpt": "Howdy, great question. My setup for Clojure is mainly defined declaratively. For personal development: babashka clojure clojure-lsp clj-kondo cljfmt jdk25 For web development, I use re-frame (which uses reagent, which uses react) and have a push to app workflow paired seamlessly with it via Tauri. You can inspect an example template of that here: https://github.com/ArikRahman/Clojkstra", "context": "Clojure developer", "use_case": "Clojure development", "switched_from": "", "story": "Functional Programmers need to take a look at Zig"}, {"id": 767028450, "item_id": 47939278, "url": "https://news.ycombinator.com/item?id=47939278", "by": "iLemming", "date": "2026-04-28", "stance": "neutral", "quote": "All my MCPs are coded in Clojure (mostly babashka)", "excerpt": "Of course. I've tried different AI packages and currently gptel and ECA remain the main ingredients. This is a quickly changing landscape, and things may change, but for now it feels very good. I like gptel because it's enormously extendable and exploitable - it allows me to send LLM requests from just about anywhere - I could be typing a message (like this very one) and suddenly in need of ideas for how to phrase so", "context": "Emacs user", "use_case": "writing MCP servers", "switched_from": "", "story": "I have officially retired from Emacs"}, {"id": 759820848, "item_id": 47488803, "url": "https://news.ycombinator.com/item?id=47488803", "by": "slowmovintarget", "date": "2026-03-23", "stance": "recommend", "quote": "You want binaries... Babashka.", "excerpt": "Shrugs in Clojure Clojure is the most token efficient of the major languages. It's a pleasure to work in. The sample code base that Claude knows skews toward higher quality code than the large volumes of middling JS or Python (this is not about the language but about what gets shared in the open for training data). You want binaries... Babashka. CLI... sure. Access to the entire Java ecosystem... also yes. The one ot", "context": "", "use_case": "Clojure scripting binaries", "switched_from": "", "story": "Why I Vibe in Go, Not Rust or Python"}, {"id": 743278563, "item_id": 46454910, "url": "https://news.ycombinator.com/item?id=46454910", "by": "maxandersen", "date": "2026-01-01", "stance": "neutral", "quote": "Definitely going to check out babashka more for inspiration.", "excerpt": "Yes - this is what we need more off - just not only in clojure space. I done https://github.com/jbangdev/jbang-jash for shell processes and smallrye process io also done a lot for nice shell apis. Files access could be another. jbang provides the similar binary - for now bash+jvm based but all simple installable. I have native jbang binaries which are even less than 70 mb :) Definitely going to check out babashka mor", "context": "", "use_case": "scripting", "switched_from": "", "story": "2026: The Year of Java in the Terminal"}, {"id": 742965776, "item_id": 46435361, "url": "https://news.ycombinator.com/item?id=46435361", "by": "chamomeal", "date": "2025-12-30", "stance": "recommend", "quote": "Babashka is my go-to tool for starting all new projects now.", "excerpt": "For another excellent scripting solution that has - fast startup (no compilation) - uses a real language - easy to upgrade beyond a script - has tons of excellent dependencies baked-in Look no further than babashka! It\u2019s a clojure interpreter that has first class support scripting stuff. Great built in libs for shelling out to other programs, file management, anything http related (client and server), parsing, html b", "context": "", "use_case": "scripting and new projects", "switched_from": "", "story": "Go Away Python"}]}