Skip to content

CLI Command Reference

fn collection

Show collection info, or manage collections via subcommands.

fn collection [info]

fn collection                # Show active collection summary
fn collection info           # Same — show path, note count, tag count, cache status
fn collection info --json    # Structured output

fn collection switch

fn collection switch "Work"              # Switch by name
fn collection switch ~/Documents/Notes   # Switch by path
fn collection switch A1B2C3D4-...        # Switch by UUID

fn collection add

fn collection add ~/Documents/Research --name "Research"
fn collection add ~/Notes --name "Notes" --activate    # Switch to it immediately
fn collection add /Volumes/USB/Notes --force            # Skip safety checks

Note: Obsidian vaults and Logseq graphs are blocked — use File > Import from Obsidian in the app to safely copy notes into a new collection instead.

fn collection remove

fn collection remove "Research" --confirm "Research"

Removes the collection from the registry. Does not delete files on disk.

fn list

List notes with filtering and sorting.

fn list
fn list --tag project --sort modified --limit 20
fn list --favourites --json
fn list --has-overdue
fn list --modified-after 2026-03-01 --modified-before 2026-04-01
Option Description
--tag <tag> Filter by tag (repeatable, AND logic)
--property <key=value> Filter by front matter property (repeatable)
--modified-after <date> Notes modified after this date
--modified-before <date> Notes modified before this date
--favourites Only favourite notes
--has-tasks Only notes with active tasks
--has-overdue Only notes with overdue tasks
--archived Only archived notes
--include-archived Include archived notes in results
--include-trashed Include trashed notes
--sort <key> Sort by modified (default), created, or title
--reverse Reverse sort order
--limit <n> Maximum results

fn show

Display a note's content and metadata.

fn show "Meeting Notes"
fn show --id 8A3F2B1C-...
fn show "My Note" --body
fn show "My Note" --tasks
fn show "My Note" --backlinks
Option Description
--id <uuid> Look up by UUID
--properties Show only front matter properties
--body Show only body text
--tasks Show tasks in this note
--backlinks Show notes linking to this one

fn create

Create a new note.

fn create "Project Plan"
fn create "Ideas" --content "# Ideas\n\nFirst idea."
fn create "Import" --from ~/Desktop/draft.md
fn create "Tagged" --tag project --tag urgent
fn create "Props" --property "status=draft"
echo "Piped content" | fn create "Piped Note"
fn create "Quick" --open
Option Description
--content <text> Note body content
--from <path> Import content from a file
--tag <tag> Add tag (repeatable)
--property <key=value> Set front matter property (repeatable)
--open Open in FoldNotes after creation

Content priority: --from > --content > stdin > default heading.

fn daily

Show, create, or append to daily notes.

fn daily                     # Show today's daily note
fn daily yesterday           # Yesterday's note
fn daily 2026-03-15          # Specific date
fn daily --create            # Create today's if missing
fn daily --open              # Open in FoldNotes
fn daily --tasks             # Tasks from today's note

fn daily append

fn daily append "Meeting at 3pm"
fn daily append --date yesterday "Forgot to log this"
echo "Piped text" | fn daily append

fn edit

Modify a note's content or properties.

fn edit "My Note" --append "New paragraph."
fn edit "My Note" --prepend-after-heading "After the heading."
fn edit "My Note" --content "Complete replacement."
fn edit "My Note" --set-property "status=done"
fn edit "My Note" --remove-property "draft"
fn edit "My Note" --favourite
fn edit "My Note" --unfavourite
Option Description
--content <text> Replace entire body
--append <text> Append to end
--prepend-after-heading <text> Insert after first heading
--set-property <key=value> Set front matter property (repeatable)
--remove-property <key> Remove property (repeatable)
--favourite Mark as favourite
--unfavourite Remove favourite

fn delete

Move a note to trash or permanently delete.

fn delete "Old Note"                # Soft delete
fn delete --id 8A3F2B1C-...       # Delete by UUID
fn delete "Old Note" --permanent   # Permanently delete
fn delete --empty-trash            # Empty the trash

fn rename

fn rename "Old Title" "New Title"

Illegal characters are stripped. Collisions get a numeric suffix.

fn tags

fn tags                      # List all tags
fn tags --prefix "project"   # Filter by prefix
fn tags "project/alpha"      # Notes with this tag

fn tasks

fn tasks                       # All incomplete tasks
fn tasks --overdue             # Overdue tasks
fn tasks --due-today           # Due today
fn tasks --due-this-week       # Due within 7 days
fn tasks --priority high       # High priority
fn tasks --note "Project"      # Tasks in a specific note
fn tasks --status in-progress  # Filter by 4-state status
fn tasks --status cancelled    # Cancelled tasks
fn tasks --project alpha       # Filter by project metadata
Option Description
--status <status> Filter by status: not-started, in-progress, done, cancelled
--project <name> Filter by project:name task metadata
--priority <level> Filter by priority: high, medium, low
--due-today Due today
--due-this-week Due within 7 days
--overdue Past due
--note <title> Tasks in a specific note

fn tasks add

fn tasks add "Review draft" --note "Project Plan"
fn tasks add "Submit report" --note "Work" --due 2026-04-15 --priority high

fn tasks complete

fn tasks complete "Review draft" --note "Project Plan"

fn archive

Move a note to the archive.

fn archive "Old Project"
fn archive --id 8A3F2B1C-...

Archived notes are excluded from fn list by default. Use fn list --archived to show only archived notes, or fn list --include-archived to include them.

fn unarchive

Restore an archived note.

fn unarchive "Old Project"

fn notifications

Manage task due date notifications.

fn notifications               # Show pending notifications
fn notifications --upcoming    # Notifications for the next 7 days
fn backlinks "Project Plan"
fn backlinks "Project Plan" --context
fn search "meeting agenda"
fn search "TODO" --context 2
fn search "\\d{4}-\\d{2}-\\d{2}" --regex
fn search "deploy" --tag project --limit 10
fn search "ideas" --titles-only
Option Description
--context <n> Lines around each match
--titles-only Search titles only
--regex Regular expression mode
--tag <tag> Filter by tag
--limit <n> Maximum matching notes

fn open

fn open "Meeting Notes"
fn open --id 8A3F2B1C-...
fn open --daily

Date Formats

All date arguments accept:

Format Example
ISO date 2026-04-15
Compact 20260415
Named today, yesterday, tomorrow
Relative next monday, last friday
Natural language in 3 days, March 15th

Exit Codes

Code Meaning
0 Success
1 General error
2 Note not found
3 Collection not found
4 Write failed
5 Invalid front matter
6 Duplicate title