A Raycast extension that simulates realistic typing with configurable delays. Perfect for creating demos, tutorials, and presentations where you want to show code or text being typed naturally.
Fun fact: This extension was repurposed from a script I originally wrote to paste into VMware remote consoles that didn't support clipboard pasting. It basically mimicked human typing to get around that limitation! I still use it with clipboard mode for this purpose.
[0.5] for 500ms delay, [2] for 2 seconds, etc.[speed:20] for fast, [speed:100] for slow, or [speed:default] to reset[enter], [tab], [escape], [space], [delete][ctrl+c], [cmd+v], [alt+tab], [shift+insert][cmd+shift+t], [ctrl+alt+delete], [cmd+option+esc]command or cmd, option or alt, control or ctrl[0.5] - Pause for 500ms[2] - Pause for 2 seconds[enter] - Press Enter/Return key[tab] - Press Tab key[escape] - Press Escape key[space] - Press Space key[delete] - Press Delete/Backspace key[speed:20] - Change typing speed to 20ms between characters (fast)[speed:100] - Change typing speed to 100ms between characters (slow)[speed:default] - Reset to the base typing speed you set initiallyPerfect for speeding through boilerplate code then slowing down for important parts!
Single modifiers:
[ctrl+c] - Control+C[cmd+c] - Command+C[alt+tab] - Alt+Tab (or Option+Tab)[shift+insert] - Shift+InsertMulti-modifiers:
[cmd+shift+t] - Command+Shift+T[ctrl+alt+delete] - Control+Alt+Delete[cmd+option+esc] - Command+Option+EscapeAliases:
command = cmdoption = altcontrol = ctrl\[ - Type a literal bracket\n - Type a newline\\ - Type a literal backslash\ at end of line - Line continuation (skip the newline)[1]Hello everyone,[0.7] this is a demo[2]... pretty cool right?
def hello():[enter]
[0.3] print("Hello, World!")[enter]
[0.5][enter]
hello()
[cmd+shift+t]Opening new terminal tab...[1][enter]
[0.5]npm install[enter]
vim script.py[enter]
[0.5]i[speed:10]import os[enter]
import sys[enter]
[enter]
print("Fast typing!")[speed:default][0.5][escape]
:wq[enter]
[cmd+shift+option+v][speed:10] or [speed:20] to speed through boilerplate code, then [speed:default] for the important partsmedia/demo-script.txt file shows a complete example with vim, speed changes, and special keys!This extension does NOT support stopping the typing once it has started. Please be cautious when using it, as it will continue typing until the end of the script is reached. I have tested multiple ways to implement a stop feature, but they were all inconsistent! PRs are welcome if you can find a reliable method.
Contributions are welcome! Please open an issue or submit a pull request for any bugs, feature requests, or improvements.
MIT