How to check if Notion desktop app is currently running?

Checking Notion Application Status

I’m working on a project where I need to detect when the Notion desktop application is actively running on a user’s system. Since Notion released their API recently, I’m wondering if there are any new methods or endpoints that allow me to programmatically check the application’s status.

I’ve tried looking through the documentation but haven’t found anything specific about detecting the desktop app’s state. Has anyone figured out a way to do this? Maybe through system processes or some API call I missed?

I need this as a trigger for some automation I’m building. Any suggestions would be helpful!

import psutil

def check_app_status():
    for process in psutil.process_iter(['pid', 'name']):
        if 'notion' in process.info['name'].lower():
            return True
    return False

app_running = check_app_status()
print(f"App is running: {app_running}")

Would something like this work reliably across different operating systems?

Been doing similar automation work and hit a timing issue with the psutil method. Process detection works fine, but Notion takes forever to fully load after the process starts - especially on slower machines. I added a secondary check that monitors network activity to localhost since Notion runs its own local server on port 3000 or similar. Another gotcha - Notion doesn’t always clean up processes when closing, so you get false positives from zombie processes. Check process status or CPU usage to filter out dead processes. Cross-platform reliability is decent but you’ll need different process names for each OS.

yeah, psutil works well but watch for permission issues - i’ve seen it fail when apps run under different user privileges. also, notion spawns multiple processes sometimes, so you might get several matches. it’s solid cross-platform though.

The psutil approach works great - I’ve used it in my own scripts across Windows, macOS, and Linux without issues. Just heads up though, you’ll want to be more specific with process name matching since other apps might have ‘notion’ in their names too.

Here’s what I learned the hard way: process names vary between platforms. Windows shows ‘Notion.exe’, macOS might show ‘Notion’ or the full path. I check for exact matches first, then fall back to substring matching if needed.

As for the API route - forget it. Notion’s API doesn’t have endpoints for desktop app status. It’s just for content management stuff. Process detection is your only real option here.