releases 2026-06-03

@ingy is there a way to pass arguments to bb this way? Like when I just want to execute something with babashka instead of dropping into a repl:

; bb -e '(println "hello")'
hello

@imre If I understand what you want correctly, I can add support for these two forms:

$ make -f <(curl -sL ) bb e='(println "Hello")'
Hello
$ $(make -f <(curl -sL ) bb p=1) '(println "Hello")'
Hello
$
where:
$ make -f <(curl -sL ) bb p=1
/tmp/clojure-cc-repl/local/bin/bb
$
What's your use case?

why not pass all the remaining arguments to the bb etc?

That's not how make works. But that is the idea for:

$(make -f <(curl -sL ) bb p=1) <args>

why use make for this?

> The Makefile is hosted at . It uses https://github.com/makeplus/makes to auto-install both the dialect and its host language (Java, Go, Python, PHP, etc.) into a local cache directory. Your system stays clean.

I could change the default invocation to:

$(make -f <(curl -sL ) bb)  # starts repl
$(make -f <(curl -sL ) bb) '(println "Hello")'
that would be cleaner.

Guardrails 1.3.3 https://github.com/fulcrologic/guardrails • support for silent start with system properly

🎉 2

Fulcro TUI 1.0.2 https://github.com/fulcrologic/fulcro-tui • Simple hooks support for dealing with string-based controls that write alternative types (e..g int/double/date)

1

fwiw, Gloat is one of many projects I have that has a ton of deps, including babashka. See: https://github.com/gloathub/gloat/blob/main/Makefile#L9 But the project only needs make, git, curl and bash. Everything else gets install just in time. YAMLScript also uses this. I don't have Java or Clojure or GraalVM installed on my system ever. So this auto-repl system was made possible from a small Makefile.

Also running make shell in any of these projects puts you into a shell where all the *.mk deps are available at the command line.

Projects in any language can easily dep on bb or 100 other langs/tools. All the *.mk files install from binaries so very fast. Now I use bb as a project dep in any language without thinking twice.

Fulcro RAD TUI 1.0.0-RC2 https://github.com/fulcrologic/fulcro-rad-tui • Full UI plugin for Fulcro RAD (statechart variant) • Includes full-stack demo (invoice/account/inventory, Datomic, Pathom) using standard fulcro-rad-datomic and fulcro-rad-statecharts

Thanks for the replies, I was offline for a bit

my usecase is providing a oneliner to run a small script with a specific version of babashka actually

I was trying stuff like

make -f (curl -sL clojure.cc/repl.mk | psub) bb BABASHKA-VERSION=1.12.218 -- -e '(with-redefs [org.httpkit.client/get (fn [] :foo)] (org.httpkit.client/get))'

ah can do. I'm reworking things right now.

so like everything after a -- would be passed to the underlying executable

that would pretty much give all the power of bb and the other executables to be used through http://clojure.cc

not only a repl

yep. give me a few minutes

@imre that took more than a few but have a look at https://clojure.cc/cli/ and see if it covers your needs. I redesigned the whole thing so that:

make -f <(curl -sL clojure.cc/cmd.mk)    # installs a dialect
$(make -f <(curl -sL clojure.cc/cmd.mk) ) [...]  # runs the dialect (for repl or anything else the dialect does)
make -f <(curl -sL clojure.cc/cmd.mk)  -VERSION=x.y.z  # installs a dialect version
Try it out and let me know what you think and/or what issues you hit.

PS. I don't know if changing versions will always replace an existing version. Some *.mk files support multiple versions installed and runnable at once, and some do not, iirc. You may need to clear the install cache with:

make -f <(curl -sL ) reset
This is a fixable issue though. (probably not today 😄)

Another thing is that I had to squelch the install message output. Some dialects install super quick, some take 10 seconds. Also fixable, but not today.

; (make -f (curl -sL  | psub) bb)
fish: command substitutions not allowed in command position. Try var=(your-cmd) $var ...
😕 I need to figure this out

; dialect=(make -f (curl -sL  | psub) bb) $dialect '(println "hello")'
hello

@ingy you might want to update the fish note at https://clojure.cc/cli/

✅ 1

reset does seem to be needed

; cli=(make -f (curl -sL  | psub) bb BABASHKA-VERSION=1.12.218) $cli --version
babashka v1.12.215

I'll fix just for bb then

Not urgent at all, if you'd prefer to fix it across the board another day

; make -f (curl -sL  | psub) reset; cli=(make -f (curl -sL  | psub) bb BABASHKA-VERSION=1.12.214) $cli --version
rm -f -r /var/folders/02/fls9zw0x3ps5f6mnrmhyb82h09tg57/T//clojure-cc-cmd
babashka v1.12.214

invited you to #C0B655S3R19 btw

1

I'm not sure about the first one, but the second is what I'm having success with

@imre https://clojure.cc/cli/ updated for fish and all dialects now install to versioned prefixes. (should do away with reset) Let me know if it works for you.