virlow-mcp 3.18.0 → 3.68.0

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.
Files changed (4) hide show
  1. package/LICENSE +8 -18
  2. package/README.md +46 -12
  3. package/dist/cli.js +2165 -179
  4. package/package.json +6 -6
package/LICENSE CHANGED
@@ -1,21 +1,11 @@
1
- MIT License
1
+ Copyright (c) 2026 Bata Labs LLC. All rights reserved.
2
2
 
3
- Copyright (c) 2025 Typelets Secure Notes
3
+ This software and its source code are proprietary and confidential.
4
4
 
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
5
+ No license, express or implied, is granted to any person to use, copy,
6
+ modify, merge, publish, distribute, sublicense, or sell copies of this
7
+ software, in whole or in part, except under a separate written agreement
8
+ with Bata Labs LLC.
11
9
 
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
10
+ Unauthorized copying, distribution, or disclosure of this software is
11
+ prohibited.
package/README.md CHANGED
@@ -8,7 +8,7 @@ entire time.
8
8
  ## What it is
9
9
 
10
10
  virlow-mcp runs on your machine as a local process (`npx -y virlow-mcp`, launched by your
11
- AI client over stdio). It exposes 19 tools for two things:
11
+ AI client over stdio). It exposes 24 tools for three things:
12
12
 
13
13
  - **Memories** — short, durable facts ("the user prefers TypeScript", "this repo's CI
14
14
  runs on self-hosted runners") that any AI tool can add, search semantically, and recall
@@ -16,7 +16,20 @@ AI client over stdio). It exposes 19 tools for two things:
16
16
  **Memories** folder, so you can read, edit, reorganise, and trash them in the Virlow
17
17
  app like anything else you have written.
18
18
  - **Notes** — full read/write access to your existing Virlow notes: search, list, read,
19
- create, update, move, star, archive, and trash, plus folder management.
19
+ create, update, move, star, archive, and trash, plus folder management and
20
+ `get_backlinks` (notes that link to a note, from encrypted link records). `update_note`
21
+ also accepts `props` (property id to typed value) and `aliases` (alternative titles a
22
+ note answers to when linked).
23
+ - **Properties**: typed fields on a folder's notes, the way a database column works:
24
+ `list_properties` reads a folder's definitions, `define_property` adds one (text, number,
25
+ select, multiSelect, date, checkbox, url, or relation), and `set_properties` sets values on
26
+ a note by property name, taking option names rather than ids. `list_folder_view` reads the
27
+ whole folder the way the app's table shows it, one row per note and one column per
28
+ property, with an optional `sortBy`; it answers "which of these is in review" or "what has
29
+ no owner" without reading a single note body. Definitions live in the folder's encrypted
30
+ schema and values in the note's encrypted attrs, so the server sees neither. Properties
31
+ ship in the Virlow app as of its epic 3, so what is written here is what the user sees in
32
+ the note, the table, the board and the calendar.
20
33
 
21
34
  Everything is **end-to-end encrypted, zero-knowledge**: the encryption key is derived
22
35
  from your Virlow master password inside this local process and never leaves it. Every
@@ -31,17 +44,17 @@ through a tool call, and never seen by the AI model.
31
44
  ### This is the local server, and that distinction is the whole security model
32
45
 
33
46
  Every claim above is about **this package**, running on **your machine**. Virlow also
34
- offers a **hosted connector** — the same 19 tools, served from Virlow's own servers, so a
47
+ offers a **hosted connector**: the same 24 tools, served from Virlow's own servers, so a
35
48
  client can connect by URL with nothing installed. It is a genuinely different trust model,
36
49
  and the sentence "the key never leaves it" is the part that stops being true:
37
50
 
38
- | | this local server | the hosted connector |
39
- | --- | --- | --- |
40
- | where the key is derived | this process, on your machine | Virlow's API process |
41
- | who can read a decrypted note | this process | this process, and Virlow's server |
42
- | what an unlock sends | nothing; the password stays local | your master password, over HTTPS |
43
- | what it takes to run | Node on your machine | nothing |
44
- | session lifetime | 4 hours idle | 30 minutes idle |
51
+ | | this local server | the desktop app | the hosted connector |
52
+ | --- | --- | --- | --- |
53
+ | where the key is derived | this process, on your machine | the Virlow app, on your machine | Virlow's API process |
54
+ | who can read a decrypted note | this process | the app's process | this process, and Virlow's server |
55
+ | what an unlock sends | nothing; the password stays local | nothing; the password stays local | your master password, over HTTPS |
56
+ | what it takes to run | Node on your machine | the installed app | nothing |
57
+ | session lifetime | 4 hours idle | follows the app's vault lock | 30 minutes idle |
45
58
 
46
59
  The hosted connector is **off by default** on every account and has to be switched on in
47
60
  Virlow's settings. If you are reading this page, you are looking at the option that keeps
@@ -122,6 +135,27 @@ Claude Desktop / Cursor:
122
135
  }
123
136
  ```
124
137
 
138
+ ### Connecting through the Virlow desktop app
139
+
140
+ If you run the [Virlow desktop app](../desktop/README.md), it already hosts this server
141
+ on your machine and unlocks with the app. Clients that can send a header connect to it
142
+ directly; the app shows the exact snippet under Settings, This computer. Clients that can
143
+ only spawn a command use this package as a pipe:
144
+
145
+ ```json
146
+ {
147
+ "mcpServers": {
148
+ "virlow": {
149
+ "command": "npx",
150
+ "args": ["-y", "virlow-mcp", "--connect", "http://127.0.0.1:47821/mcp",
151
+ "--token-file", "<path the app shows you>"]
152
+ }
153
+ }
154
+ }
155
+ ```
156
+
157
+ In this mode nothing is decrypted in this process. It forwards to the app and back.
158
+
125
159
  ## First use
126
160
 
127
161
  1. Ask your AI client to run the **`unlock`** tool. This opens a browser window pointed
@@ -172,7 +206,7 @@ just give you two versions to keep in sync.
172
206
  ## Reaching your vault from a session that is not on this machine
173
207
 
174
208
  By default `virlow-mcp` speaks stdio, so your AI client spawns it as a child
175
- process and everything stays on one machine. `--http` serves the same 19 tools
209
+ process and everything stays on one machine. `--http` serves the same 24 tools
176
210
  over HTTP instead, so a client that cannot spawn a local process — a cloud
177
211
  coding session, another laptop — can reach this vault:
178
212
 
@@ -266,7 +300,7 @@ npx -y virlow-mcp --no-memories
266
300
 
267
301
  Use it when you want a connector that structurally cannot touch memories,
268
302
  regardless of the account setting. Notes tools, `unlock`, `lock`, and `status`
269
- are unaffected either way (14 tools instead of 19).
303
+ are unaffected either way (18 tools instead of 23).
270
304
 
271
305
  ## Suggested agent rules
272
306