Bear Note Integration
Integrates Claude with the Bear note-taking app on macOS, enabling automated note creation, searching, editing, and tag management through X-Callback-URL.
Quick Start
Prerequisites
- Bear app installed on macOS
- API Token (optional, for search/tags features):
- Help > Advanced > API Token > Copy Token
- Set environment variable:
export BEAR_API_TOKEN="your-token"
- xcall tool (optional, for response handling):
- Download from xcall releases
- Install to
/Applications/xcall.app
Basic Usage
Create a note:
from scripts.bear import create_note
# Create note without response
create_note(title="My Note", text="Content here", tags="work,important")
# Get response with note ID (requires xcall)
result = create_note(title="My Note", text="Content", return_id=True)
print(result['identifier'])
Search notes:
from scripts.bear import search_notes
# Requires xcall and token
results = search_notes(term="project-x", tag="work")
for note in results:
print(f"{note['title']} - {note['identifier']}")
Core Tasks
1. Create Notes
Create new notes in Bear with optional tags and timestamps.
from scripts.bear import create_note
# Basic note creation
create_note(
title="Daily Standup",
text="## Progress\n- Task 1 complete\n- Task 2 in progress",
tags="work,standup"
)
# With timestamp
create_note(
title="Meeting Notes",
text="Key discussion points...",
tags="meetings",
add_timestamp=True
)
# With response (returns note ID)
result = create_note(
title="Important Note",
text="Critical information",
return_id=True
)
note_id = result['identifier']
2. Search Notes
Find notes by keywords with optional tag filtering.
from scripts.bear import search_notes
# Keyword search
results = search_notes(term="Python")
# Tag filtering
results = search_notes(term="bug", tag="development")
# Process results
for note in results:
print(f"Title: {note['title']}")
print(f"ID: {note['identifier']}")
print(f"Modified: {note['modificationDate']}")
3. Add Text to Notes
Append or replace text in existing notes.
from scripts.bear import add_text
# Append text
add_text(
note_id="7E4B681B",
text="\n\n## Update\nNew content added",
mode="append"
)
# Append to specific header
add_text(
note_id="7E4B681B",
text="- New item",
mode="append",
header="TODO"
)
# Replace all content
add_text(
note_id="7E4B681B",
text="New complete content",
mode="replace_all"
)
4. Manage Tags
List, rename, and delete tags.
from scripts.bear import get_tags, rename_tag, delete_tag
# List all tags
tags = get_tags()
for tag in tags:
print(tag['name'])
# Rename tag
rename_tag(old_name="todo", new_name="inbox")
# Delete tag
delete_tag(name="archive")
5. Capture Web Pages
Save web page content as new Bear notes.
from scripts.bear import grab_url
# Capture URL as note
result = grab_url(
url="https://example.com/article",
tags="reference,articles"
)
# With response
result = grab_url(
url="https://docs.python.org",
tags="docs",
return_id=True
)
note_id = result['identifier']
Bundled Resources
scripts/
Python module bear.py provides functions for all Bear X-Callback-URL actions:
create_note()- Create notessearch_notes()- Search notesadd_text()- Append/replace textopen_note()- Open notesget_tags()- List all tagsrename_tag()- Rename tagsdelete_tag()- Delete tagsgrab_url()- Capture web pagestrash_note(),archive_note()- Organize notes
references/
- actions.md: Complete X-Callback-URL API reference with all parameters
- workflows.md: Common workflows and integration patterns
- troubleshooting.md: Setup help and common issues
See these files for detailed API documentation and advanced usage patterns.