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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bearcli
3
- Version: 1.7.1
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.1
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 # shortcut for `note get`; a unique id prefix (4+ chars) works everywhere
88
- bearcli get C44D09DC-... --meta # with YAML-style frontmatter
89
- bearcli get C44D09DC-... -r # rewrite attachment refs to absolute paths
90
- bearcli get C44D09DC-... --redact-secrets # secrets replaced by placeholders
91
- bearcli open C44D09DC-... # open in the Bear app (shortcut for `note open`)
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 # case-insensitive substring (shortcut for `note search`)
100
- bearcli search "quarterly planing" --fuzzy # typo-tolerant, ranked by score
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 # shortcut for `note create`
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 # shortcut for `note get`; a unique id prefix (4+ chars) works everywhere
64
- bearcli get C44D09DC-... --meta # with YAML-style frontmatter
65
- bearcli get C44D09DC-... -r # rewrite attachment refs to absolute paths
66
- bearcli get C44D09DC-... --redact-secrets # secrets replaced by placeholders
67
- bearcli open C44D09DC-... # open in the Bear app (shortcut for `note open`)
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 # case-insensitive substring (shortcut for `note search`)
76
- bearcli search "quarterly planing" --fuzzy # typo-tolerant, ranked by score
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 # shortcut for `note create`
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.1"
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.1",
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
- return shutil.which("bearcli") or sys.argv[0] or "bearcli"
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