explaingit

i-am-fran/bear-lint

Analysis updated 2026-05-18

2PythonAudience · writerComplexity · 1/5LicenseSetup · easy

TLDR

A macOS command-line tool that checks and auto-fixes Markdown style issues in Bear notes, standardizing bullets, headings, checklists, and tags.

Mindmap

mindmap
  root((bear-lint))
    Auto-fix rules
      Bullet markers
      Checklist syntax
      Blank lines
      Straight quotes
    Report-only rules
      Missing H1
      Duplicate headings
      Stub notes
    Modes
      Dry-run preview
      Report note output
      Single note or all
    Setup
      Clone repo
      Add alias or symlink
      Run selftest first
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run bear-lint across your entire Bear library to standardize bullet markers, checklist syntax, and spacing in one pass.

USE CASE 2

Preview all formatting changes in dry-run mode before writing anything back to Bear.

USE CASE 3

Generate a report note inside Bear after each linting pass, with wiki links back to every note that had issues.

USE CASE 4

Schedule bear-lint as a cron job with the -y flag to keep notes consistently formatted automatically.

What is it built with?

PythonbearclimacOS

How does it compare?

i-am-fran/bear-lint0-bingwu-0/live-interpreter0xkaz/llm-governance-dashboard
Stars222
LanguagePythonPythonPython
Setup difficultyeasymoderatehard
Complexity1/52/54/5
Audiencewritergeneralops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires macOS with Bear 2.8 or later installed, Python 3.8 comes pre-installed on modern Macs.

Use freely for any purpose including commercial use, as long as you keep the copyright notice.

In plain English

Bear is a note-taking app on macOS, and over time notes can accumulate small formatting inconsistencies: bullet points using different markers, headings that skip levels, extra blank lines, or tag syntax that does not match Bear's preferred format. Bear-lint is a command-line tool that checks notes for these issues and fixes most of them automatically. The tool connects to Bear through a helper called bearcli, which lets it read and write notes without any extra dependencies beyond Python. You can point it at a single note by its ID, or run it across all notes in your library at once, optionally filtered by a Bear search query. Most rules apply fixes automatically, such as standardizing bullet markers to hyphens, normalizing checklist syntax, collapsing multiple blank lines into one, and converting curly quotes to straight quotes. A smaller set of issues, like duplicate headings or a missing top-level heading, are flagged for manual review because fixing them automatically could change the meaning of a note. A dry-run mode lets you preview what would change without writing anything back to Bear. If you want a record of what was found, the optional report mode creates a new note inside Bear with wiki links back to each linted note and callouts for anything needing attention. The tool skips locked and encrypted notes automatically. The README recommends exporting your Bear library before the first run. The tool uses a bearcli flag that prevents fixed notes from getting a new modification date, which keeps your note list order intact after a linting pass. Installation is manual: clone the repository and either create a shell alias or add a symlink so the script runs as a plain command. No package manager or external libraries are needed. A built-in self-test runs all rules against a bundled sample note so you can see the behavior without touching your own data first.

Copy-paste prompts

Prompt 1
Using bear-lint, show me how to lint all notes tagged #work in Bear and save the results as a Bear report note. Give the exact command.
Prompt 2
Walk me through setting up bear-lint as a daily launchd job on macOS to keep my Bear notes consistently formatted.
Prompt 3
Which bear-lint rules auto-fix issues versus just flagging them, and why do some rules only report without changing the note?
Prompt 4
Show me how to run bear-lint's self-test to see all its rules in action without touching my real Bear library.
Prompt 5
How do I use bear-lint's dry-run mode to preview changes, and what does the unified diff output look like?

Frequently asked questions

What is bear-lint?

A macOS command-line tool that checks and auto-fixes Markdown style issues in Bear notes, standardizing bullets, headings, checklists, and tags.

What language is bear-lint written in?

Mainly Python. The stack also includes Python, bearcli, macOS.

What license does bear-lint use?

Use freely for any purpose including commercial use, as long as you keep the copyright notice.

How hard is bear-lint to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is bear-lint for?

Mainly writer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub i-am-fran on gitmyhub

Verify against the repo before relying on details.