monomind 2.1.3 → 2.1.4

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
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="assets/banner.png" alt="Monomind" width="600" />
2
+ <img src="https://raw.githubusercontent.com/monoes/monomind/main/assets/banner.png" alt="Monomind" width="600" />
3
3
  </p>
4
4
 
5
5
  <h1 align="center">Monomind</h1>
@@ -38,9 +38,9 @@ Monomind is an **open-source CLI and MCP server** that plugs into Claude Code vi
38
38
  - **Reusable slash commands** — 30+ development workflows (build, review, debug, TDD, architecture) available as `/mastermind:*` commands inside Claude Code.
39
39
 
40
40
  ```bash
41
- npm install -g monomind # MIT licensed, 0 external API calls
41
+ npm install -g monomind # MIT licensed, runs entirely on your machine
42
42
  cd your-project && monomind init
43
- claude mcp add monomind npx monomind mcp start
43
+ claude mcp add monomind -- npx -y monomind@latest mcp start
44
44
  ```
45
45
 
46
46
  ### Trust & Security
@@ -48,8 +48,8 @@ claude mcp add monomind npx monomind mcp start
48
48
  | Concern | Answer |
49
49
  |---|---|
50
50
  | **License** | [MIT](LICENSE) — use it however you want |
51
- | **Data privacy** | Everything runs locally. No telemetry, no phone-home, no external API calls from Monomind itself. Your code stays on your machine. |
52
- | **Dependencies** | Standard npm packages (tree-sitter, sql.js, zod). No native binaries. No post-install scripts that download code. |
51
+ | **Data privacy** | Everything runs locally — your code and memory store never leave your machine. The one exception: crash reporting is on by default (`monomind crash-reporting disable` to opt out) — a hard crash in monomind/mono-agent/monotask/mono-clip files a GitHub issue on that tool's own repo via the GitHub API. That's the only network call Monomind itself makes; it never phones a monoes-controlled server. |
52
+ | **Dependencies** | Standard npm packages (tree-sitter, better-sqlite3, sql.js, zod). tree-sitter and better-sqlite3 are native (prebuilt) Node addons, not pure JS/WASM — sql.js is WASM. No post-install scripts that download code. |
53
53
  | **Permissions** | Registers as an MCP server — Claude Code controls what tools are available and prompts you before executing anything sensitive. |
