Building a Bear Notes Skill for Claude Code
I've been using Bear for years. It's where all my thoughts go (I have over 5k+ notes) - meeting notes, code snippets, random ideas at 2am, links I'll definitely read "later" (spoiler: I won't). But here's the thing: when I'm deep in a coding session with Claude Code, switching contexts to find that one note with the regex pattern I need is... annoying.
So I built a claudecode skill for Bear Notes. Now Claude can search, read, and even add to my notes without me leaving the terminal. 🐻
All possible by Anthropic’s announcement today of Claude Skills. You can get Claude Code in this case to get very good at looking at, searching, summarizing, and creating new notes for you in Bear.
The Problem
Claude Code is incredible for staying in flow. You're in your terminal, you're asking Claude to refactor something, debug an issue, or explain that gnarly piece of legacy code. But then you need something from your notes - maybe that SQL query you saved last week, or the API endpoint structure from yesterday's meeting.
You could:
Cmd+Tab to Bear
Search for the note
Copy what you need
Go back to terminal
Paste it in
Or... Claude could just grab it for you.
What I Built
The Bear Notes skill gives Claude direct access to your Bear database. It's read-only access to the SQLite database (because we're not cowboys here), plus it uses Bear's x-callback-url API for any write operations.
Here's what Claude can now do:
Search your notes by content or tags
Read full notes including all the metadata
Add text to existing notes (append or prepend)
Create new notes with proper tags
The coolest part? It all happens locally. No cloud sync, no external servers. Your notes stay on your machine.
The Technical Bits
Bear stores everything in a SQLite database at ~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite
. The skill reads directly from there for search operations - way faster than going through the API for everything.
For write operations, I use Bear's x-callback-url scheme. This ensures we're playing nice with iCloud sync and not causing any conflicts. The Bear team (shoutout to Danilo!) actually recommended this hybrid approach.
The structure is pretty straightforward:
.claude/skills/bear-notes/
├── bear.py
├── claudeskill.yaml
└── README.md
The Fun Part
Now I can do stuff like:
"Hey Claude, find my notes about that PostgreSQL indexing issue from last month and help me apply the same solution here"
Or:
"Search for all my meeting notes with the product team and summarize the key decisions"
Even better - when Claude helps me solve something interesting, I can ask it to save the solution right back to Bear with proper tags. My future self thanks me.
Try It Yourself
If you want to set this up:
Make sure you have Bear installed (duh)
Grab the skill from my dotfiles and clone it into your
.claude/skills/
directoryMake sure Claude Code can access the Bear database location
Start asking Claude about your notes!
Fair warning: it's the kind of code that works perfectly on my machine. 😅
What's Next
I'm thinking about adding:
Smart tag suggestions based on content
Note relationship mapping (which notes reference each other)
Archive management for old notes
Maybe even some visualization of note connections?
This is the kind of tool that makes you realize how much context switching we do all day. Removing even these small frictions adds up to staying in flow longer. And flow state is where the magic happens.
Also, there's something deeply satisfying about your AI assistant being able to reference that obscure bash one-liner you saved three years ago. Past you was looking out for present you all along.
Have you built any custom claudecode skills? What workflows are you automating? Drop me a line - always curious to see what others are building in this space.