---
title: "TypeCue"
description: "A free, open-source Mac app for typing prepared lines during product demos, one block and one hotkey press at a time."
canonical: https://alexpolonsky.com/posts/typecue/
published: 2026-07-19
---

# TypeCue

A free, open-source Mac app for typing prepared lines during product demos, one block and one hotkey press at a time.

[TypeCue website](https://typecue.app) · [Download for macOS](https://github.com/alexpolonsky/TypeCue/releases/latest) · [View source on GitHub](https://github.com/alexpolonsky/TypeCue)

TypeCue is a free, open-source Mac app for typing prepared lines during product demos. Press one hotkey and it types the next block into whichever app is focused, as real keystrokes and at a human pace.

I record a lot of product demos. The part that breaks them most often (and me, after enough takes) is typing.

I know the exact line I need: a prompt, a command, a snippet of code. My fingers still find a way to get it wrong. Autocomplete chooses the wrong word. I type `the the`. A variable loses a letter. Then I start the take again.

Pasting is quicker, but it looks like pasting. Reading from a second screen helps until my eyes slide sideways. Post-production can hide the mistake, but only after I have made it, stopped, and recorded the line again.

I wanted the text to appear naturally while I stayed in control of the take. So I built TypeCue.

<figure class="post-media">
  <video aria-label="TypeCue product demo" controls playsinline preload="metadata" poster="/posts/typecue/demo-poster.jpg">
    <source src="https://github.com/alexpolonsky/TypeCue/releases/download/v0.1.1/TypeCue-demo.mp4" type="video/mp4">
    <a href="https://github.com/alexpolonsky/TypeCue/releases/download/v0.1.1/TypeCue-demo.mp4">Watch the TypeCue demo recording</a>.
  </video>
  <figcaption>TypeCue typing a prepared demo script into TextEdit, one block per hotkey press.</figcaption>
</figure>

## Press a key. It types the line.

A TypeCue script is an ordered list of text blocks. Before recording, I write the lines I will need and select the script from the menu bar. During the take, I focus the target field and press the global shortcut. TypeCue types the next block. I press again when I am ready for the one after it.

The text arrives as system-level keystrokes rather than an instant paste. It works in any ordinary text field, including prompts, terminals, code editors, and chat apps. The typing has a slight natural variation instead of moving at one mechanical speed.

The script can also carry its own direction:

- `[0.5]` pauses for half a second.
- `[speed:40]` changes the pace from that point.
- `[enter]` presses Return.

Ordinary line breaks use Shift-Return by default, so a multiline prompt does not submit halfway through. TypeCue is aware of the active keyboard layout, supports right-to-left text, and falls back to Unicode input for characters the layout cannot type directly.

There is also a small floating panel that shows what has already been typed, what is being typed, and what comes next. It stays visible without taking focus away from the app receiving the text.

## Building the exact tool I wanted

I built the first version over a weekend with Claude Code writing the Swift. I did not stop to learn Swift first. I described the behavior, reviewed the changes, tested the real flows, broke them, and kept narrowing the product until it behaved like the utility I had in mind.

That distinction matters to me. The interesting part is not that an agent can produce code. It is that the distance between a specific annoyance and signed, working software has become short enough to cross when the annoyance is still fresh.

The first public version shipped on July 18, 2026. The next day I found a problem that only became obvious in the real environment: while the Mac was busy recording the screen, typing could hesitate around spaces and line breaks. Those characters were resolving their keycodes through the main thread on every keystroke. I cached the keycodes and kept the typing run latency-sensitive so macOS would not stretch the pauses while TypeCue worked in the background.

It was a useful reminder that a demo tool has to be tested while the demo is being recorded. A clean test field is not the same workload.

## It types only when you tell it to

TypeCue is not meant for unattended automation, bulk form filling, or dumping a paragraph as quickly as possible. A person remains in charge of the rhythm. Nothing is typed until the hotkey is pressed, and pressing it during a block stops the current run.

That constraint is the product. During a recording or a live presentation, I still decide when to move on. TypeCue removes the spelling and pacing failure without taking over the performance.

The app asks for one macOS permission: Accessibility, which is required to send keystrokes to another application. It has no account, analytics, or network calls. Scripts stay on the Mac as plain JSON. Password and other secure fields block synthetic typing at the system level; TypeCue warns instead of silently consuming the next block.

## How agents access TypeCue

The same plain-file design makes TypeCue usable by coding agents without building a separate integration for each one.

Scripts live in a JSON file under Application Support. An agent with local file and command access can prepare or revise those blocks, tell TypeCue to reload them through its URL scheme, activate the right script, reset the session, and read a small state file to see which block comes next.

The repository includes an agent skill that explains the schema, pacing markers, commands, and guardrails. It is also available at [typecue.app/skill.md](https://typecue.app/skill.md), so the setup can begin with one instruction:

> Read https://typecue.app/skill.md and set up my TypeCue scripts.

The agent prepares the material. The person at the keyboard still chooses every cue.

## Current status

TypeCue is released and maintained. It runs on macOS 14 or later, is licensed under MIT, and can be installed from the release page or with Homebrew:

```sh
brew install --cask alexpolonsky/tap/typecue
```

[TypeCue website](https://typecue.app) · [Download for macOS](https://github.com/alexpolonsky/TypeCue/releases/latest) · [View source on GitHub](https://github.com/alexpolonsky/TypeCue)

Also shared on [LinkedIn](https://www.linkedin.com/posts/alexpolonsky_i-record-a-lot-of-product-demos-if-youve-activity-7484573579007815680-0B89) and [X](https://x.com/alexpo/status/2078846378537549932).
