Neru describes itself as “Hints, grids and vim keys for your whole desktop. Free, open source, one binary, one TOML file.” It is MIT-licensed Go, stable on macOS 14+, with Linux and Windows builds in daily beta, and it ships roughly weekly (v1.58.0 on 2026-10-12, about 810 stars). It is the closest open-source relative of Flash and the better choice for several people.
| Neru | Flash | |
|---|---|---|
| License, price | MIT, free | MIT, free |
| Platforms | macOS 14+ stable; Linux (X11, Wayland) and Windows 10+ beta | macOS 14+ only |
| Permissions | Accessibility; Screen Recording for the vision, contour and segment strategies |
Accessibility; Automation per browser when tabs are listed; Screen Recording only for :screenshot, which runs Apple’s screencapture |
| Hints from | axtree (default), vision (on-device OCR), contour, segment |
Accessibility tree; tmux control mode for terminal panes; a per-app enhancer for VS Code |
| Pointer modes | Hints, grid, recursive grid, bisect, scroll, monitor select, user-defined modes | Hints, keyboard-shaped grid, bisect, pointer mode, screens, warp, saved positions, scroll target |
| Beyond pointing | Hooks, neru watch event stream |
Persistent NORMAL mode with per-app actions, flashlight search, status bar, widgets, popups, window placement, plugins |
| Configuration | One TOML; CLI; IPC socket with JSON schemas and a Go client | One TOML, live reload, flash config_check; flash <verb> over an AppleEvent; no socket |
| Maintenance | Weekly releases since 2025-11; 11 open issues | 1.0.0 in October 2026; nightly from main; one maintainer |
yabai.]t resolves
to the next tab in a browser, Finder or tmux because actions come from
plugin bindings, not raw chords. Neru’s modes are transient layers.mouse_target --search types visible text to pick a target, next to the
labels you already know from / in Neru.--words, --path, --sticky and --multi for text selection and
batch clicks (commands).:help opens a browser page that checks permissions, mappings and plugins
for this Mac (browser help).| Neru | Flash |
|---|---|
Hints (Primary+Shift+Space) |
["flash", "mouse_target"] |
| Grid, recursive grid | ["flash", "mouse_grid"]; each key zooms into its cell |
| Bisect | ["flash", "mouse_grid", "--bisect"] |
| Scroll mode | NORMAL’s ctrl+d/ctrl+u, ctrl+e/ctrl+y, gg/G; scroll_target picks the area |
| Monitor select | ["flash", "mouse_screens"] |
/ filter in hints |
["flash", "mouse_target", "--search"] |
capture_scope = "screen" |
["flash", "mouse_target", "--scope=screen"] |
| Menu bar, Dock hints | mouse_menubar, mouse_dock, mouse_notifications |
[[hints.app_configs]] per bundle |
[mode.apps."<bundle id>".normal.mappings] |
neru config reload |
Saving the file; flash config_check validates it |
neru watch, hooks |
flash status --json; no event stream |
| OCR strategies | Nothing. Use the grid. |
[mode.all.mappings]
"cmd+shift+space" = ["flash", "mouse_target"]
"cmd+shift+alt+space" = ["flash", "mouse_grid"]
"cmd+shift+c" = ["flash", "mouse_grid", "--bisect"]
[mode.apps."com.apple.Safari".all.mappings]
"cmd+shift+f" = ["flash", "mouse_target", "--search"]
Running both is possible but pointless: both take a hotkey and draw an overlay. Pick one for pointing; Flash can still provide the bar and widgets.
Checked 2026-10-14 against the Neru README, getting started and configuration.