# code52/carnac

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/code52-carnac).**

4,531 stars · 525 forks · C# · MS-PL

## Links

- GitHub: https://github.com/Code52/carnac
- Homepage: http://carnackeys.com/
- awesome-repositories: https://awesome-repositories.com/repository/code52-carnac.md

## Description

Carnac is a keyboard input monitoring tool that records keystrokes in real time and displays them via a transparent window overlay. It is designed to provide visual feedback of keyboard activity on top of all other active applications.

The software captures system-level keyboard events and translates raw hardware scan codes into human-readable characters. It includes controls to toggle or pause the recording of input to prevent sensitive information from being displayed on screen.

The tool is used to provide on-screen visuals for developer screencasting, live coding presentations, software tutorial recordings, and technical demonstrations.

## Tags

### Software Engineering & Architecture

- [OS Input Hooks](https://awesome-repositories.com/f/software-engineering-architecture/global-event-hooks/os-input-hooks.md) — Intercepts keyboard events at the system level to capture keystrokes regardless of which application has focus.
- [Event-Driven UI Rendering](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/event-driven-ui-rendering.md) — Updates the on-screen overlay immediately whenever new keyboard events are captured by the system listener.

### Part of an Awesome List

- [Screencast and Screenshot Tools](https://awesome-repositories.com/f/awesome-lists/devtools/screencast-and-screenshot-tools.md) — Adds visual feedback of keyboard input to video demonstrations to make the workflow easier to follow.

### Development Tools & Productivity

- [Keystroke Visualizers](https://awesome-repositories.com/f/development-tools-productivity/keystroke-visualizers.md) — Records keystrokes in real time and displays them on screen for viewers during presentations or screencasts. ([source](https://github.com/Code52/carnac/blob/master/README.md))
- [Recording Toggles](https://awesome-repositories.com/f/development-tools-productivity/input-recording-and-playback/recording-toggles.md) — Switches the capture of keystrokes on and off to prevent sensitive or irrelevant input from being displayed. ([source](https://github.com/Code52/carnac/blob/master/README.md))
- [Input Recording Toggles](https://awesome-repositories.com/f/development-tools-productivity/input-recording-toggles.md) — Provides a toggle to enable or disable the recording of keystrokes to prevent sensitive information from being displayed.

### Education & Learning Resources

- [Recorded Software Demonstrations](https://awesome-repositories.com/f/education-learning-resources/interactive-demonstrations/recorded-software-demonstrations.md) — Displays keystrokes during software demonstrations to help viewers follow technical instructions.

### User Interface & Experience

- [Transparent Overlays](https://awesome-repositories.com/f/user-interface-experience/floating-window-components/transparency-controls/transparent-overlays.md) — Renders a high-level transparent window to display keystroke text on top of all other active applications.
- [Input Visualization Overlays](https://awesome-repositories.com/f/user-interface-experience/input-visualization-overlays.md) — Provides an on-screen overlay of typed characters to clarify complex keyboard interactions during a live demo.
- [Code Presentation Utilities](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/code-presentation-utilities.md) — Shows keyboard shortcuts and commands on screen in real time during live coding presentations.

### Artificial Intelligence & ML

- [Input History Buffers](https://awesome-repositories.com/f/artificial-intelligence-ml/audio-transcription/transcription-buffering/text-display-buffers/input-history-buffers.md) — Maintains a temporary queue of recent keystrokes to display a sliding window of input on the screen.

### Hardware & IoT

- [Cross-Platform Input Mapping](https://awesome-repositories.com/f/hardware-iot/cross-platform-input-mapping.md) — Translates raw hardware scan codes into human-readable characters across different operating system keyboard layouts.

### Security & Cryptography

- [Privacy Controls](https://awesome-repositories.com/f/security-cryptography/keystroke-logging/privacy-controls.md) — Allows users to temporarily stop the capture of keystrokes to prevent sensitive information from being displayed. ([source](https://github.com/Code52/carnac))
