explaingit

nchudleigh/vimac

Analysis updated 2026-07-03

3,666SwiftAudience · developerComplexity · 3/5Setup · hard

TLDR

An archived macOS app that lets you click and scroll using only the keyboard by overlaying letter shortcuts on every clickable element, inspired by Vim. Succeeded by Homerow.

Mindmap

mindmap
  root((Vimac))
    Modes
      Hint mode
      Scroll mode
    How it works
      Letter overlays
      Keyboard clicks
      HJKL scrolling
    Inspiration
      Vim
      Vimium browser extension
    Status
      Archived
      Succeeded by Homerow
    Setup
      CocoaPods
      Carthage
      Xcode
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Navigate and click any button or link in any macOS app without using the mouse, using keyboard letter shortcuts.

USE CASE 2

Scroll through long pages in any macOS window using HJKL keyboard keys like in Vim.

USE CASE 3

Study how hint-mode keyboard navigation is implemented using the macOS Accessibility API for a custom Swift app.

What is it built with?

SwiftCocoaPodsCarthageXcode

How does it compare?

nchudleigh/vimacdevmeremenko/xcodebenchmarkgee1k/upic
Stars3,6663,6363,701
LanguageSwiftSwiftSwift
Setup difficultyhardeasyeasy
Complexity3/52/52/5
Audiencedeveloperdeveloperwriter

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires CocoaPods, Carthage, and Xcode, accessibility permissions must be re-granted after each clean build using an AppleScript.

In plain English

Vimac is a macOS application that lets you control your computer's graphical interface using only the keyboard, without touching the mouse or trackpad. The project is no longer actively maintained under this name: the README notes that Vimac has been succeeded by a newer app called Homerow, which the author describes as a refined and more performant version. The app works through two main modes. Hint mode overlays short letter combinations (like "ka" or "jd") on every clickable element visible in the current window. You type the letters assigned to an element and the app performs a click at that location, as if you had moved the mouse and clicked manually. This lets you click buttons, links, and icons without reaching for the mouse. Scroll mode activates keyboard scrolling using the HJKL keys, which are the directional keys from the Vim text editor that inspired this project. Vimac was directly inspired by Vimium, a browser extension that applies the same keyboard-navigation idea to web pages in Chrome and Firefox. Vimac extends the concept to all macOS application windows, not just the browser. The README describes a developer setup that requires CocoaPods and Carthage (two dependency managers for macOS/iOS projects) and Xcode. There are some quirks in the build process: accessibility permissions need to be re-granted after each clean build using an AppleScript, and several local files must not be committed after setting up for development. Anyone interested in this style of keyboard navigation today would likely look at the successor project, Homerow, rather than this archived repository.

Copy-paste prompts

Prompt 1
I want to build a macOS app like Vimac that overlays keyboard shortcuts on UI elements for mouse-free navigation. Show me how to use the macOS Accessibility API to enumerate all interactive elements in the current window.
Prompt 2
How does Vimac's hint mode work? Explain how it assigns two-letter codes to every clickable element and simulates a mouse click when the user types the code.
Prompt 3
Help me build the same hint-mode concept from Vimac in a macOS Swift app: enumerate UI elements, overlay letter labels, detect keystrokes, and send a click event.
Prompt 4
How do I set up the Vimac development environment with CocoaPods and Carthage, and why do accessibility permissions need to be re-granted after each clean build?

Frequently asked questions

What is vimac?

An archived macOS app that lets you click and scroll using only the keyboard by overlaying letter shortcuts on every clickable element, inspired by Vim. Succeeded by Homerow.

What language is vimac written in?

Mainly Swift. The stack also includes Swift, CocoaPods, Carthage.

How hard is vimac to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is vimac for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub nchudleigh on gitmyhub

Verify against the repo before relying on details.