diff --git a/README.md b/README.md
index 90ea43a87..38f6aedcf 100644
--- a/README.md
+++ b/README.md
@@ -191,7 +191,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [iVar](https://hub.docker.com/r/staphb/ivar/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/ivar)](https://hub.docker.com/r/staphb/ivar) |
- [1.1](./ivar/1.1/)
- [1.1 (+SARS-CoV2 reference)](./ivar/1.1-SC2/)
- [1.2.1](./ivar/1.2.1/)
- [1.2.1 (+SC2 ref)](./ivar/1.2.1-SC2/)
- [1.2.2 (+SC2 ref and artic bedfiles)](./ivar/1.2.2_artic20200528/)
- [1.3](./ivar/1.3/)
- [1.3.1](./ivar/1.3.1/)
- [1.3.2](./ivar/1.3.2/)
- [1.4.1](./ivar/1.4.1/)
- [1.4.2](./ivar/1.4.2/)
- [1.4.3](./ivar/1.4.3/)
| https://github.com/andersen-lab/ivar |
| [Jasmine](https://hub.docker.com/r/staphb/pbjasmine/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/pbjasmine)](https://hub.docker.com/r/staphb/pbjasmine) | - [2.0.0](./pbjasmine/2.0.0/)
| https://github.com/PacificBiosciences/jasmine |
| [Kaptive](https://hub.docker.com/r/staphb/kaptive/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/kaptive)](https://hub.docker.com/r/staphb/kaptive) | - [2.0.0](./kaptive/2.0.0/)
- [2.0.3](./kaptive/2.0.3/)
- [2.0.5](./kaptive/2.0.5/)
- [2.0.8](./kaptive/2.0.8/)
| https://github.com/klebgenomics/Kaptive |
-| [Kleborate](https://hub.docker.com/r/staphb/kleborate/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/kleborate)](https://hub.docker.com/r/staphb/kleborate) | - [2.0.4](./kleborate/2.0.4/)
- [2.1.0](./kleborate/2.1.0/)
- [2.2.0](./kleborate/2.3.2/)
- [2.3.2](./kleborate/2.3.2)
- [2.3.2-2023-05](kleborate/2.3.2-2023-05/)
- [2.4.1](kleborate/2.4.1/)
| https://github.com/katholt/Kleborate/
https://github.com/katholt/Kaptive/ |
+| [Kleborate](https://hub.docker.com/r/staphb/kleborate/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/kleborate)](https://hub.docker.com/r/staphb/kleborate) | - [2.0.4](./kleborate/2.0.4/)
- [2.1.0](./kleborate/2.1.0/)
- [2.2.0](./kleborate/2.3.2/)
- [2.3.2](./kleborate/2.3.2)
- [2.3.2-2023-05](kleborate/2.3.2-2023-05/)
- [2.4.1](kleborate/2.4.1/)
- [3.1.2](kleborate/3.1.2/)
| https://github.com/katholt/Kleborate/
https://github.com/katholt/Kaptive/ |
| [kma](https://hub.docker.com/r/staphb/kma/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/kma)](https://hub.docker.com/r/staphb/kma) | - 1.2.21
- 1.4.10 (no database)
- [1.4.14](./kma/1.4.14/) (no database)
| https://bitbucket.org/genomicepidemiology/kma/ |
| [Kraken](https://hub.docker.com/r/staphb/kraken/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/kraken)](https://hub.docker.com/r/staphb/kraken) | - 1.0
- 1.1.1
- 1.1.1 (no database)
| https://github.com/DerrickWood/kraken |
| [Kraken2](https://hub.docker.com/r/staphb/kraken2/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/kraken2)](https://hub.docker.com/r/staphb/kraken2) | - 2.0.8-beta (no database)
- 2.0.8-beta (MiniKraken2_v1_8GB db)
- 2.0.8-beta_hv (human + virus db)
- 2.0.9-beta (no db)
- 2.0.9-beta (Minikraken v2 RefSeq: bacteria, archaea, viral, and human 8GB db)
- 2.1.0 (no db)
- 2.1.1 (no db)
- 2.1.2 (no db)
- [2.1.3](kraken2/2.1.3/) (no db)
| https://github.com/DerrickWood/kraken2 |
diff --git a/kleborate/3.1.2/Dockerfile b/kleborate/3.1.2/Dockerfile
new file mode 100644
index 000000000..bb97c0119
--- /dev/null
+++ b/kleborate/3.1.2/Dockerfile
@@ -0,0 +1,66 @@
+FROM ubuntu:jammy as app
+
+# for easy upgrade later. ARG variables only persist during image build time
+ARG KLEBORATE_VER="3.1.2"
+ARG MINIMAP2_VER="2.28"
+ARG MASH_VER="2.3"
+
+LABEL base.image="ubuntu:jammy"
+LABEL dockerfile.version="1"
+LABEL software="Kleborate"
+LABEL software.version="${KLEBORATE_VER}"
+LABEL description="tool to screen genome assemblies of Klebsiella pneumoniae and the Klebsiella pneumoniae species complex (KpSC)"
+LABEL website="https://github.com/katholt/Kleborate"
+LABEL license="https://github.com/katholt/Kleborate/blob/master/LICENSE"
+LABEL maintainer="Curtis Kapsak"
+LABEL maintainer.email="kapsakcj@gmail.com"
+LABEL maintainer2="Frank Ambrosio"
+LABEL maintainer2.email="frank.ambrosio@theiagen.com"
+LABEL maintainer3="Erin Young"
+LABEL maintainer3.email="eriny@utah.gov"
+
+# install prerequisites. Cleanup apt garbage
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ python3 \
+ python3-pip \
+ wget \
+ ca-certificates \
+ bzip2 \
+ procps \
+ curl && \
+ rm -rf /var/lib/apt/lists/* && apt-get autoclean
+
+# mash; update UID and GID of mash files; make /data
+# UID and GID changes because the original owner is UID: 1081147385 and GID: 1360859114 which does NOT play well with systems that limits GIDs and UIDs
+RUN wget -q https://github.com/marbl/Mash/releases/download/v${MASH_VER}/mash-Linux64-v${MASH_VER}.tar && \
+ tar -xvf mash-Linux64-v${MASH_VER}.tar --no-same-owner && \
+ rm -rf mash-Linux64-v${MASH_VER}.tar && \
+ chown root:root /mash-Linux64-v${MASH_VER}/*
+
+# install minimap2 binary; make /data
+RUN curl -L https://github.com/lh3/minimap2/releases/download/v${MINIMAP2_VER}/minimap2-${MINIMAP2_VER}_x64-linux.tar.bz2 | \
+ tar -jxvf - --no-same-owner
+
+# set PATH and TERM to avoid warnings
+ENV PATH="/mash-Linux64-v${MASH_VER}:/minimap2-${MINIMAP2_VER}_x64-linux:${PATH}"
+
+# install kleborate
+RUN pip install --no-cache-dir kleborate==${KLEBORATE_VER} && \
+ mkdir /data
+
+# set working directory
+WORKDIR /data
+
+CMD kleborate --help
+
+FROM app as test
+
+WORKDIR /test
+
+# from https://kleborate.readthedocs.io/en/latest/Installation.html
+RUN wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/002/813/595/GCF_002813595.1_ASM281359v1/GCF_002813595.1_ASM281359v1_genomic.fna.gz && \
+ kleborate -a GCF_002813595.1_ASM281359v1_genomic.fna.gz -o kleborate_test -p kpsc && \
+ head kleborate_test/klebsiella_pneumo_complex_output.txt
+
+# print help and version info
+RUN kleborate --help && kleborate --version && kleborate --list_modules
\ No newline at end of file
diff --git a/kleborate/3.1.2/README.md b/kleborate/3.1.2/README.md
new file mode 100644
index 000000000..2765be3f6
--- /dev/null
+++ b/kleborate/3.1.2/README.md
@@ -0,0 +1,79 @@
+# Kleborate container
+
+Main tool : [Kleborate](https://github.com/katholt/Kleborate)
+
+Additional tools:
+
+- [mash](https://github.com/marbl/Mash) version 2.3
+- [minimap2]() version 2.28
+
+Full documentation: [https://github.com/katholt/Kleborate/wiki](https://github.com/katholt/Kleborate/wiki)
+
+Description:
+> Kleborate is a tool to screen genome assemblies of Klebsiella pneumoniae and the Klebsiella pneumoniae species complex (KpSC) for:
+>
+> - MLST sequence type
+> - species (e.g. K. pneumoniae, K. quasipneumoniae, K. variicola, etc.)
+> - ICEKp associated virulence loci: yersiniabactin (ybt), colibactin (clb), salmochelin (iro), hypermucoidy (rmpA)
+> - virulence plasmid associated loci: salmochelin (iro), aerobactin (iuc), hypermucoidy (rmpA, rmpA2)
+> - antimicrobial resistance determinants: acquired genes, SNPs, gene truncations and intrinsic β-lactamases
+> - K (capsule) and O antigen (LPS) serotype prediction, via wzi alleles and Kaptive
+
+## Included models
+
+Kleborate has models for both Klebsiella and Escherichia species. The available presets and models are listed below.
+
+Available presets: kpsc, kosc, escherichia
+
+```
+Available modules for Kleborate
+-------------------------------
+enterobacterales__species: Mash-based species detection for enterobacterales species
+
+escherichia__mlst_achtman: chromosomal MLST for Escherichia coli using the Achtman scheme
+
+escherichia__mlst_pasteur: chromosomal MLST for Escherichia coli using the Pasteur scheme
+
+general__contig_stats: basic stats on the assembly's contigs
+
+klebsiella__abst: MLST on the KpSC aerobactin locus (iuc genes)
+
+klebsiella__cbst: MLST on the KpSC colibactin locus (clb genes)
+
+klebsiella__rmpa2: typing for the rmpA2 gene
+
+klebsiella__rmst: MLST on the KpSC Rmp locus (rmp genes)
+
+klebsiella__smst: MLST on the KpSC salmochelin locus (iro genes)
+
+klebsiella__ybst: MLST on the KpSC yersiniabactin locus (ybt and irp genes)
+
+klebsiella_oxytoca_complex__mlst: chromosomal MLST for the Klebsiella oxytoca species complex
+
+klebsiella_pneumo_complex__amr: Genotyping acquired genes and mutations for the Klebsiella pneumoniae species complex
+
+klebsiella_pneumo_complex__kaptive: In silico serotyping of K and L locus for the Klebsiella pneumoniae species complex
+
+klebsiella_pneumo_complex__mlst: chromosomal MLST for the Klebsiella pneumoniae species complex
+
+klebsiella_pneumo_complex__resistance_class_count: Resistance gene classes count, excluding the Bla_chr class which is intrinsicresults of the
+klebsiella_pneumo_complex__amr module
+
+klebsiella_pneumo_complex__resistance_gene_count: Resistance genes counts, excluding the Bla class which is intrinsicresults of the
+klebsiella_pneumo_complex__amr module
+
+klebsiella_pneumo_complex__resistance_score: resistance score (0-3) for the Klebsiella pneumoniae species complex, based on the results of the
+klebsiella_pneumo_complex__amr module
+
+klebsiella_pneumo_complex__virulence_score: virulence score (0-5) for the Klebsiella pneumoniae species complex, based on the results of the abst, cbst
+and ybst modules
+
+klebsiella_pneumo_complex__wzi: WZI typing for K antigen prediction
+```
+
+
+## Example Usage
+
+```bash
+kleborate -a sample.fasta -o outdir -p preset
+```