idlidosa
v1.0.0
Published
System-wide AI overlay. Hidden from screen sharing.
Maintainers
Readme
Idlidosa
System-wide AI overlay. Press the same arrow-key combos you'd use in a Chrome extension — but anywhere on your OS (browser, IDE, PDF viewer, terminal, games, anything). The overlay is hidden from screen sharing and screen recording by default, so Zoom / Meet / Teams / Loom / OBS / QuickTime can't see it.
Powered by Groq (Llama 4 Scout). The package ships with an encrypted key pool, so on first install you don't even need to paste your own key. Keys auto-rotate when rate limits are hit.
Install & run
npx Idlidosa startThat's it. A tray icon appears, the system-wide hotkey listener attaches, and the overlay is ready. Stealth is ON by default — hidden from all screen sharing software automatically.
To stop it:
npx Idlidosa stopOr press Alt + Shift + K anywhere to instantly quit.
Hotkeys (work everywhere on your OS)
| Combo | Action |
|---|---|
| Left + Right | Capture full-screen screenshot |
| Up + Right | Ask AI about the current screen |
| Up + Down | Toggle the overlay |
| Up + Left | Toggle follow-cursor mode |
| Down + Right | Copy answer to clipboard |
| Alt + A | Full scan of foreground app + ask AI |
| Alt (alone) | Hide the overlay |
| Alt + Shift + K | Quit Idlidosa instantly |
Hidden from screen sharing
By default the overlay window has OS-level "content protection" turned on:
- macOS:
NSWindowSharingNone— invisible to ScreenCaptureKit /CGWindowListCreateImage/ Zoom / Meet / Teams / Loom / OBS / QuickTime. - Windows:
WDA_EXCLUDEFROMCAPTURE(Win10 2004+) — hidden from Windows Graphics Capture and Desktop Duplication APIs. - Linux/X11: not supported by the OS — the overlay will appear in screen share. (Wayland support is on the roadmap.)
To toggle:
Idlidosa stealth on # default
Idlidosa stealth offOr click the tray icon → Stealth (hide from screen share) checkbox.
Commands
Idlidosa start # launch the tray daemon (default command)
Idlidosa stop # kill the daemon
Idlidosa status # show daemon, stealth, and key state
Idlidosa stealth on|off # toggle hide-from-screen-share
Idlidosa rotate # pick the next bundled key
Idlidosa key <YOUR_KEY> # use your own Groq key (overrides the pool)
Idlidosa clear-key # forget your override and fall back to the poolNetwork compatibility
Idlidosa works on any network, including college/corporate networks with firewalls or SSL inspection. SSL certificate validation is relaxed to ensure connectivity through proxy servers.
Key management
The bundled key pool is AES-256-GCM encrypted in shared/keys.json. Keys are
decrypted at runtime only. This prevents automated key scanners from detecting
API keys in the npm tarball.
When a key hits a rate limit (HTTP 429), Idlidosa automatically rotates to the next key in the pool. Each key gets a 60-second cooldown before being retried. With 9 keys in the pool, rate limiting is effectively eliminated for normal use.
Permissions
- macOS: First run pops the OS Accessibility prompt (System Settings →
Privacy & Security → Accessibility). Enable Idlidosa, then
Idlidosa stopandIdlidosa startagain. The tray menu has a quick-link. - Windows: No prompt; works out of the box.
- Linux: Requires X11 (Wayland is unsupported by the underlying keyboard hook).
Project layout
Idlidosa/
├── cli/ # `Idlidosa` CLI entry (start/stop/status/rotate/stealth/key)
├── desktop/src/ # Electron daemon, hotkeys, capture, overlay window
├── shared/ # types, storage (Conf), groq client, keyPool, crypto
├── scripts/ # key encryption utility
├── extension/ # legacy Chrome extension
├── docs/ # release notes
├── package.json
└── README.mdDevelopment
npm install
npm run build
node dist/cli/index.js start # foreground-friendly: append --foregroundBuild & publish
# 1. Encrypt your Groq keys
node scripts/encrypt-keys.cjs key1 key2 key3 ...
# 2. Build
npm run build
# 3. Sanity check
npm pack --dry-run
# 4. Publish
npm publishPublishing with a different name
To publish under a different npm name (e.g., studymate):
- Edit
package.json: change"name"to your desired name - Edit
package.json: change"bin"key to match:"studymate": "dist/cli/index.js" - Run
npm run build && npm publish - Users install with:
npx studymate start
