Drafts CLI
Manage Drafts notes from the terminal on macOS.
IMPORTANT REQUIREMENTS
This CLI ONLY works on macOS with Drafts app running.
- •macOS only - Uses AppleScript, will not work on Linux/Windows
- •Drafts must be RUNNING - The app must be open for any command to work
- •Drafts Pro required - Automation features require Pro subscription
If commands fail or hang, first check: open -a Drafts
Setup
Install via Go:
bash
go install github.com/nerveband/drafts/cmd/drafts@latest
Or build from source:
bash
git clone https://github.com/nerveband/drafts cd drafts && go build ./cmd/drafts
Commands
Create a Draft
bash
# Simple draft drafts create "Meeting notes for Monday" # With tags drafts create "Shopping list" -t groceries -t todo # Flagged draft drafts create "Urgent reminder" -f # Create in archive drafts create "Reference note" -a
List Drafts
bash
# List inbox (default) drafts list # List archived drafts drafts list -f archive # List trashed drafts drafts list -f trash # List all drafts drafts list -f all # Filter by tag drafts list -t mytag
Get a Draft
bash
# Get specific draft drafts get <uuid> # Get active draft (currently open in Drafts) drafts get
Modify Drafts
bash
# Prepend text drafts prepend "New first line" -u <uuid> # Append text drafts append "Added at the end" -u <uuid> # Replace entire content drafts replace "Completely new content" -u <uuid>
Edit in Editor
bash
drafts edit <uuid>
Run Actions
bash
# Run action on text drafts run "Copy" "Text to copy to clipboard" # Run action on existing draft drafts run "Copy" -u <uuid>
Get Schema
bash
# Full schema for LLM integration drafts schema # Schema for specific command drafts schema create
Output Format
JSON (default) - All commands return structured JSON:
json
{
"success": true,
"data": {
"uuid": "ABC123",
"content": "Note content",
"title": "Note title",
"tags": ["tag1", "tag2"],
"folder": "inbox"
}
}
Plain text - Human-readable output:
bash
drafts list --plain
Common Workflows
Quick Capture
bash
drafts create "Remember to call dentist tomorrow" -t reminder
Daily Journal
bash
drafts append "$(date): Completed project review" -u <journal-uuid>
Search and Review
bash
# List all drafts with a specific tag drafts list -t work # Get full content of a draft drafts get <uuid>
Troubleshooting
Commands fail or return empty:
- •Is Drafts running? →
open -a Drafts - •Is Drafts Pro active? → Automation requires Pro
- •Permissions granted? → System Settings > Privacy > Automation
Commands hang:
- •Check if Drafts is showing a dialog
Notes
- •macOS ONLY (AppleScript-based)
- •Drafts app MUST be running
- •Requires Drafts Pro subscription
- •All UUIDs are Drafts-generated identifiers
- •Tags are case-sensitive
Version
Latest (from go install)