Floating Notes
unlistedby Project Stain
Floating popout window for instant note capture, inspired by Raycast Notes.
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-notesURI 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-notesURI, or local HTTP endpoint
Installation
Manual
- Download
main.jsandmanifest.jsonfrom the latest release - Create a folder
<your-vault>/.obsidian/plugins/floating-notes/ - Copy the files into that folder
- 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:
| Trigger | Effect |
|---|---|
curl -s http://127.0.0.1:51234/toggle > /dev/null | Recommended. 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
- Floating Notes is installed and enabled in Obsidian
- A system-wide launcher installed (Raycast, macOS Shortcuts, Alfred, Hammerspoon, Karabiner-Elements — pick one)
Recipes
Raycast (macOS — recommended)
- Create a file named
floating-notes.shanywhere 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 - Make it executable:
chmod +x ~/raycast-scripts/floating-notes.sh - Raycast → Preferences → Extensions → Script Commands → Add Directory → pick the folder containing the script
- 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)
- Shortcuts app →
+new shortcut, name itFloating Notes - Add action Run Shell Script → paste:
curl -s http://127.0.0.1:51234/toggle > /dev/null - Shortcut Details (sidebar) → Add Keyboard Shortcut → press key combo
Alfred (Powerpack required)
- Workflows →
+→ Blank Workflow - Right-click canvas → Triggers → Hotkey → set key
- 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)
- 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 - Raycast → Preferences → Extensions → Script Commands → Add Directory → pick the folder containing the script
- 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
| Setting | Description | Default |
|---|---|---|
| Capture mode | What to show in the popout window | Current active note |
| Fixed note path | Path to the note (when mode is "Fixed note") | Inbox.md |
| New note folder | Folder for new notes (when mode is "New note every time") | Inbox |
| Always on top | Float popout above other windows | On |
| Server port | Local HTTP port for external triggers | 51234 |
Notes
- Desktop only. The plugin uses Electron and Node
httpAPIs 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
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.