# theprimeagen/harpoon

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/theprimeagen-harpoon).**

8,898 stars · 482 forks · Lua · mit

## Links

- GitHub: https://github.com/ThePrimeagen/harpoon
- awesome-repositories: https://awesome-repositories.com/repository/theprimeagen-harpoon.md

## Description

This project is a Neovim file navigation plugin and workspace manager that allows users to mark and jump between frequent files. It functions as a system for organizing high-priority files into specific layouts and window splits, utilizing a persistent list and index-based shortcuts to streamline movement across a project.

The tool includes a terminal session integrator that bridges the editor with a terminal multiplexer. This integration enables the orchestration of windows and panes, allowing users to switch between development shells and coding sessions or manage terminal instances by index.

The system covers broad capabilities in workspace management, including sequential mark cycling and the ability to launch marked files into specific tabs or splits. It also integrates with external fuzzy search tools to provide a searchable interface for discovering marked files and commands.

Additional functionality includes the ability to execute remote commands in specific terminal panes and automate repetitive development tasks by sending preconfigured text to terminal sessions.

## Tags

### Development Tools & Productivity

- [File Navigation Tools](https://awesome-repositories.com/f/development-tools-productivity/file-navigation-tools.md) — Provides rapid navigation and jumping between high-priority files within the Neovim editor.
- [Code Editor Workspace Management](https://awesome-repositories.com/f/development-tools-productivity/code-editor-workspace-management.md) — Organizes frequently used files into specific window layouts and splits to maintain a productive environment.
- [Editor Workspace Managers](https://awesome-repositories.com/f/development-tools-productivity/editor-workspace-managers.md) — Organizes files into specific layouts and window splits to streamline navigation across a project.
- [External Process Integrations](https://awesome-repositories.com/f/development-tools-productivity/external-process-integrations.md) — Communicates with third party binaries and shell scripts to trigger actions in a terminal multiplexer.
- [Neovim Plugins](https://awesome-repositories.com/f/development-tools-productivity/neovim-plugins.md) — Implements a persistent file marking and jumping system as a Neovim plugin.
- [Terminal Automation](https://awesome-repositories.com/f/development-tools-productivity/terminal-automation.md) — Sends preconfigured text and commands to specific terminal sessions to automate development tasks.
- [Terminal Multiplexer Integrations](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/automation-integration-tools/shell-integration/terminal-multiplexer-integrations.md) — Provides native orchestration of tmux windows and panes to synchronize the editor with the terminal. ([source](https://github.com/ThePrimeagen/harpoon#readme))
- [tmux Session Managers](https://awesome-repositories.com/f/development-tools-productivity/tmux-session-managers.md) — Controls terminal windows and panes through the editor to orchestrate tmux sessions.
- [Fuzzy Finder Integrations](https://awesome-repositories.com/f/development-tools-productivity/fuzzy-finder-integrations.md) — Bridges internal navigation lists with interactive fuzzy selection interfaces for efficient file discovery.
- [Fuzzy Search Interfaces](https://awesome-repositories.com/f/development-tools-productivity/fuzzy-search-interfaces.md) — Connects internal navigation lists to fuzzy search interfaces for rapid item discovery. ([source](https://github.com/ThePrimeagen/harpoon/tree/harpoon2))
- [Fuzzy Search Tools](https://awesome-repositories.com/f/development-tools-productivity/fuzzy-search-tools.md) — Integrates external search tools to find and jump to marked files or custom commands.
- [Terminal Session Management](https://awesome-repositories.com/f/development-tools-productivity/terminal-automation/terminal-session-management.md) — Implements control over terminal session lifecycles and index-based switching. ([source](https://github.com/ThePrimeagen/harpoon#readme))
- [Command Dispatching](https://awesome-repositories.com/f/development-tools-productivity/terminal-multiplexer-command-implementations/command-dispatching.md) — Allows sending preconfigured text or commands directly to specific terminal multiplexer panes. ([source](https://github.com/ThePrimeagen/harpoon#readme))

### Part of an Awesome List

- [Priority File Marking](https://awesome-repositories.com/f/awesome-lists/devtools/navigation-marks/priority-file-marking.md) — Tracks specific files for quick retrieval, enabling users to revisit high-priority locations. ([source](https://github.com/ThePrimeagen/harpoon#readme))
- [Tmux Integration](https://awesome-repositories.com/f/awesome-lists/devtools/tmux-integration.md) — Bridges the editor with a terminal multiplexer to manage windows, panes, and terminal sessions.
- [Sequential Mark Cycling](https://awesome-repositories.com/f/awesome-lists/devtools/navigation-marks/sequential-mark-cycling.md) — Rotates through a list of marked files sequentially to move between them without re-selecting. ([source](https://github.com/ThePrimeagen/harpoon/blob/master/TODO.md))
- [Navigation Marks](https://awesome-repositories.com/f/awesome-lists/devtools/navigation-marks.md) — Per-project file navigation and mark utility.

### Data & Databases

- [Navigation Index Mappings](https://awesome-repositories.com/f/data-databases/identifier-configurations/identifier-mappings/integer-mappings/navigation-index-mappings.md) — Maps unique integer identifiers to file paths to enable single-character navigation.

### System Administration & Monitoring

- [Terminal](https://awesome-repositories.com/f/system-administration-monitoring/session-tracking/terminal.md) — Maintains a record of active terminal indices to ensure requested sessions are created or reopened.

### User Interface & Experience

- [Workspace Layouts](https://awesome-repositories.com/f/user-interface-experience/workspace-layouts.md) — Launches marked files into specific window layouts, such as splits or tabs, to organize the workspace. ([source](https://github.com/ThePrimeagen/harpoon/tree/harpoon2))
