bearcli 1.7.1__tar.gz → 1.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bearcli might be problematic. Click here for more details.
- {bearcli-1.7.1 → bearcli-1.7.3}/PKG-INFO +44 -14
- {bearcli-1.7.1 → bearcli-1.7.3}/README.md +42 -12
- {bearcli-1.7.1 → bearcli-1.7.3}/pyproject.toml +2 -2
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/mcp.py +7 -1
- {bearcli-1.7.1 → bearcli-1.7.3}/LICENSE +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/__init__.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/__init__.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/common.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/export.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/misc.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/notes.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/skills.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/cli/tags.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/export.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/gitsync.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/mcpserver.py +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/py.typed +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/skills/bear-notes/SKILL.md +0 -0
- {bearcli-1.7.1 → bearcli-1.7.3}/src/bearcli/tui.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bearcli
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.3
|
|
4
4
|
Summary: The missing open-source CLI for Bear notes - read, search, export, and manage your notes from the terminal
|
|
5
5
|
Keywords: bear,notes,cli,markdown,macos
|
|
6
6
|
Author: Michel Tricot
|
|
@@ -12,7 +12,7 @@ Classifier: Environment :: Console
|
|
|
12
12
|
Classifier: Operating System :: MacOS
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Classifier: Topic :: Utilities
|
|
15
|
-
Requires-Dist: bearkit==1.7.
|
|
15
|
+
Requires-Dist: bearkit==1.7.3
|
|
16
16
|
Requires-Dist: fastmcp>=3.4.5
|
|
17
17
|
Requires-Dist: textual>=8.2.8
|
|
18
18
|
Requires-Dist: typer>=0.27.0
|
|
@@ -58,6 +58,26 @@ brew install michel-tricot/tap/bearcli # or: uv tool install bearcli, pipx ins
|
|
|
58
58
|
|
|
59
59
|
Or from a clone: `uv sync`, then `uv run bearcli --help`.
|
|
60
60
|
|
|
61
|
+
### Troubleshooting
|
|
62
|
+
|
|
63
|
+
The `bearcli` command can conflict with Bear's official CLI if both are
|
|
64
|
+
installed — `which -a bearcli` shows which one your shell picks. To make
|
|
65
|
+
this CLI take precedence, put its install directory first in your PATH:
|
|
66
|
+
|
|
67
|
+
```sh
|
|
68
|
+
# in your ~/.zshrc or ~/.bashrc
|
|
69
|
+
export PATH="$(brew --prefix)/bin:$PATH" # brew install
|
|
70
|
+
export PATH="$HOME/.local/bin:$PATH" # uv tool or pipx install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
MCP configs are immune to the conflict: `bearcli mcp install` writes the
|
|
74
|
+
absolute path of the very binary it is run from. If `bearcli` itself
|
|
75
|
+
reaches the wrong tool, call ours by its full path once:
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
"$(brew --prefix)/bin/bearcli" mcp install # or: ~/.local/bin/bearcli
|
|
79
|
+
```
|
|
80
|
+
|
|
61
81
|
## Quick start
|
|
62
82
|
|
|
63
83
|
```sh
|
|
@@ -73,31 +93,40 @@ bearcli ui # full Bear client in the terminal
|
|
|
73
93
|
|
|
74
94
|
Commands are grouped under `note` and `tag`.
|
|
75
95
|
|
|
96
|
+
### Shortcuts
|
|
97
|
+
|
|
98
|
+
The most common commands are also top-level aliases:
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
bearcli list # alias for `note list`
|
|
102
|
+
bearcli search # alias for `note search`
|
|
103
|
+
bearcli get # alias for `note get`
|
|
104
|
+
bearcli open # alias for `note open`
|
|
105
|
+
bearcli create # alias for `note create`
|
|
106
|
+
```
|
|
107
|
+
|
|
76
108
|
### Browse & read
|
|
77
109
|
|
|
78
110
|
```sh
|
|
79
111
|
bearcli note list # 20 most recently modified
|
|
80
|
-
bearcli list # shortcut for `note list`
|
|
81
112
|
bearcli note list --limit 5 --tag work # filters: tag (incl. nested), dates...
|
|
82
113
|
bearcli note list --modified-after 2026-07-01
|
|
83
114
|
bearcli note list --only pinned # or: encrypted, trashed, archived
|
|
84
115
|
bearcli note list --all --trashed --archived
|
|
85
116
|
bearcli note list --ids # only identifiers, one per line
|
|
86
117
|
|
|
87
|
-
bearcli get C44D09DC
|
|
88
|
-
bearcli get C44D09DC-... --meta
|
|
89
|
-
bearcli get C44D09DC-... -r
|
|
90
|
-
bearcli get C44D09DC-... --redact-secrets
|
|
91
|
-
bearcli open C44D09DC-...
|
|
92
|
-
bearcli ui # Bear in the terminal: search, edit, tag
|
|
93
|
-
bearcli stats # counts, words, top tags, notes per year
|
|
118
|
+
bearcli note get C44D09DC # a unique id prefix (4+ chars) works everywhere
|
|
119
|
+
bearcli note get C44D09DC-... --meta # with YAML-style frontmatter
|
|
120
|
+
bearcli note get C44D09DC-... -r # rewrite attachment refs to absolute paths
|
|
121
|
+
bearcli note get C44D09DC-... --redact-secrets # secrets replaced by placeholders
|
|
122
|
+
bearcli note open C44D09DC-... # open in the Bear app
|
|
94
123
|
```
|
|
95
124
|
|
|
96
125
|
### Search
|
|
97
126
|
|
|
98
127
|
```sh
|
|
99
|
-
bearcli search "invoice" --tag work -n 5
|
|
100
|
-
bearcli search "quarterly planing" --fuzzy
|
|
128
|
+
bearcli note search "invoice" --tag work -n 5 # case-insensitive substring
|
|
129
|
+
bearcli note search "quarterly planing" --fuzzy # typo-tolerant, ranked by score
|
|
101
130
|
```
|
|
102
131
|
|
|
103
132
|
### Write
|
|
@@ -106,10 +135,10 @@ Writes go through the Bear app and are verified before the command reports
|
|
|
106
135
|
success.
|
|
107
136
|
|
|
108
137
|
```sh
|
|
109
|
-
bearcli create "Meeting notes" --text "agenda..." --tag work
|
|
138
|
+
bearcli note create "Meeting notes" --text "agenda..." --tag work
|
|
110
139
|
echo "follow-up item" | bearcli note append C44D09DC-...
|
|
111
140
|
bearcli note rename C44D09DC-... "New title"
|
|
112
|
-
bearcli get C44D09DC-... | sed 's/foo/bar/' | bearcli note replace C44D09DC-...
|
|
141
|
+
bearcli note get C44D09DC-... | sed 's/foo/bar/' | bearcli note replace C44D09DC-...
|
|
113
142
|
bearcli note attach C44D09DC-... screenshot.png # ≤500 KB
|
|
114
143
|
bearcli note archive C44D09DC-...
|
|
115
144
|
bearcli note trash C44D09DC-...
|
|
@@ -164,6 +193,7 @@ tab-separated `text` built for pipes.
|
|
|
164
193
|
```sh
|
|
165
194
|
bearcli list -f json | jq -r '.[].title'
|
|
166
195
|
bearcli list -f text | cut -f1 # text is: id, modified, tags, status, title
|
|
196
|
+
bearcli stats -f json # library totals: counts, words, top tags
|
|
167
197
|
```
|
|
168
198
|
|
|
169
199
|
Dates are ISO (`2026-07-01` or `2026-07-01T14:30`). Override the database
|
|
@@ -34,6 +34,26 @@ brew install michel-tricot/tap/bearcli # or: uv tool install bearcli, pipx ins
|
|
|
34
34
|
|
|
35
35
|
Or from a clone: `uv sync`, then `uv run bearcli --help`.
|
|
36
36
|
|
|
37
|
+
### Troubleshooting
|
|
38
|
+
|
|
39
|
+
The `bearcli` command can conflict with Bear's official CLI if both are
|
|
40
|
+
installed — `which -a bearcli` shows which one your shell picks. To make
|
|
41
|
+
this CLI take precedence, put its install directory first in your PATH:
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
# in your ~/.zshrc or ~/.bashrc
|
|
45
|
+
export PATH="$(brew --prefix)/bin:$PATH" # brew install
|
|
46
|
+
export PATH="$HOME/.local/bin:$PATH" # uv tool or pipx install
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
MCP configs are immune to the conflict: `bearcli mcp install` writes the
|
|
50
|
+
absolute path of the very binary it is run from. If `bearcli` itself
|
|
51
|
+
reaches the wrong tool, call ours by its full path once:
|
|
52
|
+
|
|
53
|
+
```sh
|
|
54
|
+
"$(brew --prefix)/bin/bearcli" mcp install # or: ~/.local/bin/bearcli
|
|
55
|
+
```
|
|
56
|
+
|
|
37
57
|
## Quick start
|
|
38
58
|
|
|
39
59
|
```sh
|
|
@@ -49,31 +69,40 @@ bearcli ui # full Bear client in the terminal
|
|
|
49
69
|
|
|
50
70
|
Commands are grouped under `note` and `tag`.
|
|
51
71
|
|
|
72
|
+
### Shortcuts
|
|
73
|
+
|
|
74
|
+
The most common commands are also top-level aliases:
|
|
75
|
+
|
|
76
|
+
```sh
|
|
77
|
+
bearcli list # alias for `note list`
|
|
78
|
+
bearcli search # alias for `note search`
|
|
79
|
+
bearcli get # alias for `note get`
|
|
80
|
+
bearcli open # alias for `note open`
|
|
81
|
+
bearcli create # alias for `note create`
|
|
82
|
+
```
|
|
83
|
+
|
|
52
84
|
### Browse & read
|
|
53
85
|
|
|
54
86
|
```sh
|
|
55
87
|
bearcli note list # 20 most recently modified
|
|
56
|
-
bearcli list # shortcut for `note list`
|
|
57
88
|
bearcli note list --limit 5 --tag work # filters: tag (incl. nested), dates...
|
|
58
89
|
bearcli note list --modified-after 2026-07-01
|
|
59
90
|
bearcli note list --only pinned # or: encrypted, trashed, archived
|
|
60
91
|
bearcli note list --all --trashed --archived
|
|
61
92
|
bearcli note list --ids # only identifiers, one per line
|
|
62
93
|
|
|
63
|
-
bearcli get C44D09DC
|
|
64
|
-
bearcli get C44D09DC-... --meta
|
|
65
|
-
bearcli get C44D09DC-... -r
|
|
66
|
-
bearcli get C44D09DC-... --redact-secrets
|
|
67
|
-
bearcli open C44D09DC-...
|
|
68
|
-
bearcli ui # Bear in the terminal: search, edit, tag
|
|
69
|
-
bearcli stats # counts, words, top tags, notes per year
|
|
94
|
+
bearcli note get C44D09DC # a unique id prefix (4+ chars) works everywhere
|
|
95
|
+
bearcli note get C44D09DC-... --meta # with YAML-style frontmatter
|
|
96
|
+
bearcli note get C44D09DC-... -r # rewrite attachment refs to absolute paths
|
|
97
|
+
bearcli note get C44D09DC-... --redact-secrets # secrets replaced by placeholders
|
|
98
|
+
bearcli note open C44D09DC-... # open in the Bear app
|
|
70
99
|
```
|
|
71
100
|
|
|
72
101
|
### Search
|
|
73
102
|
|
|
74
103
|
```sh
|
|
75
|
-
bearcli search "invoice" --tag work -n 5
|
|
76
|
-
bearcli search "quarterly planing" --fuzzy
|
|
104
|
+
bearcli note search "invoice" --tag work -n 5 # case-insensitive substring
|
|
105
|
+
bearcli note search "quarterly planing" --fuzzy # typo-tolerant, ranked by score
|
|
77
106
|
```
|
|
78
107
|
|
|
79
108
|
### Write
|
|
@@ -82,10 +111,10 @@ Writes go through the Bear app and are verified before the command reports
|
|
|
82
111
|
success.
|
|
83
112
|
|
|
84
113
|
```sh
|
|
85
|
-
bearcli create "Meeting notes" --text "agenda..." --tag work
|
|
114
|
+
bearcli note create "Meeting notes" --text "agenda..." --tag work
|
|
86
115
|
echo "follow-up item" | bearcli note append C44D09DC-...
|
|
87
116
|
bearcli note rename C44D09DC-... "New title"
|
|
88
|
-
bearcli get C44D09DC-... | sed 's/foo/bar/' | bearcli note replace C44D09DC-...
|
|
117
|
+
bearcli note get C44D09DC-... | sed 's/foo/bar/' | bearcli note replace C44D09DC-...
|
|
89
118
|
bearcli note attach C44D09DC-... screenshot.png # ≤500 KB
|
|
90
119
|
bearcli note archive C44D09DC-...
|
|
91
120
|
bearcli note trash C44D09DC-...
|
|
@@ -140,6 +169,7 @@ tab-separated `text` built for pipes.
|
|
|
140
169
|
```sh
|
|
141
170
|
bearcli list -f json | jq -r '.[].title'
|
|
142
171
|
bearcli list -f text | cut -f1 # text is: id, modified, tags, status, title
|
|
172
|
+
bearcli stats -f json # library totals: counts, words, top tags
|
|
143
173
|
```
|
|
144
174
|
|
|
145
175
|
Dates are ISO (`2026-07-01` or `2026-07-01T14:30`). Override the database
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "bearcli"
|
|
3
|
-
version = "1.7.
|
|
3
|
+
version = "1.7.3"
|
|
4
4
|
description = "The missing open-source CLI for Bear notes - read, search, export, and manage your notes from the terminal"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
keywords = ["bear", "notes", "cli", "markdown", "macos"]
|
|
@@ -18,7 +18,7 @@ license = "MIT"
|
|
|
18
18
|
license-files = ["LICENSE"]
|
|
19
19
|
requires-python = ">=3.13"
|
|
20
20
|
dependencies = [
|
|
21
|
-
"bearkit==1.7.
|
|
21
|
+
"bearkit==1.7.3",
|
|
22
22
|
"fastmcp>=3.4.5",
|
|
23
23
|
"textual>=8.2.8",
|
|
24
24
|
"typer>=0.27.0",
|
|
@@ -28,7 +28,13 @@ def run(
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
def _bearcli_command() -> str:
|
|
31
|
-
|
|
31
|
+
# Prefer the binary we are running from: a PATH lookup could find Bear's
|
|
32
|
+
# official CLI, which shadows ours under the same name. absolute() (not
|
|
33
|
+
# resolve()) keeps brew's stable bin/ symlink out of the versioned Cellar.
|
|
34
|
+
exe = Path(sys.argv[0])
|
|
35
|
+
if exe.name == "bearcli" and exe.is_file():
|
|
36
|
+
return str(exe.absolute())
|
|
37
|
+
return shutil.which("bearcli") or "bearcli"
|
|
32
38
|
|
|
33
39
|
|
|
34
40
|
@dataclass(frozen=True)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|