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.jsonboots 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 oversrc/andtest/.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.vsixviavsce.npm run publish— publish to the Marketplace viavsce.
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.