README file from
GithubFloating 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.