diff --git a/repo/bcachefs-tools-git/PKGBUILD b/repo/bcachefs-tools-git/PKGBUILD
new file mode 100644
index 0000000..a909a9c
--- /dev/null
+++ b/repo/bcachefs-tools-git/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Kyle De'Vir (QuartzDragon) <kyle.devir.mykolab.com>
+
+pkgname=bcachefs-tools-git
+pkgver=1107
+pkgrel=4
+pkgdesc="BCacheFS filesystem utilities"
+url="https://github.com/koverstreet/bcachefs-tools"
+arch=("x86_64")
+license=("GPL2")
+install="$pkgname.install"
+
+provides=(bcachefs-tools)
+dependsarray="attr cargo clang fuse3 git keyutils libaio libscrypt libsodium liburcu libutil-linux pkgconf python-docutils systemd valgrind zlib"
+makedepends=(${dependsarray})
+depends=(${dependsarray})
+
+options=('!strip')
+
+_reponame="bcachefs-tools"
+_repo_url="https://github.com/koverstreet/$_reponame"
+
+source=(
+    "git+$_repo_url"
+    "add-mkinitcpio-hook-for-Arch.patch"
+)
+sha512sums=('SKIP'
+            'e75e0fc9576990d910acf5a3eafb1f83ab7d407bddcc210c9926b048ceb3ef018749654ca6a6ebdfab45a3e00031f6bb3537d2f3f19e3a7ec3be7c470d4ce7df')
+
+prepare() {
+    cd "$srcdir/$_reponame"
+
+    PName="add-mkinitcpio-hook-for-Arch.patch"
+    msg2 "Patching with $PName ..."
+    patch -Np1 -i "../$PName"
+}
+
+pkgver() {
+    cd "$srcdir/$_reponame"
+
+    echo "$(git rev-list --count HEAD)"
+}
+
+build() {
+    cd "$srcdir/$_reponame"
+
+    make
+}
+
+package() {
+    cd "$srcdir/$_reponame"
+
+    make DESTDIR="$pkgdir" PREFIX="/usr" ROOT_SBINDIR="/usr/bin" INITRAMFS_DIR="/etc/initcpio" install
+
+    install -Dm644 "arch/etc/initcpio/hooks/bcachefs" \
+                   "$pkgdir/etc/initcpio/hooks/bcachefs"
+    install -Dm644 "arch/etc/initcpio/install/bcachefs" \
+                   "$pkgdir/etc/initcpio/install/bcachefs"
+}
diff --git a/repo/bcachefs-tools-git/add-mkinitcpio-hook-for-Arch.patch b/repo/bcachefs-tools-git/add-mkinitcpio-hook-for-Arch.patch
new file mode 100644
index 0000000..cb2fbaa
--- /dev/null
+++ b/repo/bcachefs-tools-git/add-mkinitcpio-hook-for-Arch.patch
@@ -0,0 +1,130 @@
+From ad41c2fb76a96f772d75f3b4b7687fcd29aa0574 Mon Sep 17 00:00:00 2001
+From: Christophe B Billheimer <cbillhei@gmu.edu>
+Date: Sat, 28 Jul 2018 22:54:36 -0400
+Subject: [PATCH] add mkinitcpio hook for Arch and sample /etc/mkinitcpio.conf
+
+---
+ arch/etc/initcpio/hooks/bcachefs   | 14 +++++++
+ arch/etc/initcpio/install/bcachefs | 17 ++++++++
+ arch/etc/mkinitcpio.conf           | 66 ++++++++++++++++++++++++++++++
+ 3 files changed, 97 insertions(+)
+ create mode 100644 arch/etc/initcpio/hooks/bcachefs
+ create mode 100644 arch/etc/initcpio/install/bcachefs
+ create mode 100644 arch/etc/mkinitcpio.conf
+
+diff --git a/arch/etc/initcpio/hooks/bcachefs b/arch/etc/initcpio/hooks/bcachefs
+new file mode 100644
+index 0000000..cc2ed7e
+--- /dev/null
++++ b/arch/etc/initcpio/hooks/bcachefs
+@@ -0,0 +1,14 @@
++#!/usr/bin/ash
++
++run_hook() {
++
++# check if $root needs unlocking
++if bcachefs unlock -c $root >/dev/null 2>&1; then
++    echo "Unlocking $root:"
++    while true; do
++        bcachefs unlock $root && break
++    done
++fi
++}
++
++# vim: set ft=sh ts=4 sw=4 et:
+diff --git a/arch/etc/initcpio/install/bcachefs b/arch/etc/initcpio/install/bcachefs
+new file mode 100644
+index 0000000..67ce186
+--- /dev/null
++++ b/arch/etc/initcpio/install/bcachefs
+@@ -0,0 +1,17 @@
++#!/bin/bash
++
++build() {
++             add_module "bcachefs"
++             add_binary "bcachefs"
++
++             add_runscript
++
++}
++
++help() {
++           cat <<HELPEOF
++This hook is for getting the bcachefs unlock prompt at boot
++HELPEOF
++}
++
++# vim set ft=sh ts=4 sw=4 et:
+diff --git a/arch/etc/mkinitcpio.conf b/arch/etc/mkinitcpio.conf
+new file mode 100644
+index 0000000..f395e18
+--- /dev/null
++++ b/arch/etc/mkinitcpio.conf
+@@ -0,0 +1,66 @@
++# vim:set ft=sh
++# MODULES
++# The following modules are loaded before any boot hooks are
++# run.  Advanced users may wish to specify all system modules
++# in this array.  For instance:
++#     MODULES=(piix ide_disk reiserfs)
++MODULES=(bcachefs)
++
++# BINARIES
++# This setting includes any additional binaries a given user may
++# wish into the CPIO image.  This is run last, so it may be used to
++# override the actual binaries included by a given hook
++# BINARIES are dependency parsed, so you may safely ignore libraries
++BINARIES=(bcachefs)
++
++# FILES
++# This setting is similar to BINARIES above, however, files are added
++# as-is and are not parsed in any way.  This is useful for config files.
++FILES=()
++
++# HOOKS
++# This is the most important setting in this file.  The HOOKS control the
++# modules and scripts added to the image, and what happens at boot time.
++# Order is important, and it is recommended that you do not change the
++# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
++# help on a given hook.
++# 'base' is _required_ unless you know precisely what you are doing.
++# 'udev' is _required_ in order to automatically load modules
++# 'filesystems' is _required_ unless you specify your fs modules in MODULES
++# Examples:
++##   This setup specifies all modules in the MODULES setting above.
++##   No raid, lvm2, or encrypted root is needed.
++#    HOOKS="base"
++#
++##   This setup will autodetect all modules for your system and should
++##   work as a sane default
++#    HOOKS="base udev autodetect block filesystems"
++#
++##   This setup will generate a 'full' image which supports most systems.
++##   No autodetection is done.
++#    HOOKS="base udev block filesystems"
++#
++##   This setup assembles a pata mdadm array with an encrypted root FS.
++##   Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
++#    HOOKS="base udev block mdadm encrypt filesystems"
++#
++##   This setup loads an lvm2 volume group on a usb device.
++#    HOOKS="base udev block lvm2 filesystems"
++#
++##   NOTE: If you have /usr on a separate partition, you MUST include the
++#    usr, fsck and shutdown hooks.
++HOOKS=(base udev autodetect modconf block filesystems bcachefs keyboard fsck)
++
++# COMPRESSION
++# Use this to compress the initramfs image. By default, gzip compression
++# is used. Use 'cat' to create an uncompressed image.
++#COMPRESSION="gzip"
++#COMPRESSION="bzip2"
++#COMPRESSION="lzma"
++#COMPRESSION="xz"
++#COMPRESSION="lzop"
++#COMPRESSION="lz4"
++
++# COMPRESSION_OPTIONS
++# Additional options for the compressor
++#COMPRESSION_OPTIONS=""
+ 
diff --git a/repo/bcachefs-tools-git/bcachefs-tools-git.install b/repo/bcachefs-tools-git/bcachefs-tools-git.install
new file mode 100644
index 0000000..6baeb4a
--- /dev/null
+++ b/repo/bcachefs-tools-git/bcachefs-tools-git.install
@@ -0,0 +1,16 @@
+post_upgrade() {
+    echo "If you haven't already, please manually add 'bcachefs' to mkinitcpio.conf variables 'MODULES=()' and 'HOOKS=()', and also add '/usr/bin/bcachefs' to 'BINARIES=()'"
+    echo "and then run 'mkinitcpio -p linux-bcachefs-git'"
+}
+
+post_install() {
+    echo "Please manually add 'bcachefs' to mkinitcpio.conf variables 'MODULES=()' and 'HOOKS=()', and also add '/usr/bin/bcachefs' to 'BINARIES=()'"
+    echo "and then run 'mkinitcpio -p linux-bcachefs-git'"
+}
+
+post_remove() {
+    echo "Please manually remove 'bcachefs' from mkinitcpio.conf variables 'MODULES=()' and 'HOOKS=()', and also remove '/usr/bin/bcachefs' from 'BINARIES=()'"
+    echo "and then run 'mkinitcpio -p linux-bcachefs-git'"
+}
+
+# vim:set ft=sh ts=8 sts=2 sw=2 et:
\ No newline at end of file