Capture thoughts instantly without leaving your workflow. One hotkey from anywhere on your desktop -- a minimal popup appears, you type, and the note lands in your Obsidian vault with full context about what you were working on. No app switching, no friction, no lost ideas.
Quick Note knows where you are. It captures the VS Code project you have open, the browser tab you're reading, or the terminal path you're working in -- and attaches that context to every note automatically.
Your best ideas don't arrive on schedule. They hit while you're debugging, reading docs, or reviewing code -- and they vanish just as fast if you have to context-switch to write them down.
Quick Note eliminates that friction. Press Win+Shift+N, type your thought, and hit Enter. Your note is saved as a properly formatted Obsidian markdown file, tagged and timestamped, with a link back to exactly what you were doing. You never leave your current window for more than a few seconds.
- Global hotkey (
Win+Shift+N) -- popup appears instantly from any application - Resizable window with dark/light theme support that matches your system preference
- Full keyboard control -- Ctrl+C/V/X/A/Z all work natively in the editor
Every note automatically records what you were doing when inspiration struck:
| Source | What's captured |
|---|---|
| VS Code | Project name |
| Chrome / Edge / Firefox | Page title + full URL (via Windows UI Automation) |
| Windows Terminal / Git Bash | Working directory / project path |
| Any other app | Window title |
- Tag buttons -- one-click categorization:
project,idea,todo,learning - Auto-tag inference -- notes starting with action words (
fix,bug,update,add,remove,change,debug,broken) are taggedtodo; speculative phrases (maybe,what if,could we,should we) becomeidea - Obsidian-ready output -- proper YAML frontmatter, kebab-case filenames, drops into your
00-Inbox/folder
- Send to Claude (
Ctrl+Shift+Enter) -- opens an interactive Claude Code session pre-loaded with your question and the URL you were viewing
A background file watcher monitors a folder for .txt files saved from Notepad++ (or any editor). Multi-note files are automatically split on --- separators or two or more blank lines, and each chunk becomes its own Inbox entry. Great for brain-dump sessions.
A note captured while working in VS Code:
---
type: note
tags: [quick-capture, todo]
created: "2026-03-22T14:30:52"
source: "vscode"
context: "project: homelab-dashboard"
---
# Fix the sidebar alignment
## Captured Context
- **From**: vscode -- homelab-dashboard
- **When**: 2026-03-22 14:30A note captured while reading in Chrome:
---
type: note
tags: [quick-capture, learning]
created: "2026-03-22T15:10:00"
source: "chrome"
context: "page: How DNS Works | url: https://example.com/dns-guide"
---
# Interesting DNS article
## Captured Context
- **From**: chrome -- "How DNS Works"
- **URL**: https://example.com/dns-guide
- **When**: 2026-03-22 15:10- Windows 10 or 11
- AutoHotkey v2
- Python 3.12+ with watchdog
- An Obsidian vault with an
00-Inbox/folder - Claude Code CLI (optional, for the Send to Claude feature)
-
Install AutoHotkey
winget install AutoHotkey.AutoHotkey -
Clone the repo
git clone https://github.com/NormlT/quick-note.git cd quick-note -
Install Python dependencies
pip install -r requirements.txt -
Create your config
mkdir local cp quick-note-config.example.json local/quick-note-config.jsonEdit
local/quick-note-config.jsonand set your paths:Key Required Description inbox_pathYes Your Obsidian vault's inbox folder (e.g. C:/Users/you/Vault/00-Inbox)python_pathYes Path to your Python executable watch_pathYes Folder where Notepad++ saves quick notes vault_nameNo Your Obsidian vault name for the "Open Inbox" tray action. Auto-derived from inbox_pathparent folder if omitted.log_pathNo Where to write logs (defaults to local/quick-note.log)hotkeyNo Global keyboard shortcut (default: #+n= Win+Shift+N). See Changing the keyboard shortcut.The
local/folder is gitignored -- your config, logs, and runtime files stay private. -
Run it
Double-click
quick-note.ahkor run from a terminal:"%LocalAppData%\Programs\AutoHotkey\v2\AutoHotkey64.exe" "quick-note.ahk" -
Auto-start on login (optional)
Create a shortcut in your Startup folder:
$WshShell = New-Object -ComObject WScript.Shell $Shortcut = $WshShell.CreateShortcut("$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\QuickNote.lnk") $Shortcut.TargetPath = "$env:LocalAppData\Programs\AutoHotkey\v2\AutoHotkey64.exe" $Shortcut.Arguments = '"C:\path\to\quick-note.ahk"' $Shortcut.WorkingDirectory = "C:\path\to\quick-note" $Shortcut.Save()
| Shortcut | Action |
|---|---|
Win+Shift+N |
Open note popup |
Ctrl+Enter |
Save note to Obsidian |
Ctrl+Shift+Enter |
Send to Claude |
Ctrl+C / V / X |
Copy / Paste / Cut |
Ctrl+A |
Select all |
Ctrl+Z |
Undo |
Escape |
Cancel |
Click a tag to categorize your note. Click again to deselect. If you skip tagging, the auto-tagger will infer one from the note text when possible.
Right-click the Quick Note icon in the system tray for:
- New Note -- same as Win+Shift+N
- Open Inbox -- opens the inbox folder in Obsidian
- Pause/Resume Watcher -- toggle the Notepad++ file watcher
- Dark Mode -- toggle between dark and light themes
- Exit -- stop Quick Note and the file watcher
The default shortcut is Win + Shift + N. To change it, add a hotkey entry to quick-note-config.json (in your local/ folder) using these modifier codes:
| Code | Key |
|---|---|
# |
Win |
+ |
Shift |
^ |
Ctrl |
! |
Alt |
Combine the codes with a letter. Examples:
| Config value | Shortcut |
|---|---|
"#+n" |
Win + Shift + N (default) |
"^+n" |
Ctrl + Shift + N |
"#n" |
Win + N |
"!+n" |
Alt + Shift + N |
Add it to your config file like this:
{
"hotkey": "^+n"
}The change takes effect automatically within a few seconds (the script watches for config changes).
Win+Shift+N
|
+-- AHK captures: window title, process name, browser URL (via UI Automation)
+-- Shows popup GUI (embedded HTML/CSS via WebBrowser control)
|
+-- [Save] --> JSON temp file --> Python enriches context --> .md in Inbox
+-- [Claude] --> prompt temp file --> Python launches Claude Code session
The Notepad++ watcher runs as a background process alongside the main AHK script, monitoring for new or changed .txt files. It splits multi-note files on --- separators or two or more blank lines and creates individual Obsidian Inbox entries. A content-hash database prevents duplicate processing.
| File | Purpose |
|---|---|
quick-note.ahk |
AutoHotkey v2 script: hotkey, popup GUI, system tray, browser URL capture |
popup.html |
HTML/CSS/JS for the note popup UI (rendered in embedded browser control) |
note_capture.py |
Context enrichment, markdown generation, file writing |
note_watcher.py |
Notepad++ folder monitor with debounce and note splitting |
claude_launcher.py |
Launches interactive Claude Code session with prompt context |
quick-note-config.example.json |
Template config -- copy to local/ and edit |
test_note_capture.py |
Tests for note capture (45 tests) |
test_note_watcher.py |
Tests for note watcher (8 tests) |
pip install pytest
python -m pytest test_note_capture.py test_note_watcher.py -v

