diff --git a/after/plugin/harpoon.lua b/after/plugin/harpoon.lua
index 96eff3714be4f7973356732e50860856d63614a3..da55a18497328f1de4cd0f752044aeed103c5fea 100644
--- a/after/plugin/harpoon.lua
+++ b/after/plugin/harpoon.lua
@@ -1,11 +1,13 @@
-local mark = require("harpoon.mark")
-local ui = require("harpoon.ui")
+local harpoon = require("harpoon")
 
+-- REQUIRED
+harpoon:setup()
+-- REQUIRED
 
-vim.keymap.set("n", "<leader>a", mark.add_file)
-vim.keymap.set("n", "<C-e>", ui.toggle_quick_menu)
+vim.keymap.set("n", "<leader>a", function() harpoon:list():append() end)
+vim.keymap.set("n", "<C-e>", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
 
-vim.keymap.set("n", "<C-s>", function() ui.nav_file(1) end)
-vim.keymap.set("n", "<C-x>", function() ui.nav_file(2) end)
-vim.keymap.set("n", "<C-h>", function() ui.nav_file(3) end)
-vim.keymap.set("n", "<C-t>", function() ui.nav_file(4) end)
+vim.keymap.set("n", "<C-s>", function() harpoon:list():select(1) end)
+vim.keymap.set("n", "<C-x>", function() harpoon:list():select(2) end)
+vim.keymap.set("n", "<C-h>", function() harpoon:list():select(3) end)
+vim.keymap.set("n", "<C-t>", function() harpoon:list():select(4) end)
diff --git a/lua/plugins.lua b/lua/plugins.lua
index b927c6d136551adc6fb602ba48bbb3baeffea165..a661d807c0e25b692900636bdabcaf8573ce87ab 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -120,7 +120,11 @@ return {
 
 	'nvim-treesitter/playground',
 
-	'theprimeagen/harpoon',
+	{
+		"ThePrimeagen/harpoon",
+		branch = "harpoon2",
+		dependencies = "nvim-lua/plenary.nvim",
+	},
 
 	'mbbill/undotree',