bear-notes

Installation
SKILL.md

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 -json for 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
Weekly Installs
1
GitHub Stars
16
First Seen
Mar 8, 2026
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1