tdeo
Auto-type your code for coding tutorials and YouTube screencasts
Features
- 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
Getting Started
Option 1: Pilot Mode (Quick & Easy)
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
Option 2: Scripted Mode (Full Control)
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
Timing Commands
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 |
Example Script
// :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
Block Commands
For multiple lines, use start/end blocks:
// :tdeo instant-start
import React from 'react';
import { useState } from 'react';
import { useEffect } from 'react';
// :tdeo instant-end
All imports appear instantly, then normal typing resumes.
| Block |
Effect |
instant-start / instant-end |
Show lines instantly |
hide-start / hide-end |
Hide lines from output |
Inline Commands
Add commands at the end of any line:
const result = calculate(); // :tdeo pause 2s
The 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 */ |
Keyboard Shortcuts
| Shortcut |
Action |
Cmd+Shift+T (Mac) |
Start / Pause / Resume |
Ctrl+Shift+T (Windows/Linux) |
Start / Pause / Resume |
Escape |
Stop playback |
Settings
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 |
Pro Tips
| 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) |
How It Works
- You write your final, working code
- Add
:tdeo comments 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
Requirements
- VS Code 1.85.0 or higher
- Any screen recording software (OBS, Loom, QuickTime, etc.)
Support
License
AGPL-3.0