Pod registry

May 6, 2026 ยท View on GitHub

The central place to register babashka pods for easy usage with babashka.

Loading and using a pod

Registered pods can be loaded using a qualified symbol and a version string:

(require '[babashka.pods :as pods])
(pods/load-pod 'org.babashka/buddy "0.1.0")

From then on, a pod exposes namespaces which can be called like regular Clojure:

(require '[pod.babashka.buddy.core.hash :as hash])
(hash/md5 "foo")

Registered pods

PodDescriptionLatest versionExampleLanguage
atomisthq/tools.dockerdocker golang utils for clojure0.1.0linkgolang
bogue1979/natsinteract with NATS0.0.6linkgolang
borkdude/clj-kondoA static analyzer and linter for Clojure code that sparks joy2026.04.15linkclojure
com.fluree/cryptoA Clojure(Script) crypto library for the Fluree graph database0.1.2linkclojure
com.github.clojure-lsp/clojure-lsp2024.04.22-11.50.26null
com.github.jackdbd/pod.jackdbd.jsoupBabashka pod for parsing HTML with jsoup.0.4.0linkclojure
epiccastle/bbsshSSH remote execution and file copy0.7.0linkclojure
epiccastle/spirePragmatic idempotent machine provisioning over SSH (mac and linux only)0.1.2linkclojure
huahaiy/datalevinDatalevin Database0.10.7linkclojure
ilmoraunio/conftestAccess Conftest internal API0.1.2linkgolang
ilmoraunio/conjtestParse configuration files using Clojure & Go parsers0.1.2linkclojure
justone/briskFreeze and thaw with Nippy at the command line0.3.0linkclojure
justone/tablMake tables from data in your terminal0.3.0linkclojure
lispyclouds/dockerA babashka pod for interacting with docker via clj-docker-client0.1.1linkclojure
org.babashka/awsAWS client based on aws-api0.1.2linkclojure
org.babashka/buddyCryptographic API provided by buddy0.3.4linkclojure
org.babashka/db2DB2 access via next.jdbc0.1.6linkclojure
org.babashka/etaoinEtaoin, a pure Clojure webdriver protocol implementation0.1.0linkclojure
org.babashka/filewatcherFilewatcher based on Rust notify0.0.1linkrust
org.babashka/fswatcherFilewatcher based on Go fsnotify0.0.7linkgolang
org.babashka/go-sqlite3Interact with sqlite30.3.13linkgolang
org.babashka/hsqldbHSQLDB access via next.jdbc0.1.6linkclojure
org.babashka/instaparseInstaparse pod0.0.7linkclojure
org.babashka/lanternaA Clojurey wrapper around the Lanterna terminal output library.0.0.1linkclojure
org.babashka/mssqlMSSQL access via next.jdbc0.1.6linkclojure
org.babashka/mysqlMySQL access via next.jdbc0.1.6linkclojure
org.babashka/oracleOracle access via next.jdbc0.1.0clojure
org.babashka/parceraGrammar-based Clojure(script) parser0.0.1linkclojure
org.babashka/postgresqlPostgresql access via next.jdbc0.1.6linkclojure
org.babashka/tools-deps-nativeTools deps alpha as a pod0.1.7linkclojure
replikativ/datahikeA fast, immutable, distributed & compositional Datalog engine for everyone.0.8.1681linkclojure
retrogradeorbit/bootlegTemplate processing command line tool to help build static websites. Inbuilt support for html, hiccup, hickory, selmer, mustache, markdown, enlive, json, yaml and edn.0.1.9linkclojure
rorokimdim/stashEncrypted text storage0.3.4linkhaskell
tommy-mor/go-valve-queryquery/rcon valve source engine servers0.1.1golang
tzzh/awsInteract with AWS0.0.3linkgolang
tzzh/mailSend emails0.0.3linkgolang

Registering a pod

To register a pod, create a nested directory in manifests with the following structure:

<org>/<pod-name>/<version>

and add a manifest.edn file like the following example:

{:pod/name tzzh/mail
 :pod/description "Send emails"
 :pod/version "0.0.2"
 :pod/license ""
 :pod/example "https://raw.githubusercontent.com/babashka/pod-registry/master/examples/tzzh_mail.clj"
 :pod/language "go"
 :pod/artifacts
 [{:os/name "Linux.*"
   :os/arch "amd64"
   :artifact/url "https://github.com/tzzh/pod-tzzh-mail/releases/download/v0.0.2/pod-tzzh-mail_0.0.2_Linux_x86_64.zip"
   :artifact/executable "pod-tzzh-mail"}
  {:os/name "Mac.*"
   :os/arch "x86_64"
   :artifact/url "https://github.com/tzzh/pod-tzzh-mail/releases/download/v0.0.2/pod-tzzh-mail_0.0.2_Darwin_x86_64.zip"
   :artifact/executable "pod-tzzh-mail"}
  {:os/name "Windows.*"
   :os/arch "amd64"
   :artifact/url "https://github.com/tzzh/pod-tzzh-mail/releases/download/v0.0.2/pod-tzzh-mail_0.0.2_Windows_x86_64.zip"
   :artifact/executable "pod-tzzh-mail.exe"}]}

The required fields are :pod/name, :pod/version and :pod/artifacts. For the sake of programmatical integrity you can populate :pod/description, :pod/example (with a link) and :pod/language fields as well.

You can then load the pod in your babashka script as follows:

(require '[babashka.pods :as pods])
(pods/load-pod 'tzzh/mail "0.0.2")

(require '[pod.tzzh.mail :as m])
(m/send-mail ...)

The :pod/artifacts vector will be matched in order on operating system and architecture. For the first match, the :artifact/url, a zip file, will be downloaded and extracted. After extraction there should be a file with the same name as :artifact/executable which will be made executable and invoked as the pod.