vault-cortex 0.6.0 → 0.6.2

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.
package/README.md CHANGED
@@ -7,48 +7,62 @@ for your Obsidian vault in one command:
7
7
  npx vault-cortex@latest init
8
8
  ```
9
9
 
10
- Vault Cortex is a standalone, remote-capable MCP server for Obsidian vaults
11
- Tools for hybrid search (FTS5 + vector + cross-encoder reranking, with
12
- tag/folder/property/date filters), notes, frontmatter, links, daily notes,
13
- Kanban-aware task management (query + complete/move/reprioritize, parsing Tasks-plugin emoji + Dataview inline-field formats), and
14
- a structured memory layer with topic recall (the current take plus the
15
- dated history behind it), plus guided prompts (orientation, memory
16
- review, daily review). It runs as a Docker
17
- container; this CLI scaffolds the config so you don't have to.
10
+ Vault Cortex is a standalone, remote-capable MCP server that gives any AI
11
+ agent hybrid search, task management, structured memory, and read/write
12
+ access to your Obsidian vault see the
13
+ [full feature overview](https://github.com/aliasunder/vault-cortex#what-you-get).
14
+ The server runs as a Docker container; this CLI scaffolds the config and
15
+ manages the container so you don't have to.
18
16
 
19
- ## What `init` does
17
+ ![npx vault-cortex init — the interactive setup wizard picks a mode, finds your vault, generates the config, and starts the server](https://raw.githubusercontent.com/aliasunder/vault-cortex/main/assets/demo-cli-init.gif)
18
+
19
+ ## Commands
20
+
21
+ - [`init`](#init) — interactive setup: scaffold the config, generate the auth
22
+ token, start the server
23
+ - [`upgrade`](#upgrade) — pull the latest image and re-create the container;
24
+ your data stays
25
+ - [`get-sync-token`](#get-sync-token) — generate an Obsidian Sync auth token
26
+ for remote setups
27
+
28
+ Run `npx vault-cortex <command> --help` for all flags.
29
+
30
+ ## init
31
+
32
+ ```bash
33
+ npx vault-cortex@latest init
34
+ ```
35
+
36
+ What it does:
20
37
 
21
38
  1. Asks how you want to run it:
22
39
  - **Local** — Docker on this machine, your vault folder bind-mounted
23
- - **Remote** — a VPS with [Obsidian Sync](https://obsidian.md/sync), reachable from any device
40
+ - **Remote** — a VPS with [Obsidian Sync](https://obsidian.md/sync),
41
+ reachable from any device
24
42
  2. Generates a `.env` file with a securely generated `MCP_AUTH_TOKEN`
25
43
  3. Optionally starts the container and waits for the health check
26
44
  4. Prints your connection details — the MCP URL, your auth token, and how to
27
45
  connect your client
28
46
 
29
- Existing files are never overwritten without asking.
47
+ Existing files are never overwritten without asking. During a remote setup,
48
+ init offers to run [`get-sync-token`](#get-sync-token) for you when Docker is
49
+ available.
30
50
 
31
- ## Get Sync Token
51
+ Flags:
32
52
 
33
- Generate an Obsidian Sync auth token without leaving the CLI:
53
+ - `--mode local|remote` skip the mode prompt
54
+ - `--vault-path <path>` — absolute path to your vault (local mode)
55
+ - `--dir <path>` — directory to write config files into (default
56
+ `./vault-cortex`)
57
+ - `--yes` — non-interactive local setup with defaults; requires `--vault-path`
34
58
 
35
- ```bash
36
- npx vault-cortex get-sync-token
37
- ```
38
-
39
- The command opens the Obsidian login inside Docker. Once you've signed
40
- in, it captures your token and prints it — nothing to dig out of the
41
- login output. Use `--dir` to write the token straight into an existing
42
- `.env` instead:
59
+ Non-interactive example:
43
60
 
44
61
  ```bash
