Bear 2 beta update (9916)

We have a new beta just in time for Thanksgiving in the U.S. No turkeys were harmed in the making of these new features to test—including OCR enabled in app-wide search and new Wiki Link Aliases—and two heaping scoops of stuffing tweaked behavior and fixes. Grab a fork and dig into testing these new goodies.

Use Bear > Check for Updates to download the lastest build.


  • New! Note search (at the top of the Note List) now returns notes with images and PDFs matching the search term.[1]
  • New! A Special Search to look only into attachments: @ocr
  • Fixed a search bug that could cause the app to hang


  • New! Wiki Link Aliases: Links to other notes are no longer restricted to the title of the note. Add text to wiki link titles by using a | to separate the note title from the alias: [note title|alias]
  • The link panel now preserves your choice to Show Preview (or not) between sessions
  • Fixed a bug involving folding and properly hiding content
  • The open link shortcuts (⌘⇧K and ⌘⇧⌥K) now places your cursor inside the destination note when used on wiki links
  • Fixed a bug with our autocomplete panels when using the / character
  • Copy Code now works also inside table cells
  • Fixed various encoding/decoding issues with wiki links
  • Fixed footnote definitions parsing issue
  • Improved the numbered list styler to preserve existing indentations
  • Fixed a bug that allowed adding attachments to encrypted notes
  • The autocomplete note panel should now behave when linking a header that is folded

Bug Fixes and enhancements

  • On import, the option to use first line as title no longer overwrites existing h1 header
  • Updated some theme colors for better text contrast and legibility

  1. Our new OCR search requires attachment content to be indexed before search will return results from images and PDFs. This indexing is performed when the Bear app looses focus and can take a little while to get through your existing note library. New attachments added to notes are indexed immediately. PDF contents are indexed normally if they are below 10k characters. For large PDFs, the content is indexed as a words cloud for more efficient search. Unfortunately this might compromise "quoted searches" for these large PDFs. For example, a quoted search for "the cat is on the table" would not return a result for that PDF. But the cat is on table , without quotes, would find the PDF. ↩︎


Wonderful news, thank you! So excited to delve in, and it looks amazing.

I ran across a random thing… the keyboard shortcut for adding a table row (Control + Command + Return) happens to correspond with an Alfred shortcut for controlling the Music app, which takes precedence and doesn’t allow Bear 2 to add a row.

The quick workaround is to change the shortcut in Alfred — at first glance I don’t see a way to disable the feature there otherwise.

Aliases! You’re the best! :smiley:

It would seem now that having a way to distinguish wiki links pointing to existing notes from links created on the fly without a note (and also offering these in auto completion when creating a wiki link even though the note doesn’t exist) is becoming increasingly important. Otherwise we will possibly end up with duplicates. See request 2 in A few Bear 2.0 simple feature requests for better support of thinking and creating with links

Aliases are amazing! :smiling_face_with_three_hearts: So much looking forward to using bear 2 instead of bear 1!

Unfortunately while the folding bug is fixed for me, the app is crashing again when clicking on a footnote while footnote itself is toggled. That has been working fine in the last betas for me.

Great start. :heart: I am sure this has been discussed in Panda already: But couldn’t the Table of Contens be freely scalable? The TOC is one of my most eagerly awaited and most useful features in Bear 2, but the small size of the current implementation is very, very limiting:

  1. I can’t see all headline on my 32" screen because the height can not be changed
  2. I can not see the whole headings because the width can not be changed
1 Like

I just realized that the height of the TOC changes with the number of headings in the document. Nice.

There is still the issue with the width.

And I wish this TOC-window could be docked to the main window. I don’t like clutter. :wink:

migrated all 6902 of my notes successfully. i haven’t checked if all of them were migrated correctly but they’ve been migrated.

1 Like

Loving it! Cannot wait for the iOS beta and “sync”. Keep the updates coming!


OMG, OMG! Aliases! And global OCR search! It’s like this update was made specifically for me.

Actual footage of me reading the release notes:

One small request regarding search results in PDFs: I love how the PDF is marked with a yellow frame in the search results. Would be great if the PDF in the actual note also got that kind of yellow frame.

Regarding aliases: thank you guys SO MUCH. I know I’ve been pestering you about it for years and I’m really grateful you’ve decided to implement them.

Footnotes and folding are a bug-generating combination. Thanks for reporting this.

