diff --git a/Brewfile b/Brewfile
index dc52ea4..c3056e6 100644
--- a/Brewfile
+++ b/Brewfile
@@ -9,6 +9,7 @@ brew "bash"
 brew "bash-completion@2"
 brew "direnv"
 brew "ffmpeg"
+brew "fzf"
 brew "gh"
 brew "git"
 brew "htop"
diff --git a/fzf/.config/bash/rc.d/40-fzf.bash b/fzf/.config/bash/rc.d/40-fzf.bash
new file mode 100644
index 0000000..d68bfd1
--- /dev/null
+++ b/fzf/.config/bash/rc.d/40-fzf.bash
@@ -0,0 +1,4 @@
+# shellcheck shell=bash
+
+# Set up fzf key bindings and fuzzy completion
+eval "$(fzf --bash)"
diff --git a/fzf/.config/zsh/rc.d/40-fzf.zsh b/fzf/.config/zsh/rc.d/40-fzf.zsh
new file mode 100644
index 0000000..bc11b61
--- /dev/null
+++ b/fzf/.config/zsh/rc.d/40-fzf.zsh
@@ -0,0 +1,5 @@
+# shellcheck shell=sh
+
+# Set up fzf key bindings and fuzzy completion
+# shellcheck disable=SC3001,SC3046
+source <(fzf --zsh)