45
- npx vault-cortex get-sync-token --dir ./vault-cortex
62
+ npx vault-cortex@latest init --yes --vault-path /path/to/YourVault
46
63
  ```
47
64
 
48
- During `init --mode remote`, this flow is offered automatically when Docker
49
- is available.
50
-
51
- ## Upgrade
65
+ ## upgrade
52
66
 
53
67
  Pull the latest image, re-create the container, and verify health:
54
68
 
@@ -60,27 +74,46 @@ Run it from the same directory where you ran `init` — it looks for your
60
74
  config in `./vault-cortex/.env` (pass `--dir <path>` if you scaffolded
61
75
  somewhere else).
62
76
 
63
- Your vault data, search index, and `.env` settings are preserved across
64
- upgrades — only the server image is replaced. Also applies `.env` changes
65
- (`docker restart` does not re-read env files).
77
+ Safe by design:
78
+
79
+ - Your vault data, search index, and `.env` settings are preserved across
80
+ upgrades — only the server image is replaced.
81
+ - Any edits you've made to `.env` are applied on the way up (`docker restart`
82
+ alone does not re-read env files).
66
83
 
67
84
  Prefer Docker Compose? The CLI uses `docker run` for simplicity, but the
68
85
  [deploy guides](https://github.com/aliasunder/vault-cortex/blob/main/deploy/)
69
- include Compose files you can use directly.
86
+ include Compose files you can use directly. If you set up with Compose, stick
87
+ with Compose for updates too (`docker compose pull && docker compose up -d`)
88
+ — the CLI and Compose manage the container independently.
70
89
 
71
- ## Non-interactive
90
+ ## get-sync-token
91
+
92
+ Generate an [Obsidian Sync](https://obsidian.md/sync) auth token — needed for
93
+ remote setups — without leaving the CLI:
72
94
 
73
95
  ```bash
74
- npx vault-cortex@latest init --yes --vault-path /path/to/YourVault
96
+ npx vault-cortex get-sync-token
75
97
  ```
76
98
 
77
- Flags: `--mode local|remote`, `--vault-path <path>`, `--dir <path>` (default
78
- `./vault-cortex`), `--yes`.
99
+ The command opens the Obsidian login inside Docker. Once you've signed in, it
100
+ captures your token and prints it — nothing to dig out of the login output.
101
+ Use `--dir <path>` to write the token straight into an existing `.env`
102
+ instead:
103
+
104
+ ```bash
105
+ npx vault-cortex get-sync-token --dir ./vault-cortex
106
+ ```
107
+
108
+ During `init --mode remote`, this flow is offered automatically when Docker
109
+ is available.
79
110
 
80
111
  ## Requirements
81
112
 
82
113
  - Node.js >= 20.12 (only for this CLI — the server itself runs in Docker)
83
- - [Docker](https://docs.docker.com/get-docker/) (or any OCI-compatible runtime) to run the server
114
+ - [Docker](https://docs.docker.com/get-docker/) or a Docker-compatible
115
+ runtime (e.g. OrbStack, Colima, Podman) to run the server — the CLI
116
+ manages the container through the `docker` command
84
117
 
85
118
  ## Docs
86
119
 
package/dist/docker.js CHANGED
@@ -96,8 +96,16 @@ export const buildDockerRunArgs = (params) => {
96
96
  };
97
97
  export const createDockerRunner = () => ({
98
98
  isDaemonRunning: () => spawnSync("docker", ["info"], { timeout: 5_000 }).status === 0,
99
- dockerRun: (params) => spawnSync("docker", buildDockerRunArgs(params), { stdio: "inherit" })
100
- .status === 0,
99
+ // stdout is discarded: `docker run -d` prints only the container ID there,
100
+ // which lands as a raw hex line between the wizard's prompts. stderr stays
101
+ // inherited — image-pull progress and error output print live, which the
102
+ // "see output above" failure messages rely on. stdin is ignored on purpose:
103
+ // buildDockerRunArgs always runs detached (never -it), and the prompt
104
+ // library owns the terminal's stdin — interactive flows go through
105
+ // runObsidianLogin, which inherits all three streams.
106
+ dockerRun: (params) => spawnSync("docker", buildDockerRunArgs(params), {
107
+ stdio: ["ignore", "ignore", "inherit"],
108
+ }).status === 0,
101
109
  pullImage: (image) => spawnSync("docker", ["pull", image], { stdio: "inherit" }).status === 0,
102
110
  stopAndRemoveContainer: () => spawnSync("docker", ["rm", "-f", CONTAINER_NAME]).status === 0,
103
111
  runObsidianLogin: (configMountPath) => spawnSync("docker", buildObsidianLoginArgs({
package/dist/messages.js CHANGED
@@ -116,7 +116,7 @@ out in ${targetDir}/.env — uncomment, set a value, then apply with
116
116
 
117
117
  ${updateGuidance(targetDir)}
118
118
 
119
- Full docs: https://github.com/aliasunder/vault-cortex/blob/main/deploy/local/README.md
119
+ Full docs: https://github.com/aliasunder/vault-cortex
120
120
 
121
121
  ${bottomRule()}`;
122
122
  return connectMessage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vault-cortex",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Set up a Vault Cortex MCP server for your Obsidian vault in one command: npx vault-cortex init",
5
5
  "license": "MIT",
6
6
  "type": "module",