An AI-powered Windows desktop tutor that teaches users software directly on their screen using local AI.
Install the following software:
- Bun 1.3+
- Rust Stable
- Python 3.11+
- Ollama
ollama pull gemma4:e4bbun install
bun run setup:python
bun run check:ollamabun run devCTRL + SHIFT + SPACE
CTRL + SHIFT + ENTER
Ask something like:
How do I install Python extension?
Blinky will:
- Capture the current screen
- Run OCR
- Detect the active application
- Generate AI instructions
- Highlight matching UI elements
By default Blinky uses Ollama. To switch to Groq with image understanding, set these environment variables before running:
$env:BLINKY_AI_PROVIDER="groq"
$env:GROQ_API_KEY="your-groq-api-key"Optional overrides:
$env:BLINKY_GROQ_MODEL="llama-3.2-90b-vision-preview"
$env:BLINKY_GROQ_URL="https://api.groq.com/openai/v1/chat/completions"For Ollama overrides:
$env:BLINKY_AI_PROVIDER="ollama"
$env:BLINKY_OLLAMA_MODEL="gemma4:e4b"
$env:BLINKY_OLLAMA_URL="http://localhost:11434/api/generate"Blinky is a hackathon-ready AI desktop tutor that helps students learn software in real time.
Instead of:
- Watching long YouTube tutorials
- Reading confusing documentation
- Switching tabs repeatedly
Users can simply ask:
"How do I install Python extension?"
"How do I crop an image?"
"How do I export this?"
Blinky will:
- Capture the current screen
- Read visible UI text
- Detect the active application
- Generate AI instructions
- Highlight the exact button/menu to click
Blinky now uses the native Windows API (SetWindowDisplayAffinity / WDA_EXCLUDEFROMCAPTURE) to exclude its own command and overlay windows from screen captures programmatically.
- The Blinky UI remains fully visible and active to you.
- The screenshots captured for the AI model are completely clean, hiding the Blinky UI from its own vision without needing to minimize or hide the app.
- Manual user screenshots (e.g.,
Ctrl + Win + S/Win + Shift + S) still capture Blinky correctly because capture exclusion is dynamically restored immediately after the AI's screenshot is captured (under 100ms).
Highlight boxes for search bars and text inputs are no longer constrained or shrunk to specific OCR words.
- Blinky automatically detects when OCR text lies within a native text-input control (using UIA boundaries).
- It scales and extends the highlight overlay to cover the entire width of the input field, providing a clean, clear visual guide.
Action-oriented tasks (such as searching, downloading, or configuring settings) will always generate a step-by-step Action Guide, even when the target view, panel, or extension marketplace is currently closed.
- Instead of defaulting to a plain text summary, Blinky guides you to open the appropriate panel or sidebar view first, followed by the search and interaction steps.
- Non-visible targets are listed as text guidance with
target_text: ""to keep guidance clear without drawing empty highlights.
Local Ollama (Gemma) execution speed has been optimized to 5-7 seconds (down from 15+ seconds) through:
- Duplicate Capture Elimination: Removed redundant screenshot and OCR execution loops in the Python worker.
- Prompt Compression: Compressed OCR layout tokens by converting items to a compact coordinate string representation, reducing prompt tokens by ~1800.
- Timeout Tuning: Extended connection timeouts to 120 seconds to prevent local model load-time failures.
Captures the active screen instantly when the user asks a question.
Extracts visible text, buttons, menus, and labels from applications.
- Windows OCR API (primary)
- EasyOCR fallback
Runs fully offline using:
- Ollama
gemma4:e4b
Highlights buttons and menus directly on the user's screen.
Open Blinky instantly using:
CTRL + SHIFT + SPACE
- Fully local processing
- No cloud screenshots
- No tracking
- No mandatory external APIs
Students waste hours learning basic software workflows.
Blinky transforms software learning into an interactive real-time experience.
โ
Learn directly inside apps
โ
No long tutorials
โ
No cloud dependency
โ
Beginner-friendly guidance
โ
Privacy-first local AI
โ
Fast workflow assistance
โโโโโโโโโโโโโโโโโโโโโโโ
โ User Question โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Global Hotkey โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Screen Capture โ
โ dxcam โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ OCR Extraction โ
โ Windows OCR โ
โ EasyOCR Fallback โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Active Window โ
โ pywinauto โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Ollama + Gemma โ
โ AI Step Generation โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ JSON Instructions โ
โโโโโโโโโโโโฌโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Overlay Highlight โ
โ Guidance โ
โโโโโโโโโโโโโโโโโโโโโโโ
| Component | Technology |
|---|---|
| Desktop Framework | Tauri 2 |
| Frontend | React + TypeScript |
| JavaScript Runtime / Package Manager | Bun |
| Backend Runtime | Python 3.11+ |
| AI Runtime | Ollama |
| AI Model | gemma4:e4b |
| OCR | Windows OCR API |
| OCR Fallback | EasyOCR |
| Screen Capture | dxcam |
| Window Detection | pywinauto |
| Overlay System | Transparent Tauri Window |
src-tauri/
โโโ Tauri desktop shell
โโโ Overlay window
โโโ Global hotkeys
frontend/
โโโ React UI
โโโ Overlay rendering
โโโ Chat interface
python/
โโโ Capture scripts
โโโ OCR pipeline
โโโ AI integration
โโโ Window detection
โโโ Matching logic
shared/
โโโ Shared schemas
โโโ JSON payloads
scripts/
โโโ Setup scripts
โโโ Startup helpers
- Bun 1.3+
- Rust Stable
- Python 3.11+
- Ollama
ollama pull gemma4:e4bbun install
bun run setup:python
bun run check:ollamabun run devPress:
CTRL + SHIFT + SPACE
Then ask:
How do I install Python extension?
Blinky will:
- Capture the current screen
- Extract visible UI text
- Detect the active application
- Generate AI instructions
- Highlight matching buttons/menus
How do I install Python extension?
Visible UI:
- File
- Edit
- Terminal
- Extensions
- Search
{
"summary": "You can install the Python extension from the Extensions panel.",
"steps": [
{
"step": 1,
"instruction": "Click Extensions on the left sidebar.",
"target_text": "Extensions"
},
{
"step": 2,
"instruction": "Search for Python.",
"target_text": "Python"
}
]
}โ
Extensions button
โ
Search field
Optimized for:
- VS Code
- Chrome
- Paint
- File Explorer
Other applications may work depending on OCR quality.
- Interactive step tracking
- Voice assistant mode
- Better UI matching
- Accessibility improvements
- Multi-monitor support
- Cursor tracking
- AI workflow memory
- Auto-guided walkthroughs
Blinky is designed to be privacy-first.
- No cloud screenshots
- No remote AI dependency
- No external tracking
- Local AI inference only
Everything stays on the user's device.
This MVP intentionally avoids:
- FastAPI
- Local web servers
- Microservices
- Cloud APIs
Tauri launches Python worker scripts directly and communicates using JSON over stdout.
This makes the app:
- Simpler
- Faster
- Easier to debug
- More reliable for hackathons
Recommended hackathon assets:
- Main UI screenshot
- Overlay demo GIF
- Hotkey popup GIF
- VS Code walkthrough demo
- Before/after comparison
โBlinky is an AI desktop tutor that teaches students software directly on their screen using local AI.โ
Contributions, ideas, and feedback are welcome.
Feel free to:
- Open issues
- Suggest features
- Improve OCR
- Optimize overlays
- Add app-specific workflows
MIT License
If you like this project:
- Star the repository
- Share it with friends
- Contribute improvements