Typewriter mode makes AI-generated text appear to be typed naturally by simulating human typing patterns, including realistic delays, typos, and corrections. This mode is essential for coding interviews and platforms with paste detection.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/TabbyAIKeyboard/tabby/llms.txt
Use this file to discover all available pages before exploring further.
Why Typewriter Mode?
Many coding interview platforms and proctored environments detect clipboard operations and automated pasting. Typewriter mode bypasses these restrictions by:- Typing each character individually with human-like timing
- Introducing realistic typos and corrections
- Varying keystroke delays based on context (punctuation, spaces, etc.)
- Handling newlines and indentation like a real developer
Typing Modes
Tabby offers two typewriter implementations optimized for different scenarios:Simple Typewriter
For basic text editors like Notepad, chat applications, and forms:- Plain text editors
- Email and messaging
- Web forms
- Documentation
LeetCode Typewriter
For code editors with auto-indent (LeetCode, CodeSignal, HackerRank, etc.):- LeetCode interviews
- Online coding platforms
- IDEs with auto-formatting
- Smart code editors
LeetCode mode includes special handling to reset auto-indentation and preserve exact spacing from your source code.
Human Typing Simulation
Realistic Typos
Typewriter mode uses a QWERTY keyboard proximity map to generate believable typos:Variable Timing
Typewriter mode adds human-like variation to keystroke timing:Default Configuration
LeetCode Mode: Auto-Indent Handling
The LeetCode typewriter includes sophisticated indentation control:Timing Examples
Typing the word “hello” with typewriter mode:Cancellation
Stop typewriter mode at any time: Keyboard: PressShift+Escape
Programmatic:
isTypingCancelled after each character:
Usage in Tabby
Typewriter mode is automatically used based on your Text Output Mode setting:- Open Settings (
Ctrl+,or system tray → Settings) - Navigate to Automation section
- Select your preferred mode:
- Paste - Standard clipboard paste (fast)
- Typewriter - Character-by-character (basic editors)
- Typewriter (LeetCode) - Character-by-character with indent control
The selected mode applies globally to all text insertion operations including action menu results, AI suggestions, and interview copilot code.
Performance
Typing speed varies based on content:| Content Type | Avg. Speed | Example Time |
|---|---|---|
| Short text (50 chars) | 60-80 WPM | ~5 seconds |
| Code snippet (200 chars) | 50-70 WPM | ~25 seconds |
| Full solution (500 chars) | 45-65 WPM | ~60 seconds |
Implementation Reference
Full source code:frontend/electron/src/services/text-handler.ts
Key functions:
typeSimpleToLastWindow()- Lines 153-216typeLeetCodeToLastWindow()- Lines 219-302shouldMakeTypo()- Line 143getRandomNeighborChar()- Line 133randomInRange()- Line 129
Related Features
- Desktop Control - Window management and keyboard automation
- Interview Copilot - Real-time coding interview assistance
- Action Menu - Quick AI transformations