Show the keys you press while streaming from a Mac

To show the keys you press on a stream, run a keystroke display on your Mac and capture your whole display in OBS, not a single window. OBS has no built-in source that shows keystrokes, and macOS has no setting for it, so an app has to draw the keys on your screen; once they are there, a display capture picks them up like anything else. The parts worth planning are where the keys sit in your layout, how big they are, and what they must never show.

Why keys matter more on a stream than in a video

A recorded tutorial can be fixed in the edit. You can add a title when you press a shortcut, cut the fumble, slow down the fast part. A stream goes out as it happens, so anything viewers cannot see, they never see.

Streams also have viewers arriving halfway through. Someone who joins while you are deep in VS Code does not know you just opened the Command Palette with Command-Shift-P, and on a live stream they are unlikely to rewind to find out. Chat fills with “how did you do that”, and you lose your thread answering it.

Keys on screen answer the question before it is asked. That holds for coding, for design work in Figma, for editing in Final Cut Pro or Logic Pro, and for anything else where the interesting part is how you drive the app.

Get the keys into OBS

The setup has two halves: something that draws your keys on screen, and an OBS source that captures them.

  1. Show the keys. With Typebar, press Control-Option-Command-K (⌃⌥⌘K) or triple-tap fn to show the overlay. It needs one permission, Accessibility, which you grant once in System Settings > Privacy & Security > Accessibility.
  2. Capture the display in OBS. Add a source that captures your whole display. In current versions of OBS on a Mac, that is the macOS Screen Capture source with its method set to Display Capture. macOS asks you to allow OBS to record the screen the first time.
  3. Check the preview. The on-screen keyboard or pill should appear in OBS’s preview. If it does not, the source is not capturing the display it sits on.

The trap is window capture. Many streamers capture only their editor’s window so the rest of the desktop stays private. The overlay is a window of its own, so a capture of one other app’s window does not include it. Capture the whole display instead, then crop the source in OBS to the part you want to show, and keep the overlay inside the crop. Show keystrokes in OBS on a Mac without a plugin goes through the OBS side step by step.

If you use two displays, keep the overlay on the one OBS captures.

Where to put the keys in a stream layout

A stream layout is crowded: your screen, a webcam, perhaps chat, alerts and a title. The keys need a spot of their own.

  • Opposite the webcam. If your camera sits bottom right, put the keys bottom left, or along the bottom middle.
  • Away from the work. In a code editor, the cursor lives in the middle of the screen and the bottom is status bar and terminal panel. In a design app, the canvas is in the middle, so the edges are safer.
  • Clear of the player’s own controls. Video players show their controls and captions along the bottom edge. Leave a margin there.
  • Big enough for a phone. Plenty of viewers watch on a phone, often at a lower resolution than you stream at. Make the keys larger than looks right on your own display, then check the stream on your phone.

Typebar has three modes: the full keyboard, the keystroke pill on its own, or both. Each mode keeps its own size and place on screen, and you drag it by its handle to where it suits your layout. On streams where you type a lot, the pill is often the better fit. It takes less room, and it names each shortcut with the name it has in the app you are using, such as “⌘K Insert Link”, so viewers read the action instead of hunting for a lit key. A full keyboard or a keystroke pill: which reads better in a video compares the two.

Mouse effects help too. Click ripples (left, right and middle clicks each have their own shape), a cursor halo and a drag trail show while the overlay shows, and they go out on stream with it.

Keep passwords and private typing off stream

A stream has no edit, so sort out privacy before you go live rather than after something leaks.

  • Password fields. When macOS marks a field as secure, Typebar shows nothing typed in it, and the pill says “Typing hidden in a password field”.
  • Password managers. Typebar’s “Hide typing in these apps” list starts with 1Password, Bitwarden, Keychain Access and Passwords. Nothing typed shows while one of them is in front, though shortcuts and special keys still do. Add any app where you type things viewers should not read, such as a messaging app you use for private replies.
  • Terminal prompts. A password typed at a command-line prompt is not always in a field macOS treats as secure, so do not count on automatic hiding there. Pause the overlay first, or use Hide letters.
  • Hide letters. Made for live demos: shortcuts and special keys show as usual, and letters show as dots. Viewers still see every Command-S and Command-Z, and none of your text. For many streams this is the right setting from start to finish.
  • Pause. From the menu bar or a shortcut, nothing shows until you choose Resume.

The same goes for reading and answering chat. Whatever you type into the chat box appears in the overlay too, which doubles the text on screen at best. Hide letters handles that as well.

Typebar does not save or send anything you type. Your stream is a different matter: whatever the overlay shows, viewers can clip.

On the Mac side, turn on Do Not Disturb from Control Center before you go live, so notification banners do not slide over your screen mid-stream.

Show the keys only while you are live

You probably do not want a keyboard on screen while you set up, or between streams. Some ways to handle it:

  • By hand. Control-Option-Command-K shows or hides the overlay, and you can change that shortcut in Settings > Shortcuts.
  • Profiles. A profile keeps a whole setup: look, mode, sizes and places, pill, mouse and sounds. Start from the ready-made Recording profile, adjust it to your stream layout, and switch to it from the menu bar before you go live. In Settings > Profiles you can give a profile its own “Switch with” shortcut.
  • Auto-show. “Show when a screen recording starts”, in Settings > Recording, makes Typebar appear by itself while your screen is recorded or shared and hide when that stops, with lists of apps to show in or never show in. Test it with your own streaming setup before you rely on it live.
  • Automation. A typebar:// link switches profiles from Raycast, Alfred or a script, for example open -g "typebar://profile?name=Recording". The Shortcuts app has Show Typebar and Hide Typebar actions too.

Make a keystroke overlay appear only while you record covers the timing side in more detail.

Typebar is $9 once for up to 5 Macs, and free for 24 hours with everything on.

Questions

Can OBS show keystrokes on a Mac by itself?

OBS has no built-in source for keystrokes. The usual approach on a Mac is to show the keys on screen with an app and capture the display they are on.

Why do my keys not show up in OBS?

Most often because the source captures a single window. The overlay is its own window, so capture the whole display, or crop a display capture so the overlay sits inside it.

Will viewers see my passwords?

Not in fields macOS marks as secure, or while a password manager on the hide list is in front. Command-line prompts are not always covered, so pause the overlay or use Hide letters before typing anything private there.