Skip to content
 
 

Latest commit

 

History

1,218 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neru Logo

Neru

Navigate your entire screen without touching the mouse.

Built for the person who already remapped Caps Lock.

Go Version Latest Release Discord License Github Sponsor

Free and open-source. No subscription. No trial. No catch.

macOS Linux Windows
Stable ✅ Beta — daily 🔵 Alpha — try it 🟡

What these mean — stable is fully featured, beta is good for daily driving, alpha is worth trying but not yet worth switching to.


If you use Vimium in the browser, you already know what this feels like. Neru brings that to your entire operating system — every app, every window, every menu bar item. Navigate with labels, grids, or vim-style keys. Click, right-click, drag, scroll, select text — all without leaving your keyboard.

Here's the whole flow:

Cmd+Shift+Space   →  labels appear on every clickable element
type the label    →  cursor jumps there
Shift+L           →  left click

The mouse is now optional.

Unlike most tools in this space, Neru is CLI-first — every action is a command, every setting is a plain toml file, everything is scriptable. No settings panel. No GUI preferences window. It lives in your dotfiles like it was always supposed to be there.


See it in action — recursive grid mode in real use:

demo.mp4

Install

macOS — Homebrew (recommended):

brew tap y3owk1n/tap
brew install --cask y3owk1n/tap/neru
All platforms — prebuilt binaries

Download the latest release for your OS from GitHub Releases:

Platform Architecture File
macOS Intel (x86_64) neru-darwin-amd64.zip
macOS Apple Silicon (arm64) neru-darwin-arm64.zip
Linux x86_64 neru-linux-amd64.zip
Linux ARM64 neru-linux-arm64.zip
Windows x86_64 neru-windows-amd64.zip
Windows ARM64 neru-windows-arm64.zip

Extract the binary or executable and place it on your PATH.

Linux — Nix flake

Add to your flake inputs, then enable the module:

services.neru.enable = true;

See Installation Guide for nix-darwin, NixOS, and home-manager examples.

From source
git clone https://github.com/y3owk1n/neru.git && cd neru
just build   # or just bundle on macOS
just install

Once you're done with the installation, you can just run the Neru.app (macOS) or the neru launch binary (macOS / Linux / Windows). On Windows you can also start Neru from the Start Menu, which runs the same neru.exe without a console window. Neru will prompt for config initialization and accessibility permission whenever is needed.


Pick your mode

Five modes, one tool — mix and match as the situation calls for it.

Recursive Grid Mode
Recursive Grid · start here
Grid Mode
Grid
Hints Mode
Hints (AX + Vision OCR)
Mode Default hotkey How it works Best for
Recursive Grid Primary+Shift+C Divides screen into cells; narrow down with home-row keys Everything — any app, canvas, or game
Hints Primary+Shift+Space Labels every clickable element via Accessibility API or Vision OCR Native apps, Electron (VS Code, Slack), Figma
Grid Primary+Shift+G Jump directly to a cell by row + column label Fast coarse movement across large monitors
Scroll Primary+Shift+S Vim-style j/k scrolling, u/d for half pages Reading docs and code without lifting your hands
Monitor Select unbound Labels each display; type a label to jump the cursor there Multi-monitor setups

Primary is Cmd on macOS and Ctrl on Linux and Windows. Monitor Select ships without a default binding — bind monitor_select to any key you like.

On Linux there are no default global hotkeys. They are cleared at startup to avoid colliding with terminal and desktop shortcuts such as Ctrl+Shift+C. Bind the modes yourself in [hotkeys], or in your compositor — see Global hotkeys on Linux.

All bindings are fully remappable — Colemak, Dvorak, whatever you're on. → Configuration Reference


CLI-first, by design

Most tools in this space are GUI apps with a settings panel. Neru is the opposite — the CLI is the interface, and config is a file you own.

neru hints          # trigger hints mode
neru grid           # trigger grid mode
neru recursive_grid # trigger recursive grid mode
neru scroll         # trigger scroll mode
neru config reload  # hot-reload config without restarting
neru status         # check daemon state and permissions

Config lives at ~/.config/neru/config.toml — plain text, version-controllable, and hot-reloadable. Every action is available over IPC, so Neru composes naturally with skhd, Raycast, Alfred, Hammerspoon, or any shell script. If it can run a command, it can drive Neru.