Yes, we are exploring this scenario for the info panel in order to better accommodate backlinks too.


The PDF inside the note is supposed to have the yellow frame when the in-note search is active and the match on the PDF is selected. When you click on a note with a match on the PDF, the frame is supposed to blink or be blue if it’s not the first result. In short, it should mimic what happens for normal text.

When the official version is released, the Bear note URLs will stay bear2:// as it is now or go back to bear:// ?

Dear Danilo.

Thx. for sending the link to the latest beta. Trying to start it ends up with a crash:

Translated Report (Full Report Below)

Process: Bear [1464]
Path: /Applications/
Identifier: net.shinyfrog.bear
Version: 2.0 (9916)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 501

Date/Time: 2022-11-24 13:40:52.4576 +0100
OS Version: macOS 13.1 (22C5050e)
Report Version: 12
Anonymous UUID: 94AFF3FE-0F74-C55E-ACD0-FB0961D73F12

Sleep/Wake UUID: 1F679418-C35D-4FB2-A367-515531595EB2

Time Awake Since Boot: 420 seconds
Time Since Wake: 262 seconds

System Integrity Protection: enabled

Crashed Thread: 0 Dispatch queue:

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Kernel Triage:
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage
VM - pmap_enter retried due to resource shortage

Thread 0 Crashed:: Dispatch queue:
0 libsystem_kernel.dylib 0x185600190 __pthread_kill + 8
1 libsystem_pthread.dylib 0x185636cec pthread_kill + 288
2 libsystem_c.dylib 0x1855702c8 abort + 180
3 libsystem_c.dylib 0x18556f620 __assert_rtn + 272
4 PolarMark 0x101487228 Ice::InlineParser::parseNode(Ice::Node*, Ice::InlineRuleMap&) (.cold.1) + 40
5 PolarMark 0x10146252c Ice::InlineParser::parseNode(Ice::Node*, Ice::InlineRuleMap&) + 536
6 PolarMark 0x101462690 Ice::InlineParser::parseAttribute(Ice::Node*) + 24
7 PolarMark 0x10145afe8 Ice::Inline::Url::addInline(Ice::InlineParser&, Ice::Node*, Ice::GoLines&, long, long) + 240
8 PolarMark 0x10145a018 Ice::Inline::Url::matchWithValidTopLevelDomain(Ice::InlineParser&, Ice::Node*, Ice::GoLines&) + 1096
9 PolarMark 0x1014624a0 Ice::InlineParser::parseNode(Ice::Node*, Ice::InlineRuleMap&) + 396
10 PolarMark 0x1014622f4 Ice::InlineParser::parseBlock(Ice::Node*) + 104
11 PolarMark 0x101414ab8 Ice::Parser::parse(std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, std::__1::allocator<char16_t> > const&, Ice::RuleConfig&) + 176
12 PolarMark 0x1013f8628 Ice::Tree::parse(std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, std::__1::allocator<char16_t> >, Ice::Node*) + 40
13 PolarMark 0x1013f8990 Ice::Tree::replace(Ice::Range, std::__1::basic_string<char16_t, std::__1::char_traits<char16_t>, std::__1::allocator<char16_t> > const&) + 576
14 PolarMark 0x10141f0cc -[PMKAST replaceRange:withMarkdown:] + 124
15 PolarMark 0x10141ea24 +[PMKAST fromMarkdown:] + 64
16 BearCore 0x100d6e130 -[SFDatabaseMigrationHelper migrateNote:] + 1460
17 BearCore 0x100d6d700 -[SFDatabaseMigrationHelper migrateNotesToV2InManagedObjectContext:] + 1100
18 Bear 0x10007dbdc 0x10001c000 + 400348
19 BearModel 0x100c62734 -[SFCoreDataStack setupStack] + 160
20 Bear 0x10007ac84 0x10001c000 + 388228
22 CoreFoundation 0x1857a9054 ___CFXRegistrationPost_block_invoke + 88
23 CoreFoundation 0x1857a8f9c _CFXRegistrationPost + 440
24 CoreFoundation 0x1856dcb6c _CFXNotificationPost + 708
25 Foundation 0x1865c972c -[NSNotificationCenter postNotificationName:object:userInfo:] + 88
26 AppKit 0x18898795c -[NSApplication finishLaunching] + 248
27 AppKit 0x188987648 -[NSApplication run] + 252
28 AppKit 0x18895eb60 NSApplicationMain + 880
29 Bear 0x10003ff94 0x10001c000 + 147348
30 dyld 0x18530fe50 start + 2544

