A lightweight, stealth-friendly note-taking overlay for Windows with built-in AI assistance (Claude & Gemini).
- Double-click
Service Host꞉ Windows Helper.exein the project root. - On first launch the app creates a
dist/folder withnote_assistant_config.jsonfor your settings and API keys. This folder is gitignored so credentials are never committed.
No VS Code, Python, or command prompt required.
Settings and API keys are stored in dist/note_assistant_config.json (auto-created on first run). A .env file next to the executable is optional.
Click the API button in the toolbar to open the API Settings dialog. Two modes are available:
Set a Proxy URL and Proxy Key to route all AI requests through a shared proxy (e.g. a Cloudflare Worker). Leave the direct API key fields empty.
Leave the Proxy URL empty and enter your own API keys:
- Claude API Key — for Anthropic Claude (primary)
- Gemini API Key — for Google Gemini (fallback)
Keys are saved to dist/note_assistant_config.json. Environment variables (ANTHROPIC_API_KEY, GEMINI_API_KEY, PROXY_URL, PROXY_KEY) still work as defaults but config values take priority.
- Open notes with the Open button.
- Search with the search box (Enter = next match).
- Use Snip & Ask for normal screenshot Q&A.
- Use F10 for stealth snip.
- Stealth results copy to clipboard automatically.
Use the Stealth ▾ menu in the toolbar to configure:
- Text color
- Font family
- Font size
- Copy Only (Hide Text) mode
- Windows-only (hotkeys and stealth behavior rely on Windows APIs).
- If the EXE is already running, close it before replacing/rebuilding it.
- Open this folder in VS Code.
- Create/activate a Python virtual environment.
- Install dependencies:
pip install -r requirements.txt- Run from source:
python note_assistant.py- Rebuild the EXE (outputs to project root):
pyinstaller note_assistant.spec --distpath . --noconfirm- Hotkeys are configurable from the app: click the Hotkeys button (toolbar) to open the Hotkey Settings dialog.
- Hotkey mappings and other settings are saved to the config file: dist/note_assistant_config.json.
- The JSON
hotkeyskey containstoggle,snip,copyonly, andtext_hotkeysentries. - Default copy-only toggle:
Ctrl+F8(can be changed in Hotkey Settings).
- A PowerShell helper is provided to rebuild the EXE: scripts/build_exe.ps1.
- Run it with PowerShell:
powershell -ExecutionPolicy Bypass -File .\scripts\build_exe.ps1
- Run it with PowerShell:
- To automatically rebuild when source changes, run the watcher script: scripts/watch_and_build.ps1.
- Start it with PowerShell and leave it running:
powershell -ExecutionPolicy Bypass -File .\scripts\watch_and_build.ps1
- Start it with PowerShell and leave it running:
- Use API → Diagnostics to view whether proxy/Claude/Gemini keys are set and whether clients initialized.
- AI-reliant UI (snip, text hotkeys) is automatically disabled when no API keys are configured. The copy-only toggle remains available locally.
- App entry: note_assistant.py.
- Config path (runtime): the app stores its config next to the EXE in
dist/note_assistant_config.json. - If you change hotkeys in the UI, the app saves them to config; restart the app to apply global hotkey changes.