Auto-type your code for coding tutorials and YouTube screencasts
- Scripted Mode — Pre-plan your typing with speed controls, pauses, and instant sections
- Pilot Mode — Control typing live with your spacebar, no scripting needed
- Clean Recording — All UI elements hide during playback for authentic-looking videos
- Works Everywhere — Supports JavaScript, Python, Go, Rust, HTML, CSS, and more
Best for spontaneous recordings without any setup.
- Open your code file in VS Code
- Click the keyboard icon in the editor title bar (top right)
- Choose your typing speed
- Start your screen recorder (OBS, Loom, etc.)
- Press Spacebar to type each word
- Press Escape when done
Best for polished tutorials with precise timing.
- Write your final code
- Add timing commands as comments (see below)
- Click the play button in the editor title bar
- Start your screen recorder
- Confirm to begin — tdeo types your code automatically
Add these as comments in your code. They control how tdeo types each section.
| Command | What It Does |
|---|---|
:tdeo speed 0.5 |
Type slower (0.5x speed) |
:tdeo speed 2 |
Type faster (2x speed) |
:tdeo pause 2s |
Pause for 2 seconds |
:tdeo instant |
Show next line instantly |
:tdeo hide |
Skip this line entirely |
:tdeo wait |
Wait for your keypress |
// :tdeo speed 2
import express from 'express';
// :tdeo speed 0.5
// :tdeo pause 1s
const app = express();
// :tdeo instant
app.listen(3000);Result:
- Import types quickly (2x)
- Pauses 1 second, then types slowly (0.5x)
- Last line appears instantly
For multiple lines, use start/end blocks:
// :tdeo instant-start
import React from 'react';
import { useState } from 'react';
import { useEffect } from 'react';
// :tdeo instant-endAll imports appear instantly, then normal typing resumes.
| Block | Effect |
|---|---|
instant-start / instant-end |
Show lines instantly |
hide-start / hide-end |
Hide lines from output |
Add commands at the end of any line:
const result = calculate(); // :tdeo pause 2sThe code types normally, the command is stripped, and the pause happens after.
| Language | Syntax |
|---|---|
| JavaScript, TypeScript, Go, Rust | // :tdeo speed 1 |
| Python, Ruby, Shell | # :tdeo speed 1 |
| HTML, XML | <!-- :tdeo speed 1 --> |
| CSS | /* :tdeo speed 1 */ |
| Shortcut | Action |
|---|---|
Cmd+Shift+T (Mac) |
Start / Pause / Resume |
Ctrl+Shift+T (Windows/Linux) |
Start / Pause / Resume |
Escape |
Stop playback |
Open VS Code Settings (Cmd+, or Ctrl+,) and search for "tdeo":
| Setting | Default | Description |
|---|---|---|
tdeo.baseSpeed |
1.0 | Default typing speed |
tdeo.charDelay |
50 | Milliseconds between characters |
tdeo.lineDelay |
100 | Extra delay after newlines |
tdeo.createBackup |
true | Save original file as backup |
| Goal | Solution |
|---|---|
| Speed through imports | Use speed 2 or instant-start/end |
| Emphasize key code | Use speed 0.5 before important lines |
| Give viewers time to read | Add pause 2s after complex sections |
| Hide config/secrets | Use hide or hide-start/end |
| Live demos | Use Pilot Mode (keyboard icon) |
- You write your final, working code
- Add
:tdeocomments to control pacing - tdeo clears the file and re-types it character by character
- You record your screen with any tool
- Your recording shows realistic typing in your real VS Code setup
- VS Code 1.85.0 or higher
- Any screen recording software (OBS, Loom, QuickTime, etc.)
AGPL-3.0