Neru

Hints, grids and vim keys for your whole desktop

Category
Utility
WM Type
License
free
Open Source
Yes
Keybindings
Yes
Scripting
Yes
Last Update
2026-09-13

Features

  • Hints Mode (Click Labels)
  • Recursive Grid Navigation
  • Row/Column Grid Mode
  • Vim-Style Scroll Mode
  • Custom User-Defined Modes
  • Per-App Config Overrides
  • Macro Support
  • CLI & IPC Scripting

About

Neru brings Vimium-style keyboard navigation to the whole desktop rather than just the browser, built natively for macOS, Linux, and Windows. It offers three navigation modes — hints that label clickable elements via the accessibility tree, on-device OCR, and a contour pass; a recursive grid that bisects the screen with home-row keys; and a row/column grid for larger jumps — alongside vim-style scrolling, macros, and custom user-defined modes. Every mode is also a CLI/IPC command, and custom modes can shell out directly to other tools, including yabai.

Who It's For

Neru is for keyboard-centric users who want Vimium-style, label-and-click navigation across their entire desktop, not just inside a browser tab. Its custom modes that shell out to other CLI tools — the README's own example binds h to exec yabai -m window --focus west — make it a natural layer on top of an existing tiling window manager for people who already think in home-row-key terms. Because it's built natively for macOS, Linux, and Windows, it also suits anyone who wants the same navigation model across multiple machines.

How It Works

Neru runs as a single binary configured from one TOML file. Hints labels every clickable element it can find, using the accessibility tree, on-device OCR, and a pure-Go contour pass, then lets you type the label to click it. Recursive grid bisects the screen into halves with home-row keys until the cursor lands where you want, while grid offers row/column selection for larger jumps. Vim-style scroll bindings and monitor selection round out cursor control. Every mode is also exposed as a CLI/IPC command — for example neru hints --role button --text save — so any mode, macro, or per-app override can be triggered from shell scripts, Raycast, Hammerspoon, or a system keybinding daemon. Custom modes are user-defined in the config and can bind directly to exec calls against other programs.

Configuration

# ~/.config/neru/config.toml
[hotkeys]
"Primary+Shift+Space" = "hints --action left_click"

[[hints.app_configs]]
bundle_id = "com.brave.Browser"
hotkeys = { "Return" = "action left_click" }

[macros]
click_and_exit = ["action left_click --bail-on-error", "idle"]

[hints.hotkeys]
"Enter" = "macro click_and_exit"

[modes.window]
indicator = "Window"

[modes.window.hotkeys]
"h" = "exec yabai -m window --focus west"

Compared to Alternatives

Compared to Homerow (paid, macOS-only), Neru is free, open source, and cross-platform, and adds a recursive grid and a row/column grid mode alongside hints. Compared to Vimium, which only works inside the browser, Neru operates system-wide across any application via the accessibility tree, OCR, and contour detection. Neru doesn't move, resize, or tile windows itself, but its custom-mode exec bindings let it call out to a window manager like yabai for that functionality instead.

Requirements

  • macOS 14+ (marked Stable; Linux and Windows support is Beta)
  • Accessibility permission required; Screen Recording needed for OCR/contour hints
  • Apple Silicon and Intel binaries available, plus Homebrew, Nix flake, and one-line installer options
  • Actively maintained — over 1,400 commits and frequent releases

Getting Started

Install via the one-line installer, Homebrew, or Nix flake, then edit ~/.config/neru/config.toml. Run neru doctor to check permissions, and trigger a mode with its default binding (e.g. Primary+Shift+Space for hints) or from the CLI. See the GitHub repo for the full command and configuration reference.

Discussion