🐻 bearcli
The missing CLI for Bear notes — read, search, export, and manage your notes from the terminal.
Install
uv tool install bearcli # or: uvx bearcli, pipx install bearcli
Or from a clone: uv sync, then uv run bearcli --help.
Quick start
bearcli list # 20 most recently modified notes
bearcli search "quarterly report" # search titles, tags, and content
bearcli get <note-id> # print a note's markdown
bearcli create "Idea" --tag inbox # create a note
bearcli export ~/bear-backup # export everything as markdown folders
Commands
Commands are grouped under note and tag; the most common ones (list,
search, get, open, create) also work directly as shortcuts.
Browse & read
bearcli note list # 20 most recently modified
bearcli note list --limit 5 --tag work # filters: tag (incl. nested), dates...
bearcli note list --modified-after 2026-07-01
bearcli note list --only pinned # or: encrypted, trashed, archived
bearcli note list --all --trashed --archived
bearcli note list --ids # only identifiers, one per line
bearcli get C44D09DC-7F0E-43BB-BEB8-67E3A389A448
bearcli get C44D09DC-... --meta # with YAML-style frontmatter
bearcli get C44D09DC-... -r # rewrite attachment refs to absolute paths
bearcli open C44D09DC-... # open in the Bear app
Search
bearcli search "invoice" --tag work -n 5 # case-insensitive substring
bearcli search "quarterly planing" --fuzzy # typo-tolerant, ranked by score
Write
Writes go through Bear's x-callback-url API — the database itself is never written. These launch the Bear app if needed.
bearcli create "Meeting notes" --text "agenda..." --tag work
echo "follow-up item" | bearcli note append C44D09DC-...
bearcli note rename C44D09DC-... "New title"
bearcli get C44D09DC-... | sed 's/foo/bar/' | bearcli note replace C44D09DC-...
bearcli note attach C44D09DC-... screenshot.png # ≤500 KB
bearcli note archive C44D09DC-...
bearcli note trash C44D09DC-...
Tags
bearcli tag list # all tags with note counts
bearcli note tag C44D09DC-... "work/ideas" # add a tag to a note
bearcli note untag C44D09DC-... "work/ideas" # remove a tag from a note
bearcli tag rename old-name new-name # across all notes
bearcli tag delete old-name # across all notes (asks first)
Export
Every note becomes a self-contained directory — <slug>/README.md plus its
attachments — with a generated index, so GitHub renders the whole export as a
browsable tree.
bearcli export ~/bear-backup
bearcli export ~/bear-backup --sync # only rewrite notes that changed
Scripting
Every listing takes --format / -f: table (default), json, or
tab-separated text built for pipes.
bearcli list -f json | jq -r '.[].title'
bearcli list -f text | cut -f1 # text is: id, modified, tags, status, title
Dates use ISO format (2026-07-01 or 2026-07-01T14:30). The database path
defaults to Bear's standard location and can be overridden with --db or the
BEAR_DB_PATH environment variable. Encrypted notes are listed but their
content cannot be read.
Development
uv sync
uv run ruff format src/ && uv run ruff check src/
uv run ty check src/
uv run python scripts/check_docs.py # docs must cover every command
Design notes and Bear database internals: docs/IMPLEMENTATION.md. Contributor/agent guidelines: AGENTS.md.
License
MIT · not affiliated with Shiny Frog
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bearcli-1.0.1.tar.gz.
File metadata
- Download URL: bearcli-1.0.1.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3911c5c839452f6f097079ef06054ae8be8cb21c64c6aa6d7ec0a46ad28e8ee8
|
|
| MD5 |
a967417bfd2fb58c12eeaf7b1473636d
|
|
| BLAKE2b-256 |
6383e4866855fd604afe97f60c30ebd26154a40fc0d2af6768348a7e9e6732d0
|
File details
Details for the file bearcli-1.0.1-py3-none-any.whl.
File metadata
- Download URL: bearcli-1.0.1-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88d299616d9476c79bb0ecf1a83a9258c5005dfb7880527f2a905b7fb79830fd
|
|
| MD5 |
18104d19ab176cfcb4b54496ec18819b
|
|
| BLAKE2b-256 |
3c414801c40925a1c8fa6abe6faf927c4ea840ec8d994e7471925552d3e16ce6
|