
A successful KeyCastr installation has two parts: placing a trusted application on the Mac and granting the exact copy permission to receive keyboard events. Skipping the permission step is the most common reason the overlay appears to do nothing.
Choose the correct package
Application release versus source ZIP
A ready-to-run application release contains KeyCastr.app. The supplied main-branch ZIP on this website contains source code and project assets; it is intended for development or manual building.
Homebrew option
Users with Homebrew can install the cask with brew install --cask keycastr. This is often the simplest method for keeping the application in the normal macOS Applications workflow.
Install a downloaded application release
Extract and move the app
Open the trusted archive, then move KeyCastr.app into Applications. Launching from a temporary Downloads folder can create duplicate permission entries later.
Open the application
Start KeyCastr from Applications. If macOS shows a security prompt, verify the source and follow the normal Open process for a trusted app.
Enable Input Monitoring
Open Privacy & Security
On macOS 10.15 and later, open System Settings, choose Privacy & Security, then Input Monitoring. Turn on KeyCastr and authenticate if required.
Older macOS versions
Older systems may list KeyCastr under Accessibility. Add the app with the plus button if it does not appear automatically.
Complete first-run configuration
Select a visualizer
Open KeyCastr preferences and choose Default or Svelte. Then choose Command Keys Only, All Modified Keys or All Keys.
Adjust visibility
Set font size, color and timing for the final recording or presentation resolution. Test at the same scaling your audience will see.
Avoid duplicate permission entries
Use one app copy
Keep a single KeyCastr.app in Applications. If the permission list points to an older copy, remove the entry, launch the current app and enable it again.
Restart after changes
Quit and reopen KeyCastr after changing Input Monitoring. This refreshes the event tap using the new permission state.