A minimal VSCode extension that types prepared code into the active editor like a human is typing it. Built for screen-recorded coding tutorials — not a code generator, parser, or replay tool.
What it does
Types selected text in-place character by character with humanish delays.
If nothing is selected, prompts you to pick a workspace file and types its contents at the cursor.
Adds extra pauses around newlines, brackets, dots, commas, and semicolons.
Cancellable mid-stream.
A status bar indicator shows while typing.
Run in dev mode
npm install
Open this folder in VSCode.
Press F5 (the .vscode/launch.json boots an Extension Development Host).
In the new window, open or create a file. Select some text or leave empty.
Run "Human Type: Start" from the command palette.
Commands
Command
ID
Description
Human Type: Start
humanType.start
Start typing the current selection, or pick a workspace file if no selection.
Human Type: Stop
humanType.stop
Cancel an in-progress session. Click the status bar indicator for the same effect.
Settings
Key
Default
Description
humanType.realism
medium
low | medium | high. Adds extra padding on top of the base delay range.
humanType.baseMinMs
15
Minimum base delay between keystrokes (ms).
humanType.baseMaxMs
45
Maximum base delay between keystrokes (ms).
Scripts
npm run compile — TypeScript build.
npm run lint — ESLint over src/ and test/.
npm run format — Prettier write across the repo.
npm run format:check — Prettier in check-only mode (CI gate).
npm run audit — npm audit, fails on any advisory.
npm test — Mocha tests over the compiled output.
npm run check — format:check + lint + compile + test + audit.
npm run package — produce a .vsix via vsce.
npm run publish — publish to the Marketplace via vsce.
Before committing
Run all gates locally before pushing — CI runs the same set and will block a merge / tag publish if any fails:
npm run format # auto-fix formatting (or `format:check` to verify only)
npm run lint # eslint
npm audit # zero advisories required
npm run check # umbrella: format:check + lint + compile + test + audit
Same gates run in .gitlab-ci.yml on every push and tag pipeline.
Known limitations
This v0 does not parse code. It only uses character-aware pauses.
It is built for tutorial recording, not real code generation.
No multi-cursor support.
No mistake / typo simulation.
No persona profiles (junior/senior).
Single typing session at a time.
Switching to a different editor mid-typing stops the session.