neru config init      # generate a fully-commented starter config
neru config validate  # check for errors before applying
neru config reload    # apply changes without restarting

CLI Reference · Configuration Reference · Config Showcases


What people are saying

"neru: the ACTUAL BEST app for ditching mouse"

Community YouTube Review

Watch the author run their entire daily workflow without touching the mouse → HOW-I-USE-NERU.md

Got questions or want to share your setup? Join the Discord →


Neru Dojo — build your muscle memory 🥋

The community built a browser-based training game to help you get fast with recursive grid and hints. Practice target acquisition, sharpen your reaction time, get reps in before it clicks.

👉 Play Neru Dojo — no install, works in any browser.

test.mp4

How Neru compares

Tool Approach Price Open Source
Neru Grid + Recursive Grid + AX Hints + Vision OCR Free
Homerow AX-Tree Hints Paid
Wooshy AX-Tree Search-to-click Paid
Mouseless Grid pointer control Paid
Scoot AX Hints + Grid Free
Glyphlow Hints + vim text editing Free
Stochos Keyboard driven mouse control Free
warpd Grid + Hints + Normal Pointer Free
Mousemaster Grid + Hints + Continuous Pointer + Key Remapping Free
Vimac AX Hints Free ✅ (unmaintained)

More modes, more engines, more platforms — and it's free. If you've been paying for any of the tools above, Neru is worth 10 minutes of your time.


Platform support

Capability macOS Linux Windows
Recursive Grid
Grid
Vim-Style Scroll
Hints (Accessibility API) 🔵 🔵
Hints (Vision OCR) 🔲 🔲
Direct Mouse Injection
Global Hotkeys
Native Overlays
Monitor Select 🔲

✅ full · 🔵 works with limits · 🔲 not available

Hints caveats. On Linux, hints work through AT-SPI, so coverage depends on the app exposing an accessibility tree (GTK/Qt do; Chromium and Electron apps need --force-renderer-accessibility). On Windows, UI Automation coverage is initial and the tree walk is shallow, and per-app config does not re-apply when you change windows. Linux requires X11 or Wayland on wlroots/KWin — GNOME Wayland is not supported; use a GNOME X11 session.

Roadmap · Cross-platform details


Documentation

Everything you need to go deep:

Using Neru

Guide What's in it
Installation Homebrew, Nix, prebuilt binaries, source, permissions
CLI Reference Every command, flag, and argument
Configuration Reference Every option, with types, defaults, and platform support
Tips & Tricks Worked configuration recipes
Config Showcases Real setups shared by the community
Troubleshooting Common issues and fixes

Platform support

Guide What's in it
Cross-Platform Guide What works on each platform, and how it is implemented
Linux Setup Dependencies, permissions, building, deployment
Linux Desktops Per-desktop setup, protocol support, and known issues

Working on Neru

Guide What's in it
Contributing How to propose, commit, and land a change
Development Guide Setup, building, testing, debugging, where code goes
Architecture Layers, boundaries, data flow, platform isolation
Agent Guide Conventions and contracts, for humans and AI agents
Roadmap What's coming next

Contributing

Neru is written in Go and Objective-C with a hexagonal architecture whose rules are executable: the guardrail tests in internal/architecture/ pin the layering, platform isolation, port/mock parity, and even doc-link integrity — each with a comment explaining the real bug it prevents. If you break a rule, the failure message tells you how to fix it. Adding a feature or platform adapter is straightforward, and pull requests are very welcome.

git checkout -b feature/your-feature
just ci   # everything CI checks, locally
# open a pull request

Contributing Guide · Development Guide · Good first issues


Support the project

Neru is built and maintained by one person, entirely in spare time. If it's earned a place in your workflow, a sponsorship goes a long way:

👉 GitHub Sponsors


Just need window management?

mimi grew out of this project — it's the window and space management pieces extracted into a standalone tool, for when neru is more than you need.

brew install --cask y3owk1n/tap/mimi

github.com/y3owk1n/mimi


License

MIT — see LICENSE.


Stop reaching for the mouse. It takes one command.

brew install --cask y3owk1n/tap/neru  # macOS
# or download a binary: github.com/y3owk1n/neru/releases/latest

Welcome to the mouseless life.

Made with ❤️ by y3owk1n

About

Navigate your entire screen without touching the mouse.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages