apple_notes
apple_notes
¶
Apple Notes connector — reads directly from the macOS Notes SQLite database.
No API calls, no OAuth. The connector opens
~/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite
in read-only mode and yields one :class:Document per note.
Requires Full Disk Access granted to the terminal / app in System Settings → Privacy & Security → Full Disk Access.
Content extraction
The ZDATA column in ZICNOTEDATA contains gzip-compressed protobuf
(com.apple.notes.ICNote). Plain text is obtained by decompressing the
bytes, decoding to UTF-8, and stripping protobuf control bytes.
Classes¶
AppleNotesConnector
¶
Bases: BaseConnector
Connector that reads notes from the macOS Notes SQLite database.
| PARAMETER | DESCRIPTION |
|---|---|
db_path
|
Path to
TYPE:
|
Source code in src/openjarvis/connectors/apple_notes.py
Functions¶
is_connected
¶
disconnect
¶
sync
¶
sync(*, since: Optional[datetime] = None, cursor: Optional[str] = None) -> Iterator[Document]
Read notes from NoteStore.sqlite and yield one :class:Document each.
| PARAMETER | DESCRIPTION |
|---|---|
since
|
If provided, skip notes whose modification time is before this datetime.
TYPE:
|
cursor
|
Not used for this local connector (included for API compatibility).
TYPE:
|
| YIELDS | DESCRIPTION |
|---|---|
Document
|
One document per note, with gzip-decompressed plain-text content. |
Source code in src/openjarvis/connectors/apple_notes.py
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | |
sync_status
¶
sync_status() -> SyncStatus
Return sync progress from the most recent :meth:sync call.
Source code in src/openjarvis/connectors/apple_notes.py
mcp_tools
¶
mcp_tools() -> List[ToolSpec]
Expose two MCP tool specs for real-time Apple Notes queries.