| name | bear-notes |
| description | Search, read, and manage Bear notes. Use when user asks about their notes, wants to find information in Bear, create notes, or manage tags. |
Bear Notes Skill
This skill provides access to Bear notes through a bash CLI that reads directly from Bear's SQLite database and uses x-callback-url for write operations.
Script Location
~/.claude/skills/bear-notes/scripts/bear
Available Commands
Search and Read
search - Search notes by term, optionally filter by tag
bear search "meeting notes"
bear search "project" "work"
open - Get note content by ID
bear open "ABC123-456DEF-789"
open-title - Get note by exact title
bear open-title "My Note Title"
Create and Modify
create - Create new note
bear create "Note content" "Note Title" "tag1,tag2"
bear create "Quick note" # Without title or tags
add-text - Add text to existing note
bear add-text "ABC123-456DEF-789" "Additional content" append
bear add-text "ABC123-456DEF-789" "Header text" prepend
bear add-text "ABC123-456DEF-789" "Replace everything" replace_all
Tags
tags - List all tags with note counts
bear tags
tag - List notes with specific tag
bear tag "work"
rename-tag - Rename tag
bear rename-tag "old-name" "new-name"
delete-tag - Delete tag
bear delete-tag "unused-tag"
Special Queries
untagged - List untagged notes
bear untagged
bear untagged "search term"
todos - List notes containing unchecked todos (- [ ])
bear todos
bear todos "project"
today - List notes created today
bear today
bear today "meeting"
Other Operations
grab-url - Create note from URL
bear grab-url "https://example.com" "research,reading"
trash - Move note to trash
bear trash "ABC123-456DEF-789"
Output Format
All commands output JSON:
- Single objects: One JSON object
- Lists: One JSON object per line (JSON Lines format)
Example list output:
{"id":"ABC-123","title":"Note 1","content_preview":"First note...","created":"2025-11-25T10:00:00","modified":"2025-11-25T10:00:00"}
{"id":"DEF-456","title":"Note 2","content_preview":"Second note...","created":"2025-11-25T11:00:00","modified":"2025-11-25T11:00:00"}
Example single note:
{
"id": "ABC-123",
"title": "My Note",
"content": "Full note content here...",
"created": "2025-11-25T10:00:00",
"modified": "2025-11-25T10:00:00",
"tags": ["work", "project"]
}
Implementation Details
Read Operations:
- Queries Bear's SQLite database directly at:
~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite - Uses
sqlite3 -jsonfor JSON output - Filters out trashed notes (
ZTRASHED = 0)
Write Operations:
- Uses Bear's x-callback-url API
- Opens URLs via
open bear://x-callback-url/... - URL parameters are properly encoded
Timestamps:
- Bear uses Core Data format (seconds since 2001-01-01)
- Converted to ISO 8601 format in output
Use Cases
- Search notes: "Find my notes about project planning"
- Read content: "Show me the content of my meeting notes"
- Create notes: "Create a note with my todo list"
- Manage tags: "List all my work-related notes"
- Find todos: "Show me all my incomplete tasks"
- Quick capture: "Save this URL to Bear"
Limitations
- Read operations are synchronous and fast
- Write operations trigger Bear app (x-callback-url)
- Database path is macOS-specific
- Requires Bear app to be installed