Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>Typing While LLM ThinksNew to Visual Studio Code? Get it now.
Typing While LLM Thinks

Typing While LLM Thinks

Anton Kovalev

|
11 installs
| (0) | Free
Practice touch typing while Claude Code, Copilot or Cursor is generating. Lessons, free play, finger guide. Focus auto-returns to chat when the model replies.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Typing While LLM Thinks

While Claude Code, Copilot, or Cursor is generating its answer, you're staring at a loading spinner. This extension turns that wait into typing practice — and gets out of your way the moment the model replies.

demo

What it does

  • A typing trainer lives in a side panel of VSCode.
  • When the LLM starts generating, the trainer activates. When the LLM replies, it pauses and focus jumps back to your terminal or editor automatically.
  • A linear course walks you from the home row through punctuation and sentences. Each lesson unlocks the next. There's also a free-play mode for when you already know what you're doing.
  • Languages: English, Spanish, and Russian (with the ЙЦУКЕН layout).
  • A small on-screen keyboard shows which finger to use for the next key.

Auto mode for Claude Code

Claude Code can fire shell hooks on lifecycle events. The extension exposes three local HTTP endpoints on 127.0.0.1:9785 and ships hooks that ping them. Add this to ~/.claude/settings.json (merge with any existing hooks block):

{
  "hooks": {
    "UserPromptSubmit": [
      { "hooks": [{ "type": "command", "command": "curl -s -m 1 -X POST http://127.0.0.1:9785/llm/start >/dev/null 2>&1 || true" }] }
    ],
    "Stop": [
      { "hooks": [{ "type": "command", "command": "curl -s -m 1 -X POST http://127.0.0.1:9785/llm/stop  >/dev/null 2>&1 || true" }] }
    ],
    "Notification": [
      { "hooks": [{ "type": "command", "command": "curl -s -m 1 -X POST http://127.0.0.1:9785/llm/notify >/dev/null 2>&1 || true" }] }
    ]
  }
}

The full example file is bundled in hooks/claude-code-settings.example.json in the repo.

Manual mode

Keybindings, in case auto isn't wired up:

Action mac Linux / Windows
Start trainer ⌘+⌥+T Ctrl+Alt+T
Stop trainer ⌘+⌥+Y Ctrl+Alt+Y
Toggle ⌘+⌥+U Ctrl+Alt+U

Or run Typing Trainer: Open Panel from the Command Palette.

Lessons

The course is the same for every language, only the characters change:

  1. Home row keys
  2. Home row words
  3. Top row keys
  4. Top + home words
  5. Bottom row keys
  6. All letters mix
  7. Common words
  8. Longer words
  9. Capitalization
  10. Numbers row
  11. Punctuation
  12. Sentences
  13. Code snippets

Completing a lesson unlocks the next one. Best WPM and accuracy per lesson are saved per-user via VSCode's global state.

Settings

  • typingTrainer.exerciseLanguage — en, es, or ru.
  • typingTrainer.showFingerMap — show the on-screen keyboard with finger highlighting.
  • typingTrainer.autoStartFreePlay — never, whenIdle (default), or always. Decides whether free play kicks in automatically on LLM start.
  • typingTrainer.refocusOnStop — where focus goes when the LLM replies. Default terminal.
  • typingTrainer.httpPort — local port for hook signals. Default 9785.
  • typingTrainer.enableHttpServer — turn the hook server off if you only want manual keybindings.

Notes on Russian

The Russian course uses the standard ЙЦУКЕН layout. You need to switch your system keyboard to Russian before starting — the extension only sees the characters your OS sends. If you type Latin while the lesson expects Cyrillic, you'll see a hint banner.

Limits

  • Auto mode currently works with tools that expose lifecycle hooks. Claude Code is the canonical case. Copilot Chat and Cursor don't expose comparable events yet — for those, use the manual keybindings.
  • The HTTP server binds to 127.0.0.1 only. External requests are rejected.
  • One VSCode window at a time can hold the port. Other windows will log a benign warning.

License

MIT.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft