Skip to content

idolaman/Idletime

Repository files navigation

Idletime

Type. While AI Thinks.

A Chrome extension that turns AI wait time into practice time. Sharpen your typing speed or learn IDE shortcuts — right inside ChatGPT and Gemini.

Install from Chrome Web Store | Landing page


Speed Typing

Practice on random English words while the AI generates a response. The overlay appears automatically, tracks your keystrokes, and shows your WPM when done.

Speed typing mode

Shortcut Quizzes

Learn keyboard shortcuts for Cursor and JetBrains IDEs (macOS & Windows). Pick the right key combo from four options — no more forgetting shortcuts.

Shortcut quiz mode


How it works

  1. You ask ChatGPT or Gemini a question
  2. While the AI is thinking, Idletime shows an overlay
  3. Practice typing or shortcuts until the response arrives
  4. The overlay disappears automatically — back to your conversation

The overlay also auto-hides after 3 seconds of inactivity, or on any click/scroll.

Installation

Install it from the Chrome Web Store, or load it manually:

  1. Clone this repository
  2. Open Chrome and go to chrome://extensions/
  3. Enable Developer mode (top-right toggle)
  4. Click Load unpacked and select the project directory (or dist/ after building)

Development

npm install          # install dev dependencies (sharp for icon generation)
npm run build        # copy source files to dist/
npm run package      # build + create idletime-extension.zip
npm run icons        # regenerate icon sizes from source image

After building, load dist/ as an unpacked extension in Chrome to test.

Architecture

detectors/       # AI site state detectors (ChatGPT, Gemini)
logic/           # Session state management (typing, shortcuts)
ui/              # DOM components (overlay, word display, caret, toast, quiz)
utils/           # Helpers (key capture, idle timer, dismiss detection, storage)
shortcuts/       # Keyboard shortcut datasets per IDE and platform
stats/           # WPM calculation
content.js       # Content script entry point
popup.js         # Extension popup coordinator
  • No bundler — plain ES modules loaded via chrome.runtime.getURL()
  • Shadow DOM — UI is encapsulated to avoid conflicts with host page styles
  • Manifest V3 — uses chrome.storage for settings, no background service worker

Adding a new AI site

  1. Create a detector in detectors/ that exports { observe(cb), disconnect() }
  2. Register it in detectors/index.js with a hostname match
  3. Add the site URL pattern to manifest.json content script matches

Adding shortcut datasets

  1. Add a new file in shortcuts/ following the existing format (array of { action, chord })
  2. Register it in shortcuts/index.js

Privacy

Idletime stores typing stats (WPM and duration) locally using chrome.storage. No data is transmitted off-device. The extension only requires the storage permission.

Contributing

See CONTRIBUTING.md for guidelines.

License

MIT

About

Practice typing and learn IDE shortcuts while AI assistants are thinking - a Chrome extension for ChatGPT and Gemini

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors