A terminal tool for Apple Notes. Quick capture, full-text search, and editing in your $EDITOR — without leaving the shell. Built with Rust, talking to Notes.app through AppleScript.
Running tome with no arguments launches an interactive TUI. Notes are listed with their folder, navigable with vim keys or arrows. Press / to search, Enter to edit in your editor, d to delete. A set of CLI subcommands covers the same operations for scripting.
CLI
tome # interactive TUI
tome list # list all notes
tome list -f Work # filter by folder
tome show "Note Name" # display a note
tome search "query" # full-text search
tome new "Title" # create from stdin
tome new "Title" -e # create in $EDITOR
tome edit "Note Name" # edit in $EDITOR
tome folders # list folders
TUI features
- Search — press
/for incremental filtering across all notes - Edit —
Enteropens the selected note in$EDITOR(defaults to vim) - Delete —
dwith confirmation prompt - Folder filter —
gto filter by folder,mto move notes between folders - Themes —
tto cycle through 6 color themes (synthwave, monochrome, ocean, sunset, forest, tokyo night moon) - Help —
?for keybindings
How it works
All Notes.app access goes through osascript — no native frameworks or FFI needed. The Rust side shells out AppleScript snippets that query, create, update, and delete notes. Output is parsed from a pipe-delimited format. When you edit a note, it writes the body to a temp file, spawns your editor, and pushes the result back to Notes.app as HTML.
The TUI runs on ratatui with a simple state machine: browse, search, help, theme picker, folder picker, and move picker modes. Everything stays in a single view with modal overlays.
Key bindings
| Key | Action |
|---|---|
j / k / ↑ / ↓ | Navigate |
/ | Search |
Enter | Edit note |
d | Delete note |
g | Filter by folder |
m | Move to folder |
t | Cycle theme |
r | Refresh from Notes.app |
? | Help |
q | Quit |