To connect Bear Notes to OpenClaw on macOS, configure OpenClaw to call Bear's x-callback-url scheme using the `open` command or curl-style URL invocations. No API key is required — Bear exposes a URL scheme (bear://) that allows other apps to create, search, and open notes. Once configured, OpenClaw can create Bear notes with tags, search existing notes, and open specific notes by title or ID.
Why Connect Bear Notes to OpenClaw via x-callback-url?
Bear Notes is a popular Markdown writing app in the Apple ecosystem, known for its clean design, nested tag system, and cross-device sync via iCloud. Unlike Obsidian, Bear stores notes in a proprietary SQLite database rather than plain Markdown files — you cannot access notes by reading files from the filesystem. Bear's official integration mechanism is its x-callback-url scheme: a documented URL protocol that allows any app to trigger Bear actions by opening specially formatted URLs.
The x-callback-url approach has distinct advantages over AppleScript. It does not require Automation permissions — any app can open a URL. The scheme is officially documented and stable across Bear versions. And for iOS compatibility, x-callback-url works on iPhone and iPad through Bear's iOS URL scheme as well (though OpenClaw itself is macOS-focused). The downside is that complex read operations and multi-step workflows require a callback URL mechanism to retrieve data from Bear, which adds setup complexity.
For most OpenClaw use cases — creating notes from research output, appending to existing notes, adding tags, and opening specific notes — the URL scheme is fully sufficient. Full-text search and content retrieval require the xcall utility or callback URL setup, which this guide covers. Bear Pro (the paid tier) unlocks additional URL scheme actions like PDF export, though core creation and search features work on the free tier.
Integration method
Bear Notes exposes functionality through its x-callback-url scheme — a macOS/iOS URL protocol that other applications can invoke to create notes, search content, add tags, and open specific notes. OpenClaw triggers Bear URL scheme calls using the macOS `open` command or `xcall` utility, passing parameters like title, text, and tags as URL-encoded query parameters. Unlike Obsidian's filesystem approach or Apple Notes' AppleScript approach, Bear's URL scheme is purpose-built for inter-app automation and requires no special permissions beyond Bear being installed.
Prerequisites
- Bear Notes installed on your Mac (free download from the Mac App Store)
- OpenClaw installed on the same Mac running macOS
- The `xcall` utility installed (optional but recommended for reading note content back from Bear) — install via Homebrew: `brew install xcall`
- Basic familiarity with URL encoding (spaces become `%20`, special characters need encoding)
- Bear Pro subscription (optional) — required for advanced URL scheme actions like note export; basic create/search/tag features work on free tier
Step-by-step guide
Understand Bear's x-callback-url Scheme
Understand Bear's x-callback-url Scheme
Bear's URL scheme follows the x-callback-url standard. Every action starts with `bear://x-callback-url/` followed by the action name and URL-encoded parameters. The basic actions you will use with OpenClaw are: - `create` — create a new note with optional title, body, and tags - `add-text` — append or prepend text to an existing note (by ID or title) - `search` — search notes by term, returning results via callback - `open-note` — open a specific note by ID or title - `get-note` — retrieve note content as plain text or HTML Parameters are passed as URL query strings. Tags can be comma-separated: `tags=research,openclaw`. The `text` parameter accepts Markdown formatting. Spaces and special characters must be URL-encoded. Test a Bear URL by opening it in Terminal with the `open` command. This is the fastest way to verify a URL scheme action works before wiring it into OpenClaw's config. If Bear is installed and running, `open 'bear://x-callback-url/create?title=Test'` will create a new note titled 'Test' in Bear instantly. Note: Bear must be running in the background for URL scheme actions to work. OpenClaw's Bear integration config includes a `launch_if_needed` option that uses `open -a Bear` to start Bear before invoking URL scheme actions.
1# Test Bear URL scheme actions from Terminal:23# Create a new note:4open 'bear://x-callback-url/create?title=OpenClaw%20Test&text=Hello%20from%20OpenClaw&tags=openclaw,test'56# Open a note by title:7open 'bear://x-callback-url/open-note?title=OpenClaw%20Test'89# Search for notes:10open 'bear://x-callback-url/search?term=openclaw'1112# Add text to an existing note by title:13open 'bear://x-callback-url/add-text?title=OpenClaw%20Test&text=%0A%0AAppended%20line'14# %0A is URL-encoded newline1516# Bear URL scheme full reference:17# https://bear.app/faq/X-callback-url%20Scheme%20documentation/Pro tip: URL-encode your text before passing it to Bear's URL scheme. In the terminal, use Python for encoding: `python3 -c "import urllib.parse; print(urllib.parse.quote('Your text here'))"`. OpenClaw handles URL encoding automatically when using the `bear-notes-create` workflow action.
Expected result: Running the test `open` commands in Terminal creates notes in Bear and triggers Bear to come to the foreground. The test note titled 'OpenClaw Test' appears in Bear with the correct tag.
Configure Bear Notes Integration in OpenClaw
Configure Bear Notes Integration in OpenClaw
Open `~/.openclaw/config.yaml` and add the Bear Notes integration. Because Bear uses URL scheme invocations rather than file system access or HTTP calls, the OpenClaw config specifies how to construct and invoke Bear URLs for each operation type. The `callback_port` setting is used for read operations — when OpenClaw needs to retrieve note content from Bear (using `get-note` or `search`), Bear sends the response to an x-success callback URL. OpenClaw runs a lightweight HTTP listener on localhost at this port to receive Bear's callback response. The `default_tags` field adds these tags to every note OpenClaw creates in Bear — useful for filtering all OpenClaw-created notes in Bear's tag panel. The `launch_if_needed` flag ensures Bear is running before any URL scheme invocation. Bear must be open for URL scheme actions to work — on a freshly booted Mac, if Bear is not yet running, URL scheme calls will fail silently.
1# ~/.openclaw/config.yaml2integrations:3 bear-notes:4 default_tags: ["openclaw"] # tags added to all OpenClaw-created notes5 callback_port: 51234 # localhost port for x-success callbacks (read ops)6 launch_if_needed: true # start Bear if not running (uses 'open -a Bear')7 use_xcall: true # use xcall utility for synchronous callbacks (recommended)8 token: "" # Bear API token (optional — for /get-note on Bear Pro)9 note_id_cache: true # cache note IDs locally for faster lookups1011# URL construction patterns (OpenClaw handles these automatically):12# Create: bear://x-callback-url/create?title={{title}}&text={{body}}&tags={{tags}}13# Append: bear://x-callback-url/add-text?title={{title}}&text={{text}}&mode=prepend14# Search: bear://x-callback-url/search?term={{query}}15# Open: bear://x-callback-url/open-note?title={{title}}Pro tip: Install `xcall` via Homebrew (`brew install xcall`) for synchronous callback handling. Without xcall, read operations (get-note, search) require a running callback server and are asynchronous — xcall simplifies this to synchronous calls that return note content directly to OpenClaw.
Expected result: The config is saved and `clawhub reload` runs without errors. OpenClaw confirms the Bear Notes integration is active and Bear is accessible.
Test Note Creation and Retrieval with xcall
Test Note Creation and Retrieval with xcall
With xcall installed, you can test the full create-and-retrieve cycle synchronously from the terminal. xcall invokes a Bear URL scheme action and waits for Bear's x-success callback, returning the response directly in the terminal. This is useful for verifying that Bear returns note IDs and content correctly before building automated workflows. When creating a note, Bear's x-success callback returns the new note's identifier — a unique ID that you can use to append to or retrieve the note later. OpenClaw stores this ID in its cache when `note_id_cache: true` is set, so you can reference the note by title in subsequent operations without manually tracking the ID. Retrieving note content requires either xcall or a callback URL. The `get-note` action in Bear's URL scheme calls back with the note's content as plain text (or HTML). OpenClaw's `bear-notes-read` workflow action handles this automatically when xcall is configured.
1# Install xcall if not already installed:2brew install xcall34# Create a note and capture the returned note ID:5xcall -url 'bear://x-callback-url/create?title=xcall%20Test&text=Testing%20xcall%20with%20OpenClaw&tags=openclaw,test' \6 -activateApp YES7# xcall waits for Bear's x-success callback and prints the response8# Response includes: {"identifier": "NOTE-ID-HERE", "title": "xcall Test"}910# Get note content by ID:11xcall -url 'bear://x-callback-url/get-note?id=NOTE-ID-HERE&show_window=no'12# Returns: {"note": "Testing xcall with OpenClaw", "tags": "openclaw, test", "title": "xcall Test"}1314# Search notes and get results:15xcall -url 'bear://x-callback-url/search?term=xcall&show_window=no'16# Returns: {"notes": [{"identifier": "...", "title": "xcall Test", ...}]}Pro tip: Add `&show_window=no` to Bear URL scheme actions for background operations — this prevents Bear from jumping to the foreground every time OpenClaw creates or reads a note. Omit it only when you specifically want Bear to open and show the note.
Expected result: xcall creates a Bear note and returns a JSON response with the note's identifier. The get-note call retrieves the note content. Bear operates in the background without interrupting your current workflow.
Build Bear Notes Automation Workflows
Build Bear Notes Automation Workflows
Configure OpenClaw workflows that create and manage Bear notes automatically. The key workflow patterns are: creating research notes after web searches, appending to a daily log note, and tagging notes based on content category. The research note workflow is the most common starting point — after every web research task, OpenClaw creates a Bear note with the query as the title, the summary as the body formatted in Markdown, and tags like `openclaw/research`. The note ID is cached so subsequent operations can append additional information to the same note. For daily log notes, the append workflow uses Bear's `add-text` action to prepend a timestamped entry to a persistent daily log note. The `mode=prepend` parameter puts new entries at the top so the most recent content is always visible first when you open the note. RapidDev's Bear integration guide includes a template for a 'capture' workflow — a quick note creation pattern that works like Bear's Quick Note shortcut, allowing OpenClaw to save a thought or snippet to Bear with minimal friction.
1# ~/.openclaw/config.yaml — Bear Notes automation workflows2workflows:3 research-to-bear:4 trigger:5 type: task-complete6 task_type: web-search7 actions:8 - type: bear-notes-create9 integration: bear-notes10 title: "Research: {{trigger.query}}"11 text: |12 ## Summary1314 {{trigger.summary}}1516 ## Sources1718 {{#each trigger.sources}}19 - [{{this.title}}]({{this.url}})20 {{/each}}2122 ---23 *Created by OpenClaw on {{date:YYYY-MM-DD}}*24 tags: ["openclaw/research", "{{trigger.primary_topic}}"]25 show_window: false2627 daily-log-append:28 trigger:29 type: session-end30 actions:31 - type: bear-notes-add-text32 integration: bear-notes33 title: "OpenClaw Log — {{date:YYYY-MM-DD}}"34 create_if_missing: true35 mode: prepend36 text: |37 ### {{time:HH:mm}} — Session Summary38 Tasks: {{session.task_count}} | Searches: {{session.search_count}}39 {{session.summary}}40 tags: ["openclaw/logs"]Pro tip: Use Bear's nested tag syntax (`openclaw/research`, `openclaw/logs`) to create a hierarchical tag structure in Bear's sidebar. All notes with `openclaw/*` tags appear grouped under an `openclaw` parent in Bear's tag list, making it easy to find all OpenClaw-generated notes.
Expected result: OpenClaw automatically creates Bear notes for research tasks and appends to daily log notes. Notes appear in Bear with correct Markdown formatting, tags, and hierarchical tag structure.
Common use cases
Create Research Notes in Bear from OpenClaw
After an OpenClaw research task completes, automatically create a new Bear note with the query as the title, the summary as the body, and relevant tags added. The note opens in Bear immediately on macOS and syncs to iPhone/iPad via iCloud.
Build an OpenClaw workflow that creates a Bear note titled with the search query, tagged with 'research' and 'openclaw', after every web research task completes
Copy this prompt to try it in OpenClaw
Append Entries to Existing Bear Notes
Use Bear's `add-text` URL action to append content to an existing note — useful for daily log notes that accumulate entries over time. OpenClaw invokes the URL scheme with the note ID and appended text, and Bear handles the merge without overwriting existing content.
Configure OpenClaw to append a timestamped entry to my Bear daily log note (ID: your-note-id) after each chat session, including a summary of what was discussed
Copy this prompt to try it in OpenClaw
Tag-Based Note Organization
When OpenClaw creates notes in Bear, automatically assign tags based on content type — 'research', 'meeting', 'idea', 'task'. Bear's nested tag system allows hierarchical organization like 'openclaw/research' or 'openclaw/logs'. Tags are passed directly in the Bear URL scheme creation request.
Set up OpenClaw to create Bear notes with nested tags like 'openclaw/research' for web search outputs and 'openclaw/logs' for session summaries
Copy this prompt to try it in OpenClaw
Troubleshooting
Bear URL scheme actions open Bear but do not create notes or do nothing
Cause: Bear is not running when the URL is invoked (URL scheme requires Bear to be open), or the URL parameters contain unencoded special characters that corrupt the URL.
Solution: Ensure `launch_if_needed: true` is set in OpenClaw's config so Bear is started before URL invocations. Test the URL manually with `open 'bear://...'` in Terminal while Bear is open to rule out encoding issues. Verify all spaces and special characters are percent-encoded.
1# Check Bear is running:2pgrep -x Bear || open -a Bear34# Test with a minimal URL (no special chars):5open 'bear://x-callback-url/create?title=Test'6# If this works but complex URLs don't, the issue is URL encodingxcall command not found or 'xcall: open: error' on macOS
Cause: xcall is not installed, or Homebrew is not in the PATH when OpenClaw runs.
Solution: Install xcall via Homebrew: `brew install xcall`. Verify installation with `which xcall`. If OpenClaw cannot find xcall, add the Homebrew bin directory to PATH in OpenClaw's environment config or use the full path in the integration settings.
1# Install xcall:2brew install xcall34# Verify installation:5which xcall6# Should return: /opt/homebrew/bin/xcall (Apple Silicon) or /usr/local/bin/xcall (Intel)78# Test xcall works:9xcall -url 'bear://x-callback-url/create?title=xcall-test' -activateApp YESNote creation succeeds but tags are not applied to the note in Bear
Cause: Tags in Bear's URL scheme must be passed as a comma-separated string without spaces, or with URL-encoded characters. Spaces in tag names cause the tag parameter to be truncated.
Solution: Use tags without spaces or encode spaces as `%20`. Bear's nested tags use `/` as a separator (`openclaw/research`), which must be encoded as `%2F` in URL parameters. OpenClaw's `bear-notes-create` action handles encoding automatically, but manually constructed URLs need explicit encoding.
1# Correct tag format in Bear URL:2# Single tag:3bear://x-callback-url/create?title=Test&tags=openclaw45# Multiple tags (comma-separated, no spaces):6bear://x-callback-url/create?title=Test&tags=openclaw,research78# Nested tag (forward slash):9bear://x-callback-url/create?title=Test&tags=openclaw%2Fresearch10# openclaw%2Fresearch = openclaw/research (nested)OpenClaw cannot retrieve note content — 'callback timeout' or empty response
Cause: The x-success callback URL for `get-note` or `search` is not being received by OpenClaw, either because xcall is not installed or the callback port is blocked.
Solution: Install xcall for synchronous callback handling (recommended). Without xcall, verify that the `callback_port` in OpenClaw's config is not blocked by a firewall or already in use. Set `use_xcall: true` in the integration config to enable synchronous mode.
1# Check if callback port is in use:2lsof -i :512343# If something is using port 51234, change callback_port to a different number4# (e.g., 51235 or 51236) in ~/.openclaw/config.yamlBest practices
- Always set `launch_if_needed: true` in the Bear Notes integration config — Bear must be running for URL scheme actions to work, and a cold Mac without Bear running will silently drop URL scheme invocations.
- Use `&show_window=no` in background note creation and append operations so Bear does not jump to the foreground and interrupt your work every time OpenClaw creates a note.
- Install xcall for synchronous note retrieval — it simplifies callback handling significantly and makes read operations in OpenClaw workflows reliable without needing a persistent callback server.
- Use Bear's nested tag system (`openclaw/research`, `openclaw/logs`) instead of flat tags — this creates a dedicated section in Bear's sidebar for all OpenClaw-generated notes while still allowing sub-categorization.
- Cache note IDs for frequently updated notes (like daily log notes) rather than looking them up by title each time — title lookups require a search callback round-trip, while ID-based operations are immediate.
- Test new URL scheme patterns manually in Terminal before adding them to OpenClaw workflows — this is the fastest way to debug encoding issues or parameter names before they cause silent failures in automated runs.
- Bear Pro is only required for advanced URL scheme features like PDF export and encrypted notes — the core create, append, tag, and search actions used in most OpenClaw workflows work on the free tier.
Alternatives
Obsidian uses plain Markdown files accessible via the filesystem — use it instead of Bear if you want full content control, cross-platform access, or plugin-based extensibility without the x-callback-url layer.
Apple Notes uses AppleScript for deeper automation including rich formatting and multi-account management — use it if you need checklist support, attachments, or tighter macOS integration than Bear's URL scheme provides.
Notion is cloud-based with a proper REST API and works from any device — use it instead of Bear when you need team access, database-style notes, or notes accessible outside the Apple ecosystem.
Google Sheets works on any platform with no macOS requirement — use it instead of Bear when your data is tabular and needs to be accessible on non-Apple devices or shared with non-Bear users.
Frequently asked questions
How do I set up Bear Notes integration in OpenClaw?
Configure `integrations.bear-notes` in `~/.openclaw/config.yaml` with default tags and callback settings. Install xcall via Homebrew for synchronous read operations. No API key is needed — OpenClaw invokes Bear's x-callback-url scheme using the macOS `open` command or xcall. Test with `open 'bear://x-callback-url/create?title=Test'` to confirm Bear responds to URL scheme calls.
Does the OpenClaw Bear Notes integration require Bear Pro?
No — the core URL scheme actions used for note creation, appending, tagging, and searching all work on Bear's free tier. Bear Pro (paid) unlocks additional URL scheme actions like note export to PDF and encrypted note creation, but OpenClaw's standard integration does not require these features.
What is the difference between Bear Notes and Obsidian in OpenClaw?
Bear Notes uses a proprietary SQLite database and exposes a URL scheme for automation — you cannot access Bear notes as plain files. Obsidian stores notes as plain .md files that OpenClaw reads directly from the filesystem. Obsidian is cross-platform and file-based; Bear is macOS/iOS-only but has a polished native interface and iCloud sync. Choose based on whether you prefer filesystem-based or app-mediated note access.
Can OpenClaw search my Bear notes for context?
Yes — OpenClaw uses Bear's `search` URL scheme action with xcall to retrieve notes matching a search term. Search returns note titles, IDs, and content excerpts. For full note content retrieval, OpenClaw uses the `get-note` action with the note's ID. Both operations require xcall or a callback URL listener.
Why does Bear jump to the foreground every time OpenClaw creates a note?
By default, Bear's URL scheme actions bring Bear to the foreground. Add `&show_window=no` to your Bear URL scheme actions in OpenClaw's workflow config to suppress this behavior. The `show_window=no` parameter tells Bear to handle the action in the background without activating the app window.
Can RapidDev help configure Bear Notes workflows in OpenClaw?
Yes — RapidDev can help set up OpenClaw workflows that integrate with Bear's URL scheme, including research note creation, daily log automation, and tag-based organization systems. Contact RapidDev if you need help with xcall callback handling or advanced Bear URL scheme patterns for note retrieval and search.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation