a command line interface for standard notes
π sn-cli
A modern command-line interface for Standard Notes
β¨ Features
- π Notes & Tasks: Create, edit, and manage notes and checklists
- π Full-Text Search: Search across titles and content with fuzzy matching and regex support
- π€ Migration: Export to Obsidian with automatic Maps of Content (MOC) generation
- π·οΈ Tags: Organize content with flexible tagging
- π Statistics: Detailed analytics about your notes and usage
- π Secure Sessions: Keychain integration for macOS and Linux
- β‘ Fast Sync: Efficient synchronization with Standard Notes servers
- π Multi-Platform: Windows, macOS, and Linux support
π Quick Start
Installation
Download the latest release:
# macOS/Linux curl -L https://github.com/jonhadfield/sn-cli/releases/latest/download/sncli$(uname -s)$(uname -m) -o sn chmod +x sn && sudo mv sn /usr/local/bin/
Or via direct download
Visit: https://github.com/jonhadfield/sn-cli/releases
First Run
# See all available commands
sn --help
Add a note
sn add note --title "My First Note" --text "Hello, Standard Notes!"
List your notes
sn get notes
View statistics
sn stats
π Commands
| Command | Description | |---------|-------------| | add | Add notes, tags, or tasks | | delete | Delete items by title or UUID | | edit | Edit existing notes | | get | Retrieve notes, tags, or tasks | | search | Full-text search across notes (supports fuzzy matching and regex) | | migrate | Migrate notes to other applications (Obsidian, etc.) with MOC generation | | tag | Manage tags and tagging | | task | Manage checklists and advanced checklists | | stats | Display detailed statistics | | session | Manage stored sessions | | register | Register a new Standard Notes account | | resync | Refresh local cache | | wipe | Delete all notes and tags |
Note: Export and import are temporarily disabled due to recent Standard Notes API changes
π Authentication
Environment Variables
export SN_EMAIL="your-email@example.com"
export SN_PASSWORD="your-password"
export SN_SERVER="https://api.standardnotes.com" # Optional for self-hosted
Session Storage (Recommended)
Store encrypted sessions in your system keychain:# Add session (supports 2FA)
sn session --add
Add encrypted session
sn session --add --session-key
Use session automatically
export SNUSESESSION=true
or
sn --use-session get notes
π Recent Updates
Version 0.4.1 (2026-01-30)
- π Fixed: Authentication issues with updated dependencies
- π·οΈ Improved: Tag cloud visualization with offline support
- π‘οΈ Enhanced: Network error handling and graceful degradation
- π Fixed: Tag reference matching and display issues
Version 0.4.0 (2026-01-29)
- πΎ Added: Backup and restore functionality
- π€ Added: Enhanced export with multiple formats
- π¨ Added: Tag cloud visualization
- π Added: Note templates system
π‘ Examples
# Create a note with tags
sn add note --title "Meeting Notes" --text "Important discussion points" --tag work,meetings
Find notes by tag
sn get notes --tag work
Search for notes (searches both title and content)
sn search --query "meeting"
Fuzzy search with limit
sn search --query "mtng" --fuzzy --limit 5
Case-sensitive regex search
sn search --query "TODO|FIXME" --regex --case-sensitive
Search within specific tags
sn search --query "project" --tag work
Create a checklist
sn add task --title "Todo List" --text "- Buy groceries\n- Call dentist\n- Finish project"
View your note statistics
sn stats
Edit a note
sn edit note --title "Meeting Notes" --text "Updated content"
π Search Feature
The search command provides powerful full-text search across all your notes:
Basic Usage:
# Simple search sn search --query "keyword" sn search -q "keyword" # Short form
Search Options:
--query, -q Search query (required) --content, -c Search in note content (default: true) --fuzzy, -f Enable fuzzy matching for typo tolerance --case-sensitive Make search case-sensitive (default: false) --tag Filter results by tag --limit, -l Limit number of results (default: unlimited) --output Output format: table, rich, json, yaml (default: table)
Advanced Examples:
# Regex pattern matching sn search -q "bug-[0-9]+" --regex
Fuzzy search (matches similar terms)
sn search -q "imprtant" --fuzzy
Case-sensitive search in work-tagged notes
sn search -q "Project" --case-sensitive --tag work
Get top 10 results in rich format
sn search -q "todo" --limit 10 --output rich
Search only in titles (faster)
sn search -q "meeting" --content=false
Search Features:
- Searches both note titles and content by default
- Highlights matching terms in results
- Shows context snippets around matches
- Sorts results by relevance (title matches score higher)
- Supports multiple output formats with syntax highlighting
π€ Migration to Other Applications
Export your notes to other platforms with intelligent organization:
# Basic export to Obsidian
sn migrate obsidian --output ./my-vault
Export with automatic MOC generation
sn migrate obsidian --output ./vault --moc
Export specific tags only
sn migrate obsidian --output ./vault --tag-filter work,projects
Preview migration without writing files
sn migrate obsidian --output ./vault --dry-run
Features:
- Automatic MOC (Maps of Content) generation
- Tag preservation in YAML frontmatter
- Metadata preservation (dates, UUIDs)
- Multiple organizational styles
- Wikilink formatting
my-vault/ βββ Home.md # Main entry point βββ Work MOC.md # Category MOCs βββ Learning MOC.md βββ ... (all your notes)
βοΈ Advanced Configuration
Shell Completion
Tab completion is available for Bash, Zsh, Fish, and PowerShell.
Quick Install (Bash on macOS):
brew install bash-completion@2 sudo cp autocomplete/bashautocomplete /usr/local/etc/bashcompletion.d/sncli echo '[ -f /usr/local/etc/bashcompletion ] && . /usr/local/etc/bashcompletion' >> ~/.bash_profile source ~/.bash_profile
Quick Install (Fish):
mkdir -p ~/.config/fish/completions cp autocomplete/fish_autocomplete.fish ~/.config/fish/completions/sncli.fish
π For detailed installation instructions for all shells, see autocomplete/README.md
Self-Hosted Servers
export SN_SERVER="https://your-standardnotes-server.com"
π§ Development
# Build from source
git clone https://github.com/jonhadfield/sn-cli.git
cd sn-cli
make build
Run tests
make test
View all make targets
make help
β οΈ Known Issues
- New accounts registered via sn-cli require initial login through the official web/desktop app to initialize encryption keys
π€ Contributing
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Links
- Standard Notes - The note-taking app this CLI supports
- Releases - Download the latest version
- Issues - Report bugs or request features