54
54
  | **Source** | Fully open. Read every line at [github.com/monoes/monomind](https://github.com/monoes/monomind). |
55
55
  | **Maintenance** | Active development, regular releases on npm. |
@@ -62,7 +62,7 @@ claude mcp add monomind npx monomind mcp start
62
62
 
63
63
  ### The idea
64
64
 
65
- Every business function needs a team. Define the org once as a JSON file — goal, roles, who reports to whom, per-role tool/file/budget policy — then run it as a real background daemon backed by the Claude Agent SDK. It persists across sessions, serves a live WebSocket dashboard, and can discover and message other Monomind orgs running on the same machine.
65
+ Every business function needs a team. Define the org once as a JSON file — goal, roles, who reports to whom, per-role tool/file/budget policy — then run it as a real background daemon backed by the Claude Agent SDK. It persists across sessions, streams live into the dashboard Claude Code auto-starts for the project, and can discover and message other Monomind orgs running on the same machine.
66
66
 
67
67
  ```mermaid
68
68
  flowchart TD
@@ -73,14 +73,14 @@ flowchart TD
73
73
  W["Writer"]
74
74
  S["SEO Specialist"]
75
75
  R["Reviewer"]
76
- DASH[("Live Dashboard\n:4243")]
76
+ DASH[("Dashboard\n:4242\nauto-started by\nClaude Code hook")]
77
77
  XORG[("Other orgs\ncross-process")]
78
78
 
79
79
  U --> DEF --> RUN --> BOSS
80
80
  BOSS -->|spawns| W
81
81
  BOSS -->|spawns| S
82
82
  BOSS -->|spawns| R
83
- RUN <-->|serves| DASH
83
+ RUN -->|forwards events| DASH
84
84
  RUN <-.->|--cross-process| XORG
85
85
 
86
86
  style BOSS fill:#00D2AA22,stroke:#00D2AA
@@ -93,13 +93,14 @@ flowchart TD
93
93
  ```bash
94
94
  # .monomind/orgs/<name>.json defines the org: goal, roles, policy.
95
95
  # See .monomind/orgs/sample-team.json in a fresh `monomind init` for a working example.
96
+ # Open the project in Claude Code first — a SessionStart hook auto-launches
97
+ # the dashboard at http://localhost:4242 if it isn't already running.
96
98
 
97
99
  monomind org run content-team --task "Build and publish 3 blog posts per week"
98
100
 
99
- # ✓ Live dashboard: http://localhost:4243
100
101
  # ✓ Boss agent (Claude Agent SDK session) spawns, reads the org goal,
101
102
  # assigns work to role agents, coordinates until the task completes
102
- # or you stop it.
103
+ # or you stop it. Every event streams into the dashboard above.
103
104
 
104
105
  monomind org status content-team # runtime state
105
106
  monomind org stop content-team # request a graceful stop
@@ -112,18 +113,18 @@ monomind org list # every org + status
112
113
  |---|---|
113
114
  | **OrgDaemon** | Hosts one or more orgs in a single process; real Claude Agent SDK sessions per role, not simulated |
114
115
  | **PolicyEngine** | Per-role gates on tool access, file read/write scope, web access, token budget — enforced, with a full audit trail |
115
- | **Live dashboard** | WebSocket-served at `:4243` by default (`--port` to change, `--serve=false` to disable) |
116
+ | **Dashboard** | `org run` forwards every event to the control server on `:4242` (found via `.monomind/control.json`) that server is auto-launched by a Claude Code SessionStart hook, not by any CLI command; there's no separate per-org dashboard process |
116
117
  | **Cross-process comms** | `--cross-process` (default on) lets orgs on different `monomind` processes/projects discover and message each other |
117
118
  | **Scheduling** | `monomind org serve` hosts orgs whose definition has a `schedule` field, running them on interval |
118
119
 
119
120
  ### Org management commands
120
121
 
121
122
  ```bash
122
- monomind org run <name> [--task "..."] [--port N] [--cross-process] # start a daemon
123
+ monomind org run <name> [--task "..."] [--cross-process] # start a daemon
123
124
  monomind org stop <name> # request a running org to stop
124
125
  monomind org status [name] # runtime state for one or all orgs
125
126
  monomind org list # list every org + status
126
- monomind org serve [--port N] # host-only mode, runs scheduled orgs
127
+ monomind org serve [--cross-process] # host-only mode, runs scheduled orgs
127
128
  monomind org delete <name> # remove an org
128
129
  ```
129
130
 
@@ -179,13 +180,13 @@ cd your-project
179
180
  monomind init
180
181
 
181
182
  # 3. Wire into Claude Code as an MCP server
182
- claude mcp add monomind npx monomind mcp start
183
+ claude mcp add monomind -- npx -y monomind@latest mcp start
183
184
 
184
185
  # 4. Health check
185
186
  monomind doctor --fix
186
187
  ```
187
188
 
188
- Open Claude Code. You now have 60+ slash commands available:
189
+ Open Claude Code. You now have 49 `/mastermind:*` workflows available:
189
190
 
190
191
  ```bash
191
192
  /mastermind:autodev --tillend # start autonomous code loop
@@ -275,7 +276,7 @@ const result = await fence.detect(userInput);
275
276
 
276
277
  ---
277
278
 
278
- ## 📋 60+ Slash Commands
279
+ ## 📋 49 Mastermind Commands
279
280
 
280
281
  Everything runs from inside Claude Code via slash commands. Here's the highlight reel:
281
282
 
@@ -308,7 +309,7 @@ Everything runs from inside Claude Code via slash commands. Here's the highlight
308
309
  | `/mastermind:finance` | Budgets, invoicing, modeling |
309
310
  | `/mastermind:ops` | Operations and workflow automation |
310
311
 
311
- **[→ Full reference (60+ commands)](https://monoes.github.io/monomind/#slash)**
312
+ **[→ Full reference (49 commands)](https://monoes.github.io/monomind/#slash)**
312
313
 
313
314
  ---
314
315
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monomind",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "Open-source CLI extension for Claude Code. Adds an MCP server with a codebase knowledge graph, persistent memory, multi-agent coordination, and reusable slash commands. MIT licensed, runs locally, no data leaves your machine.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -1,4 +1,4 @@
1
- <!-- Define and save an autonomous agent organization — roles, hierarchy, and communication topology. Suggest or confirm roles, then persist the org for use with runorg. -->
1
+ <!-- Define and save an autonomous agent organization (Org Runtime v2) — roles and hierarchy. Suggest or confirm roles, then persist the org config for `monomind org run`/`serve`. -->
2
2
 
3
3
  **If $ARGUMENTS is empty:** Output the following and wait.
4
4
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  **MASTERMIND: CREATE ORG**
8
8
 
9
- An org is a named, persistent agent team — not a one-shot Mastermind run. Once created, the org runs autonomously across sessions: a boss agent coordinates specialists who pick up tasks from a shared board, execute them, and loop until stopped.
9
+ An org is a named, persistent agent team, run by the Org Runtime v2 daemon — not a one-shot Mastermind run and not a Task-tool-spawned boss. Once created, every role in the config starts as its own live agent session the moment you run the org; roles message each other directly (no shared task board) and the org keeps running until stopped.
10
10
 
11
11
  Use orgs when the work is ongoing, not single-shot. A content team that ships 10 posts a month. A research squad that runs competitive scans weekly. A dev team with a permanent backlog.
12
12
 
@@ -25,16 +25,15 @@ Use orgs when the work is ongoing, not single-shot. A content team that ships 10
25
25
  ```
26
26
 
27
27
  **Options:**
28
- `--name <slug>` — org identifier used with `/mastermind:runorg` (derived from goal if omitted)
28
+ `--name <slug>` — org identifier used with `monomind org run <name>` (derived from goal if omitted)
29
29
  `--roles <list>` — explicit role list (e.g. "boss, writer, reviewer, marketer")
30
- `--schedule <interval>` — make this a self-scheduling loop org (e.g. `"every 30 minutes"`, `"every hour"`, `"daily"`)
30
+ `--schedule <interval>` — daemon schedule for `monomind org serve` to pick up, e.g. `"30m"`, `"2h"`, `"1440m"` for daily (omit for a manual, one-shot org)
31
31
  `--auto` — skip confirmation, create immediately
32
32
  `--confirm` — always ask before saving (default)
33
- `--delete <name>` — delete a saved org and all associated data files
34
- `--list` — list all saved orgs with their status
33
+ `--delete <name>` — delete a saved org and all associated data files (`monomind org delete <name> --yes`)
34
+ `--list` — list all saved orgs with their status (`monomind org list`)
35
35
 
36
- Once created, start the org with `/mastermind:runorg --org <name>`.
37
- For scheduled orgs: `runorg` activates the loop; `stoporg` stops it; `orgs` lists all.
36
+ Once created, start the org with `monomind org run <name>` (foreground, one-shot) or let `monomind org serve` pick it up if `--schedule` was set. Check status with `monomind org status <name>`; stop with `monomind org stop <name>`.
38
37
 
39
38
  ---
40
39
 
@@ -47,7 +46,7 @@ Parse `$ARGUMENTS` for:
47
46
  - `--confirm` flag → mode = confirm
48
47
  - `--name <name>` → org_name = <name> (must match `^[a-z0-9][a-z0-9-]{0,63}$`; if omitted, derived from goal)
49
48
  - `--roles <desc>` → roles_desc = <desc> (explicit role list, e.g. "boss, writer, reviewer, marketer")
50
- - `--schedule <interval>` → schedule = <interval> (e.g. `"every 30 minutes"`, `"every hour"`, `"daily"`; triggers loop org generation)
49
+ - `--schedule <interval>` → schedule = <interval>, daemon format only: `"<N>s"`, `"<N>m"`, or `"<N>h"` (e.g. `"30m"`, `"2h"`) — this is passed straight into `parseSchedule()` in `orgrt/scheduler.ts`, whose regex `^(\d+)\s*(s|m|h)$` rejects anything else (e.g. `"every 30 minutes"`, `"daily"`) and silently leaves the org unscheduled
51
50
  - `--delete <name>` → delete_mode = true, delete_name = <name>
52
51
  - `--list` flag → list_mode = true
53
52
  - Remaining text = prompt (goal description)