I Got Tired of Alt-Tabbing to Notion Mid-Code. So I Built This.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
There's a particular kind of friction that builds up when you're deep in a coding session and Notion is two clicks away. Not a big deal each time — maybe twenty seconds to switch windows, add the task, switch back. But those twenty seconds are enough to lose the thread you were holding. By the time you're back in the editor, something has already drifted.
I tried a few workarounds. A scratch notes file as a buffer. A second monitor with Notion always visible. Keyboard shortcuts to flip between apps faster. None of it fixed the core thing: I still had to leave what I was doing, even briefly, and that interruption added up over a day.
What I actually wanted was: press one key, say it, press the same key again, done. No new window. No typing. Eyes stay on the code.
So I built a small macOS menu bar app called MacDictationNotion. It uses the built-in on-device speech recognition — same engine as macOS Dictation in System Settings — and sends the result straight to a Notion database via the API. The whole interaction is about five seconds. I've been using it every day and it does exactly the one thing I needed.
What it does
The app lives in the menu bar and doesn't show up in the Dock. Press the hotkey from any app — code editor, browser, terminal, whatever is in front — and a small floating HUD appears at the bottom of the screen. You see the live transcript as you speak. Press the hotkey again and the text gets sent to Notion. Press ESC or tap the X button to cancel without sending anything.
A few things worth knowing about how it handles the awkward cases:
Offline: if Notion is unreachable, the note goes into a local queue file and sends automatically when the connection comes back.
LLM cleanup (optional): if you run Ollama locally, you can turn on a text refinement step that runs before the note is sent. It strips filler words and smooths out garbled phrases. If Ollama isn't running, the app skips the step and sends the original — it doesn't fail or block.
Hotkey: defaults to ⌘1. Change it to anything in Preferences.
Everything runs on-device. No audio leaves your machine, no external API is called for the speech recognition itself. I didn't want a paid service sitting in the middle of something this simple.
Setting up the Notion side first
Before installing the app, you need two things from Notion: an Integration token and your database ID.
Create the Integration:
-
Go to notion.so/profile/integrations and create a new internal integration. Give it a name and copy the token — it starts with
ntn_. -
Open the Notion database where you want the notes to land. Click the three-dot menu (top right corner of the page) and go to Connections. Connect the integration you just created.
This second step is easy to skip, and skipping it causes a confusing error — Notion returns a "not found" response even though the token is valid. The integration has no access to any specific page until you explicitly connect it. I spent a good chunk of time on this the first time.
Get the database ID:
Look at the URL when you have the database open: notion.so/.../{DATABASE-ID}?v=.... The database ID is the 32-character string before the ?. Hyphens optional — the API accepts both formats.
Installing the app
Copy MacDictationNotion.app to your Applications folder. On first launch, macOS will block it with a Gatekeeper warning because the app isn't distributed through the App Store. Clear it with one Terminal command:
xattr -cr /Applications/MacDictationNotion.app
Then open it. You'll get three permission prompts:
- Microphone — allow it
- Speech Recognition — allow it
- Accessibility — this one needs to be enabled in System Settings > Privacy & Security > Accessibility. The global hotkey won't fire across apps without it.
Open Preferences from the menu bar icon, paste your Notion token and database ID, and hit Save. If your Notion database's title column has a custom name (anything other than "Name"), put that name in the Title property field.
One thing to check before you test it: System Settings > Keyboard > Dictation. Make sure your language is listed and the model has been downloaded. If it hasn't, on-device recognition will silently do nothing — the mic activates, the HUD appears, but no words come out. It looks like a bug in the app but it's just a missing language file.
How I use it day-to-day
Mostly while coding. Something comes up — a test case I almost missed, a function that needs another look, a message I need to send later — I catch it without stopping. The HUD shows the live transcript so I can confirm the recognition is working. If something sounds off, ESC and nothing is sent.
The notes land in Notion with a prefix ("Voice memo:" by default, configurable) so they're easy to filter or search later. The actual content of the note is in both the page title and the body paragraph, so it shows up in Notion search either way.
I don't use the Ollama refinement option every day. For short notes under a sentence or two, the on-device recognition is clean enough. I turn it on when I know I'm going to be talking through something more complex.
What it doesn't do
It's not a general dictation tool. If you want to type into a text editor with your voice, macOS's built-in Dictation (press Fn twice) already handles that.
It also only writes to one Notion database at a time. There's no routing by keyword or switching databases mid-session. One source, one destination — that's the design.
The app is unsigned, so it won't make it through the App Store. The xattr workaround is a one-time thing and doesn't affect anything else on your system.
Final note
The actual value of this isn't the feature set — it's that I stopped losing things. Before this, plenty of "should add that to Notion" moments just didn't happen because the friction was high enough to skip. Now the gap between thought and record is small enough that most of them do make it.
One app, one hotkey, one destination. That turned out to be exactly the right shape for this problem.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기