๐ sn-cli
February 1, 2026 ยท View on GitHub
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 SN_USE_SESSION=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
Output Structure:
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/bash_autocomplete /usr/local/etc/bash_completion.d/sncli
echo '[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion' >> ~/.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