// the find
ThePrimeagen/harpoon
Harpoon is a Neovim plugin that lets you pin a small set of files and terminals to numbered slots and jump to them instantly. It solves the real problem of constantly fuzzy-finding your way back to the same four files. The target user is anyone spending most of their day in Neovim who has memorized which files they're bouncing between.
The core mental model — numbered slots, not a list to scroll — is exactly right for muscle memory navigation. Terminal management is a genuine addition: persistent, numbered terminals with pre-configured command sending is something most people duct-tape together themselves. Tmux integration that accepts native pane identifiers means it works in actual workflows, not just toy setups. Per-project, per-branch mark persistence means it doesn't bleed context between unrelated codebases.
The README you're reading announces its own deprecation in the first paragraph, which is a terrible first impression — harpoon2 has been 'merging into mainline' since a date that has long passed. The legacy codebase is small enough that there's basically no abstraction: mark.lua, term.lua, ui.lua are flat scripts with minimal separation of concerns, which made harpoon2 a ground-up rewrite rather than a refactor. Test coverage is thin — two files in a test directory, one of which is a spec and one looks like a scratch file. If you're adopting this today, you should be on the harpoon2 branch, not the main branch this README describes.