https://github.com/babashka/pod-babashka-go-sqlite3: A babashka pod for interacting with sqlite3 0.3.10 • Better handle parent process death by handling EOF of stdin
io.github.hlship/cli-tools 0.16.0-beta-1
https://github.com/hlship/cli-tools
cli-tools is a complement to Babashka used to create tools with sub-commands, much like Babashka tasks.
It is effectively a layer on top of org.clojure/tools.cli.
BREAKING CHANGES
• Groups are now defined in the options passed to net.lewisship.cli-tools/dispatch, not in
namespace metadata
• Command names are matched as prefixes (not substrings)
• The tool's documentation must now be specified in top-level :doc option key (not from namespace meta-data)
• net.lewisship.cli-tools:
◦ In a defcommand:
▪︎ The :summary key has been renamed to :title
▪︎ The :as keyword is no longer supported
◦ abort has been stripped down, it no longer writes the tool name, command path, etc.
◦ The two-arg variant of print-errors has been removed
◦ dispatch* has been removed
◦ expand-dispatch-options has been removed
• When an arg is ambiguous during dispatch, the error text now says "could match" and uses "or" as the conjunction, e.g. "ex could match exhume or extract"
• Tool and command help is now printed to \out\, not \err\*
• The builtin help command now as an option, -c / --commands, that can be one of none, root, or all, and the --flat switch was removed.
• Dependencies no longer include those provided by Babashka itself, reverting the change in 0.15.1; new documentation identifies what to add back in
Changes
• Groups may now be nested, to arbitrary depth
• You may now enter -h or --help after a group to get help for just that group
• Tool help output has been reordered, with top-level tool commands first (previously, those were in a "Builtin" group and listed last)
• Tool help now displays just root-level commands by default (add --commands all to list nested commands)
• When extracting the first sentence as the single-line index, embedded periods are no longer considered the end of the sentence
• net.lewisship.cli-tools:
◦ Added function tool-name
◦ Added function command-root
◦ Added function read-password
◦ New command-path function returns a composed string of the tool name and command path
◦ dispatch function has new options:
▪︎ :extra-tool-options - vector of additional tool options to prefix the default
▪︎ :tool-options-handler - callback function for handling extra tool options
▪︎ :transformer provides a function to add additional commands and groups after namespaces are loaded
▪︎ :source-dirs specifies extra directories to consider when caching
▪︎ Can now handle "messy" case where a command has the same name as a group
• Cache files are now stored in ~/.cache/net.lewisship.cli-tools by default
• Added initial support for commands defined as Babashka CLI functions
• Added net.lewiship.cli-tools.test namespace
https://github.com/hlship/cli-tools/milestone/9?closed=1
This has been a big process; at Nubank we have an internal tool called "nucli" that is a wrapper around over 1900 individual scripts. I'be been pushing a process to replace the central dispatching script with cli-tools, and to start defining new commands as defcommands rather than external Bash scripts. Many of the changes in 0.16 (nested groups, new callbacks, etc.) were driven by this.
https://github.com/squint-cljs/squint: Light-weight ClojureScript dialect
v0.8.154 (2025-09-19)
• Basic :import-maps support in squint.edn (just literal replacements, prefixes not supported yet)