Live teleprompter for recording flawless product demos, AI agent sessions, and technical screencasts.
Reads step-by-step scripts (cue.json) and types text character-by-character with human cadence into real terminals, code editors, and desktop applications, advancing on demand via global hotkey (F9) without blind timeouts (Sleep 60s).
- π― Why cue-type?
- β¨ Key Features
- π Quick Start
- π¬ Recording Workflow with OBS / ShareX
- π οΈ Script Format (
cue.json) - π‘οΈ Security, Antivirus, and UIPI
- π Script Privacy
- π» Development & Building
- π€ Contributing
- π License
Traditional terminal demo automation tools (like VHS .tape scripts) generate synthetic videos in headless containers and rely on rigid wait times (Sleep 10s, Sleep 60s). If an AI agent (Claude Code, OpenCode, Aider, or an MCP tool), compiler, or network request takes 5 seconds longer or finishes early, your demo breaks or dead air ruins the screencast.
cue-type is not a video rendererβit is your live recording prompter. It pairs seamlessly with your real recording tools (OBS Studio, ShareX, ScreenToGif, Loom, Camtasia) by putting you in total control of live input:
- Human-driven pacing: You decide when to trigger the next command or text block by pressing
F9(or clicking in the UI) once the previous task or output finishes. - Universal target support: Types into any focused windowβnot just terminals (PowerShell, Windows Terminal, CMD, Git Bash), but also code editors (VS Code), browser inputs/forms, REPLs, and desktop GUI applications.
- Natural typing animation: Character-by-character injection with configurable base speed (10β120ms) and random jitter, perfectly simulating a human developer typing live.
- Mid-typing abort (
Esc): If you notice an unexpected state or need to pause, pressingEscimmediately aborts typing before executing the command. - OBS Canvas-agnostic: The control window sits comfortably on a secondary monitor or outside the capture area while injecting cleanly into your focused window.
- β‘ Zero-Install Standalone Binary: Precompiled as a single standalone executable (
cue-type-portable-x64.exe) with native WebView2 integration. - π― Target Auto-Detection: Interactively picks and blinks target windows matching your criteria (Windows Terminal, PowerShell, VS Code, Browser, CMD, etc.).
- ποΈ Live Recording Companion: Purpose-built to work alongside OBS, ShareX, ScreenToGif, or Loomβyour final recording stays clean and free of prompter clutter.
- β¨οΈ Safe Win32 Input Simulation: Powered by
RegisterHotKeyandSendInputwithout low-level hooks (SetWindowsHookEx) to avoid antivirus heuristic triggers. - π‘οΈ UIPI Awareness: Detects elevation mismatches (e.g. standard app vs. Administrator terminal) and alerts you before keystrokes are rejected.
- π Automatic Clipboard Fallback: Automatically falls back to
Ctrl+Vpasting if character injection encounters complex Unicode strings.
- Download
cue-type-portable-x64.exefrom Releases. - Open your target application (Windows Terminal, PowerShell 7, VS Code, Browser, or CMD).
- Launch
cue-type-portable-x64.exe. - Select your target window in the
[Detect βΌ]dropdown and clickβ‘ Testto verify focus. - Focus your target window and press
F9to inject and run commands step by step!
flowchart LR
A[OBS / ShareX / Loom Capture Area] -->|Records Clean Window| B(Terminal / VS Code / App Window)
C[Secondary Monitor / Off-Canvas] -->|Runs| D(cue-type Live Prompter)
D -.->|Global F9 Hotkey| B
- Configure Capture:
- In OBS Studio (or ShareX, ScreenToGif, Loom), add a Window Capture or Crop Source targeting only your terminal, code editor, or app window.
- Position cue-type:
- Move the
cue-typewindow to your secondary screen or outside the recorded area.
- Move the
- Trigger:
- Focus your recorded window.
- Press
F9:cue-typereceives the global shortcut in the background, animates keystrokes live on camera, and executes the completion action (e.g.ENTER). - Your recording captures natural, error-free typing without showing the prompter window or risking typos in live presentations.
Scripts are simple, human-readable JSON files:
{
"target": {
"windowTitleRegex": "pwsh|Windows Terminal|opencode",
"mode": "any-console"
},
"defaults": {
"typingSpeedMs": 35,
"jitterMs": 25
},
"steps": [
{
"id": 1,
"text": "cargo run --release",
"actionAfter": "ENTER"
},
{
"id": 2,
"text": "curl http://localhost:8080/health",
"actionAfter": "ENTER"
}
]
}βοΈ Parameter Reference (Click to expand)
| Field | Type | Default | Description |
|---|---|---|---|
target.windowTitleRegex |
string |
".*" |
Regex pattern matching the title of the target application window. |
target.mode |
string |
"any-console" |
Target mode filter ("any-console", "exact-hwnd"). |
defaults.typingSpeedMs |
number |
35 |
Base delay in milliseconds between keystrokes. |
defaults.jitterMs |
number |
25 |
Random variance added/subtracted to base delay for natural cadence. |
steps[].text |
string |
(required) | Text to type into the target console. |
steps[].actionAfter |
string |
"ENTER" |
Action upon completing typing ("ENTER", "NONE"). |
Unsigned open-source binaries may trigger the standard "Windows protected your PC" message. Click "More info" and "Run anyway". The entire source code is auditable in this repository.
cue-typeuses standardRegisterHotKeyWin32 APIs instead of intrusive low-level keyboard hooks (SetWindowsHookEx), avoiding keylogger flags.- Binaries are distributed cleanly without UPX compression or packers.
If your terminal runs As Administrator and cue-type runs as a standard user, Windows security blocks keystroke injection. cue-type detects this condition automatically and warns you to run cue-type with matching Administrator permissions.
Your demo scripts remain 100% private and local:
- Save your custom scripts in
cues/or anywhere on your filesystem. - Git ignores
*.cue.jsonautomatically (except sanitized public samples inexamples/).
The repository includes a Windows-ready Makefile:
# View all available make targets
make
# Start live development environment (Vite + Tauri)
make dev
# Build standalone portable binary (dist-portable/cue-type-portable-x64.exe)
make build
# Run unit tests
make test
# Type-check TypeScript and check Rust syntax
make check
# Clean build artifacts
make cleanContributions are warmly welcome! Please read our Contributing Guide and Code of Conduct before submitting Pull Requests.
This project is licensed under the MIT License β see the LICENSE file for details.