Thread 1:
0 libsystem_kernel.dylib 0x1855f7d50 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x185609884 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x1856005a4 mach_msg_overwrite + 540
3 libsystem_kernel.dylib 0x1855f80cc mach_msg + 24
4 Bear 0x10015a50c 0x10001c000 + 1303820
5 libsystem_pthread.dylib 0x18563706c _pthread_start + 148
6 libsystem_pthread.dylib 0x185631e2c thread_start + 8

Thread 2::
0 libsystem_kernel.dylib 0x1855f7d50 mach_msg2_trap + 8
1 libsystem_kernel.dylib 0x185609884 mach_msg2_internal + 80
2 libsystem_kernel.dylib 0x1856005a4 mach_msg_overwrite + 540
3 libsystem_kernel.dylib 0x1855f80cc mach_msg + 24
4 CoreFoundation 0x185716bc0 __CFRunLoopServiceMachPort + 160
5 CoreFoundation 0x1857154ac __CFRunLoopRun + 1232
6 CoreFoundation 0x185714888 CFRunLoopRunSpecific + 612
7 CFNetwork 0x18a1094f0 0x189eb6000 + 2438384
8 Foundation 0x186616470 NSThread__start + 716
9 libsystem_pthread.dylib 0x18563706c _pthread_start + 148
10 libsystem_pthread.dylib 0x185631e2c thread_start + 8

Thread 3:
0 libsystem_pthread.dylib 0x185631e18 start_wqthread + 0

Thread 4:
0 libsystem_pthread.dylib 0x185631e18 start_wqthread + 0

Thread 5:
0 libsystem_pthread.dylib 0x185631e18 start_wqthread + 0

Thread 6:: Dispatch queue:
0 libsystem_kernel.dylib 0x1855f9b04 __ulock_wait + 8
1 libdispatch.dylib 0x1854b0ef4 _dlock_wait + 56
2 libdispatch.dylib 0x1854b0ca8 _dispatch_thread_event_wait_slow + 56
3 libdispatch.dylib 0x1854bfd88 DISPATCH_WAIT_FOR_QUEUE + 368
4 libdispatch.dylib 0x1854bf934 _dispatch_sync_f_slow + 144
5 Bear 0x10013dcbc 0x10001c000 + 1187004
6 Bear 0x10013da34 0x10001c000 + 1186356
7 Bear 0x10013a0fc 0x10001c000 + 1171708
8 Bear 0x100139624 0x10001c000 + 1168932
9 libdispatch.dylib 0x1854b0504 _dispatch_client_callout + 20
10 libdispatch.dylib 0x1854b1d50 _dispatch_once_callout + 32
11 Bear 0x1001395c8 0x10001c000 + 1168840
12 libdispatch.dylib 0x1854b0504 _dispatch_client_callout + 20
13 libdispatch.dylib 0x1854b3994 _dispatch_continuation_pop + 504
14 libdispatch.dylib 0x1854c6fa0 _dispatch_source_invoke + 1588
15 libdispatch.dylib 0x1854b34d0 _dispatch_queue_override_invoke + 500
16 libdispatch.dylib 0x1854c1f94 _dispatch_root_queue_drain + 396
17 libdispatch.dylib 0x1854c27c0 _dispatch_worker_thread2 + 164
18 libsystem_pthread.dylib 0x1856330c4 _pthread_wqthread + 228
19 libsystem_pthread.dylib 0x185631e20 start_wqthread + 8

Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000000000000 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000
x8: 0xeb61f59bfe7866e6 x9: 0xeb61f59a1ef193e6 x10: 0xcccccccccccccccd x11: 0x000000000000000a
x12: 0x0000000000000000 x13: 0x0000000000000036 x14: 0x00000000d902b01e x15: 0x00000000d8e2a81a
x16: 0x0000000000000148 x17: 0x00000001e56d4bf0 x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x00000001e089f500 x21: 0x0000000000000103 x22: 0x00000001e089f5e0 x23: 0x00000001014a4713
x24: 0x00000001de37e000 x25: 0x0000000000000006 x26: 0x0000000000000003 x27: 0x000000016fde1da0
x28: 0x000000016fde1de0 fp: 0x000000016fde1a70 lr: 0x0000000185636cec
sp: 0x000000016fde1a50 pc: 0x0000000185600190 cpsr: 0x40001000
far: 0x0000000128f8c024 esr: 0x56000080 Address size fault

