Pulse

Open Source

Pulse is a command palette for Neovim that unifies file search, symbols, diagnostics, git status, live grep, and fuzzy search behind one consistent interface.

I designed and implemented pulse.nvim end-to-end, including interaction model, mode system, key workflows, preview behavior, and documentation for installation and usage.

  • Neovim
  • Lua
  • Terminal
  • Command Palette
  • Productivity
  • UX

Project Overview

Pulse was built to reduce context switching in Neovim. Instead of remembering multiple commands and keymaps for different pickers, Pulse provides one entry point with predictable keyboard-driven behavior.

It acts like a single command center for common navigation and search tasks:

Pulse file mode picker
Pulse git status mode picker
Pulse symbols mode picker
Pulse live grep mode picker

Interaction Model

The core design is a prefix-based mode switch. A single panel changes behavior based on the first character typed, which keeps the interface compact while still supporting multiple workflows.

Examples:

This approach keeps the mental model simple: open once, switch mode with a prefix, type a query, and jump.

UX and Workflow Focus

I optimized the plugin around fast navigation loops:

The goal was not just feature parity with existing tools, but a cleaner and more predictable daily workflow for code navigation.

Technical Notes

Pulse is implemented in Lua and designed to work with standard Neovim setups. It integrates with nvim-web-devicons, supports keymap-based invocation, and is lightweight enough to stay responsive during frequent use.

{
  "willyelm/pulse.nvim",
  dependencies = { "nvim-tree/nvim-web-devicons" },
  opts = {},
  keys = {
    { "<leader>p", "<cmd>Pulse<cr>", desc = "Open Pulse" },
  },
}

Outcome

Pulse gives me one consistent command palette for navigation and search in Neovim, with less cognitive overhead and fewer mode-specific keymaps to manage. It is now the default way I jump through files, symbols, and code context.