Floating Notes

unlisted

by Project Stain

Floating popout window for instant note capture, inspired by Raycast Notes.

3 starsUpdated 21d agoMIT
View on GitHub

Floating Notes

A lightweight Obsidian plugin that opens a floating popout window for instant note capture — inspired by Raycast Notes.

Why

Raycast Notes lets you jot down ideas instantly with a global hotkey and a clean, floating editor. macOS makes truly global hotkeys hard to wire up to a single Obsidian command, so this plugin combines:

  • An in-app command (Toggle floating notes) you can bind in Obsidian's hotkey settings
  • An obsidian://floating-notes URI handler you can trigger from Raycast / Shortcuts / Alfred for a system-wide hotkey
  • A loopback HTTP endpoint (http://127.0.0.1:51234/toggle) for shell scripts and other tools

The result: press one hotkey from anywhere, get a distraction-free Obsidian editor floating above your work, press again to hide it.

Features

  • Toggle popout — show / hide a native Obsidian editor window without losing state
  • Always on top — popout floats above other apps (optional)
  • Three capture modes
    • Current active note — opens whatever note you're viewing
    • Fixed note — always opens a specific note (e.g. Inbox.md)
    • New note every time — creates a fresh timestamped note in a folder
  • Multiple triggers — Obsidian command, obsidian://floating-notes URI, or local HTTP endpoint

Installation

Manual

  1. Download main.js and manifest.json from the latest release
  2. Create a folder <your-vault>/.obsidian/plugins/floating-notes/
  3. Copy the files into that folder
  4. Enable Floating Notes in Settings → Community plugins

Build from source

git clone https://github.com/haotiencheng/obsidian-floating-notes.git
cd obsidian-floating-notes
npm install
npm run build

Then copy main.js and manifest.json into your vault's plugin folder.

Usage

In Obsidian (local hotkey)

Settings → Hotkeys → search Toggle floating notes → bind a key. No default hotkey is set.

This hotkey only fires when Obsidian is the active app. For a truly global hotkey, see below.

Global hotkey (system-wide)

Obsidian plugins can't register OS-level hotkeys directly (the only API that allows it, electron.remote.globalShortcut, is deprecated and forbidden by the community plugin guidelines). The standard workaround — used by QuickAdd and others — is to delegate to a system-wide launcher that triggers the plugin externally.

Floating Notes exposes two external triggers:

TriggerEffect
curl -s http://127.0.0.1:51234/toggle > /dev/nullRecommended. Toggles the popout without activating the Obsidian app or raising the main window.
open "obsidian://floating-notes"Also toggles the popout, but opening an obsidian:// URI activates the Obsidian app on macOS, which briefly raises the main window.

Pair one of those triggers with the system-wide launcher of your choice.

Prerequisites

  1. Floating Notes is installed and enabled in Obsidian
  2. A system-wide launcher installed (Raycast, macOS Shortcuts, Alfred, Hammerspoon, Karabiner-Elements — pick one)

Recipes

Raycast (macOS — recommended)

  1. Create a file named floating-notes.sh anywhere you like (e.g. ~/raycast-scripts/) with this content:
    #!/bin/bash
    
    # @raycast.schemaVersion 1
    # @raycast.title Toggle Floating Notes
    # @raycast.mode silent
    # @raycast.icon 📝
    # @raycast.packageName Obsidian
    # @raycast.description Toggle the Obsidian Floating Notes popout window.
    
    curl -s http://127.0.0.1:51234/toggle > /dev/null
    
  2. Make it executable: chmod +x ~/raycast-scripts/floating-notes.sh
  3. Raycast → Preferences → Extensions → Script Commands → Add Directory → pick the folder containing the script
  4. Open Raycast → search Toggle Floating Notes → click the gear (⌘ ⇧ ,) → Record Hotkey → press your combo

If you cloned this repo, skip steps 1–2 and point Raycast at the cloned folder — floating-notes.sh is already there.

macOS Shortcuts (built-in, no extras)

  1. Shortcuts app → + new shortcut, name it Floating Notes
  2. Add action Run Shell Script → paste:
    curl -s http://127.0.0.1:51234/toggle > /dev/null
    
  3. Shortcut Details (sidebar) → Add Keyboard Shortcut → press key combo

Alfred (Powerpack required)

  1. Workflows → + → Blank Workflow
  2. Right-click canvas → Triggers → Hotkey → set key
  3. Connect to Actions → Run Script (/bin/bash) → paste:
    curl -s http://127.0.0.1:51234/toggle > /dev/null
    

Hammerspoon (free, scriptable)

Add to ~/.hammerspoon/init.lua:

hs.hotkey.bind({"alt"}, "N", function()
  hs.execute("/usr/bin/curl -s http://127.0.0.1:51234/toggle")
end)

Reload config from the Hammerspoon menu bar icon.

Karabiner-Elements (free, low-level)

Complex modification JSON — import into your config:

{
  "from": { "key_code": "n", "modifiers": { "mandatory": ["right_option"] } },
  "to": [{ "shell_command": "/usr/bin/curl -s http://127.0.0.1:51234/toggle" }],
  "type": "basic"
}

Raycast (Windows)

  1. Create a file named floating-notes.bat (e.g. in %USERPROFILE%\raycast-scripts\) with this content:
    @echo off >nul 2>&1
    chcp 65001 >nul 2>&1
    setlocal
    
    REM @raycast.schemaVersion 1
    REM @raycast.title Toggle Floating Notes
    REM @raycast.mode silent
    REM @raycast.icon 📝
    REM @raycast.packageName Obsidian
    REM @raycast.description Toggle the Obsidian Floating Notes popout window.
    
    curl.exe -s -m 2 -o nul "http://127.0.0.1:51234/toggle" >nul 2>&1
    
    exit /b 0
    
  2. Raycast → Preferences → Extensions → Script Commands → Add Directory → pick the folder containing the script
  3. Open Raycast → search Toggle Floating Notes → assign a hotkey

Windows (AutoHotkey v2 — alternative to Raycast)

!n::RunWait("curl.exe -s http://127.0.0.1:51234/toggle", , "Hide")

Linux (e.g. sxhkd)

Add to ~/.config/sxhkd/sxhkdrc:

alt + n
    curl -s http://127.0.0.1:51234/toggle > /dev/null

Settings

SettingDescriptionDefault
Capture modeWhat to show in the popout windowCurrent active note
Fixed note pathPath to the note (when mode is "Fixed note")Inbox.md
New note folderFolder for new notes (when mode is "New note every time")Inbox
Always on topFloat popout above other windowsOn
Server portLocal HTTP port for external triggers51234

Notes

  • Desktop only. The plugin uses Electron and Node http APIs that aren't available on Obsidian Mobile.
  • The local HTTP server only accepts connections from 127.0.0.1.

Inspiration

Raycast Notes — a beautiful, instant note-taking experience via a global hotkey. Floating Notes brings that frictionless capture workflow into Obsidian.

License

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.