Access Bear Notes in Laravel


January 7th, 2020


Bear-Sync is a package by Caleb Porzio that provides an Eloquent model that can access local Bear Notes data without any configuration at all.

It's here! – Bear-Sync

A tiny package to access your @BearNotesApp notes from Laravel.

It's zero-config: install it; get access to a plain Eloquent model with all your notes.


— Caleb Porzio (@calebporzio) January 6, 2020

The BearNote model accesses Bear Notes’ SQLite database via Laravel’s database driver:

// Search all your Bear notes.
$notes = BearSync\BearNote::searchByTitle('Some Note Title');

// Find a specific note.
$note = BearSync\BearNote::whereTitle('Some Note Title')->first();

// Access the note's contents.
$note->id; // Bear's note id.
$note->checksum; // A checksum of the note's content, so you can detect updates.

// Fetch it's content and replace/store images.
$note->getContentAndStoreImages(function ($originalPath, $newFileName) {
    $publicFileName = "/images/{$newFileName}";

    // Copy the image and store it locally (presumably in a public directory).
    \File::copy($originalPath, public_path($publicFileName));

    // Return the file path to be referenced in the Bear note's markdown.
    // ![]($publicFileName)
    return $publicFileName;

You can learn more about this package, get full installation instructions, and view the source code on GitHub at calebporzio/bear-sync.

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.