bear-notes

laulauland's avatarfrom laulauland

Search, read, and manage Bear notes. Use when user asks about their notes, wants to find information in Bear, create notes, or manage tags.

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 11, 2025

When & Why to Use This Skill

The Bear Notes skill empowers Claude to interact directly with your Bear app on macOS, providing a seamless bridge to your personal knowledge base. It enables high-speed searching and reading via SQLite database access and supports note creation, tag management, and todo tracking through x-callback-url integration, making your private notes actionable through natural language.

Use Cases

  • Information Retrieval: Search through years of personal notes, meeting logs, or research to find specific details or summarize past projects.
  • Knowledge Management: Create new notes, append thoughts to existing entries, and organize your library by adding, renaming, or deleting tags via chat.
  • Productivity Tracking: Instantly list all unchecked todos across your entire Bear database to get a clear overview of pending tasks.
  • Web Archiving: Use the grab-url feature to quickly save interesting articles or research papers from the web directly into your Bear notes with specific tags.
  • Daily Review: Automatically fetch notes created 'today' to help with daily standups, journaling, or reflecting on recent work.
namebear-notes
descriptionSearch, 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 -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