Check code style compliance. Use when asked to validate code style, check naming conventions, review comments quality, or ensure file naming follows conventions. Works on whole codebase or specific changes (branch, PR, uncommitted).
Add this skill
npx mdskills install vasylenko/codestyleClear scope and rules but lacks specific instructions on how the agent validates each code style rule
Search, read, create, and update your Bear Notes directly from Claude conversations.
This local-only extension reads Bear's SQLite database for fast search with OCR support, and uses Bear's native API for writes. Complete privacy: no external connections, all processing on your Mac.
Example prompts:
Summarize our conversation and create a new Bear note with it
Interview me about my side project idea and capture the key points in a Bear note
Help me restructure the outline in my "Product Launch" note
Let's brainstorm blog post ideas — save the best ones to my Bear note and refine them as we go
Note:
Complete privacy (except the data you send to your AI provider when using an AI assistant such as Claude, of course): this extension makes no external connections. All processing happens locally on your Mac using Bear's own database and API. There is no extra telemetry, usage statistics or anything like that.
Prerequisites: Bear app must be installed and Claude Desktop must be installed.
Download the latest bear-notes-mcpb.mcpb extension from releases
Make sure your Claude Desktop is running (start if not)
Doubleclick on the extension file – Claude Desktop should show you the installation prompt
If doubleclick does not work for some reason, then open Claude -> Settings -> Extensions -> Advanced Settings -> click "Install Extension".
DONE!
Ask Claude to search your Bear notes with a query like "Search my Bear notes for 'meeting'" - you should see your notes appear in the response!
Want to use this Bear Notes MCP server with Claude Code, Cursor, Codex, or other AI assistants?
Requirements: Node.js 24.13.0+
claude mcp add bear-notes --transport stdio -- npx -y bear-notes-mcp@latest
Add to your MCP configuration file:
{
"mcpServers": {
"bear-notes": {
"command": "npx",
"args": ["-y", "bear-notes-mcp@latest"]
}
}
}
More installation options and local development setup — NPM.md
bear-open-note - Read the full text content of a Bear note including OCR'd text from attached images and PDFsbear-create-note - Create a new note in your Bear library with optional title, content, and tagsbear-search-notes - Find notes by searching text content, filtering by tags, or date ranges. Includes OCR search in attachmentsbear-add-text - Add text to an existing Bear note at the beginning or end, optionally targeting a specific sectionbear-replace-text - Replace content in an existing Bear note — either the full body or a specific section. Requires content replacement to be enabled in settings.bear-add-file - Attach a file (image, PDF, Excel, etc.) to an existing Bear note using base64-encoded contentbear-list-tags - List all tags in your Bear library as a hierarchical tree with note countsbear-find-untagged-notes - Find notes in your Bear library that have no tags assignedbear-add-tag - Add one or more tags to an existing Bear notebear-archive-note - Archive a Bear note to remove it from active lists without deleting itEnable verbose logging for troubleshooting.
UI_DEBUG_TOGGLE=trueBy default, Bear places tags at the bottom of a note when created via API. Enable this option to place tags right after the title instead, separated by a horizontal rule.
See note structure with this convention enabled
┌──────────────────────────────┐
│ # Meeting Notes │ ← Note title
│ #work #meetings │ ← Tags right after title
│ │
│ --- │ ← Separator
│ │
│ Lorem Ipsum... │ ← Note body
└──────────────────────────────┘
Tip:
This convention is disabled by default — it's opt-in so existing behavior is preserved.
UI_ENABLE_NEW_NOTE_CONVENTION=trueExample standalone configuration with the convention enabled:
{
"mcpServers": {
"bear-notes": {
"command": "npx",
"args": ["-y", "bear-notes-mcp@latest"],
"env": {
"UI_ENABLE_NEW_NOTE_CONVENTION": "true"
}
}
}
}
Enable the bear-replace-text tool to replace content in existing notes — either the full note body or a specific section under a header.
Tip:
This feature is disabled by default — it's opt-in because replacement is a destructive operation.
UI_ENABLE_CONTENT_REPLACEMENT=trueExample standalone configuration with content replacement enabled:
{
"mcpServers": {
"bear-notes": {
"command": "npx",
"args": ["-y", "bear-notes-mcp@latest"],
"env": {
"UI_ENABLE_CONTENT_REPLACEMENT": "true"
}
}
}
}
This server reads your Bear Notes SQLite database directly for search/read operations and uses Bear's X-callback-URL API for write operations. All data processing happens locally on your machine with no external network calls.
macOS only because Bear desktop works only on macOS.
~/Library/Logs/Claude/main.log, look for bear-notes-mcp~/Library/Logs/Claude/mcp-server-Bear\ Notes.logNo. Extension only reads Bear's local database (same data Bear app shows you) and uses Bear's application native API to add text to the notes. No network transmission, no external servers.
For read operations (search/open), the x-callback-url API returns the note data in x-success response: that would require a server or custom binary to handle x-success responses - both risky and fragile. Direct SQLite read-only access is simpler and more reliable for searching and reading notes.
This avoids shipping an SQLite binary from third-party node packages, which poses supply chain risks and blocks the Claude extension from running on macOS.
Anthropic does not sign third-party SQLite binaries (obviously), causing macOS security systems to flag that the Claude process from a binary signed by Anthropic is trying to run another binary signed by a third party. As a result, Claude cannot run the extension.
This is how Claude for Desktop reacts to the fact that this extension needs access to the Bear SQLite database on your Mac.
Claude warning system does not distinguish between the need to access only one file (what the extension does) versus the need to access all files (this is NOT what the extension does).
One of the ways to validate this is asking your Claude to analyze the codebase (it is pretty small) before installing the extension and tell you.
Use issues or discussions! I'd be glad to see your feedback or suggestions, or your help to make this extension better! ❤️
Consider subscribing to release announcements to know when a new version of the extension is released:

I also post to reddit.com/r/bearapp/ when there's a new release.
Best experience: Claude Code
/plugin marketplace add vasylenko/codestyleThen /plugin menu → select skill → restart. Use /skill-name:init for first-time setup.
Other platforms
Install via CLI
npx mdskills install vasylenko/codestyleBear Notes Claude Extension (aka MCP Bundle) is a free, open-source AI agent skill. Check code style compliance. Use when asked to validate code style, check naming conventions, review comments quality, or ensure file naming follows conventions. Works on whole codebase or specific changes (branch, PR, uncommitted).
Install Bear Notes Claude Extension (aka MCP Bundle) with a single command:
npx mdskills install vasylenko/codestyleThis downloads the skill files into your project and your AI agent picks them up automatically.
Bear Notes Claude Extension (aka MCP Bundle) works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.