Binary Images:
0x1855f7000 - 0x18562ffe3 libsystem_kernel.dylib () <3d2d26c0-49b7-37f3-aac2-faa3df3b0302> /usr/lib/system/libsystem_kernel.dylib
0x185630000 - 0x18563cffb libsystem_pthread.dylib (
) <4d4a5e88-58c4-3d28-bb0f-3a1b907c8702> /usr/lib/system/libsystem_pthread.dylib
0x1854f7000 - 0x185577ff3 libsystem_c.dylib () <97e531e2-60b4-3633-a7ff-62cb2186e900> /usr/lib/system/libsystem_c.dylib
0x1013ec000 - 0x1014b7fff net.shinyfrog.PolarMark-Mac (1.0) /Applications/
0x100d48000 - 0x10100bfff net.shinyfrog.BearCore-Mac (1.0) /Applications/
0x10001c000 - 0x1001dbfff net.shinyfrog.bear (2.0) <745639ce-ed11-3649-986e-9e39fd426074> /Applications/
0x100c4c000 - 0x100c77fff net.shinyfrog.BearModel-Mac (1.0) <6cbbacbf-80fc-3061-b819-2c644e64594c> /Applications/
0x185695000 - 0x185b6cfff (6.9) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x1865c0000 - 0x186ff8fff (6.9) <3484eadc-6c04-31e8-b227-0e71a432b704> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x18895b000 - 0x189864fff (6.9) <01408d49-3852-3221-8372-c9ac52fe0a0c> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x18530a000 - 0x185394b67 dyld (
) <0e4aad96-ac8c-34bb-a783-41819c2d0128> /usr/lib/dyld
0x189eb6000 - 0x18a277fff (1402.0.7) /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x1854ac000 - 0x1854f3fff libdispatch.dylib (*) <9cbf0bbc-ebb4-3b88-9f2a-079c68094484> /usr/lib/system/libdispatch.dylib

External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=1.4G resident=0K(0%) swapped_out_or_unallocated=1.4G(100%)
Writable regions: Total=1.8G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.8G(100%)

                            VIRTUAL   REGION 

REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Accelerate framework 128K 1
Activity Tracing 256K 1
CG image 80K 1
ColorSync 480K 23
CoreData 48K 1
CoreData Object IDs 4112K 2
CoreGraphics 16K 1
CoreGraphics (reserved) 16K 1 reserved VM address space (unallocated)
CoreUI image data 144K 1
Foundation 16K 1
Kernel Alloc Once 32K 1
MALLOC 307.6M 63
MALLOC guard page 288K 15
MALLOC_MEDIUM (reserved) 1.1G 9 reserved VM address space (unallocated)
MALLOC_NANO (reserved) 384.0M 1 reserved VM address space (unallocated)
SQLite page cache 8448K 66
Stack 11.2M 7
__AUTH 2130K 373
__AUTH_CONST 25.9M 603
__CTF 756 1
__DATA 14.3M 616
__DATA_CONST 29.3M 630
__DATA_DIRTY 2148K 245
__FONT_DATA 2352 1
__LINKEDIT 771.0M 25
__OBJC_CONST 4767K 341
__OBJC_RO 65.4M 1
__OBJC_RW 1985K 1
__TEXT 620.4M 652
dyld private memory 256K 1
libnetwork 640K 16
mapped file 470.6M 205
shared memory 896K 15
=========== ======= =======
TOTAL 3.8G 3934
TOTAL, minus reserved VM space 2.3G 3934

Kindest regards


It works like you described for other file types but not for PDFs in my case. E.g., an embedded .md file gets highlighted, but a PDF doesn’t.

bear:// links are used internally and if you have both B1 and the beta installed using the same scheme might cause B1 to be opened. The bear2:// scheme is a workaround for this problem bear:// will be restored with the official release.

1 Like

Thanks so much for that update! Aliases for wiki-links are the highlight of it!

Thanks for the Update!

It’s just a personal preference thing but could we get the layout back from Bear 1 where all the things you could do on a note was unobtrusively on the side (creating a full focus on what is written in the note)?
And would it be possible to get the size of the old headers back? I really liked that they weren’t that huge.

Like this → maybe just make it a little bit brighter instead for better readability

Instead of this


It works with images, though!