@cpenned/cli 0.1.0 → 0.2.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.
- package/README.md +22 -7
- package/dist/format.js +16 -7
- package/dist/format.js.map +1 -1
- package/dist/index.js +157 -12
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/skills/open-brain-cli/SKILL.md +26 -11
- package/skills/open-brain-mcp/SKILL.md +158 -0
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ ob today
|
|
|
58
58
|
ob view upcoming --tz America/New_York
|
|
59
59
|
|
|
60
60
|
# Tasks
|
|
61
|
-
ob task create "Email the landlord" --garden <gardenId> --
|
|
61
|
+
ob task create "Email the landlord" --garden <gardenId> --deadline today --priority high
|
|
62
62
|
ob task list --garden <gardenId> --status todo in_progress
|
|
63
63
|
ob task get <taskId>
|
|
64
64
|
ob task update <taskId> --deadline 2026-07-01
|
|
@@ -73,8 +73,20 @@ ob project create "Q3 launch" --garden <gardenId>
|
|
|
73
73
|
ob garden create "Health" --context "fitness, doctor, meds"
|
|
74
74
|
ob tag create urgent --color "#c1502e"
|
|
75
75
|
|
|
76
|
+
# People (personal CRM)
|
|
77
|
+
ob person create "Megan" --relationship wife --alias Meg --contact-every 1 --contact-unit week
|
|
78
|
+
ob person link <personId> --garden <gardenId> --task <taskId>
|
|
79
|
+
ob person contacted <personId> # reached out -> restarts the contact clock
|
|
80
|
+
ob person contacted <personId> --at -3d # backdate a touch that happened earlier
|
|
81
|
+
ob person update <personId> --detail "Kids=Silas, Jude" --clear contactInterval
|
|
82
|
+
ob person restore <personId> # undo a person rm (archive)
|
|
83
|
+
ob person list
|
|
84
|
+
ob person list christina # search name/alias/company/notes
|
|
85
|
+
ob task create "Send book rec" --garden <gardenId> --person <personId>
|
|
86
|
+
ob task list --person <personId> # tasks linked to a person
|
|
87
|
+
|
|
76
88
|
# Reviews
|
|
77
|
-
ob review queue
|
|
89
|
+
ob review queue # incl. people due for contact
|
|
78
90
|
ob review garden <gardenId> # deep review
|
|
79
91
|
ob review request <gardenId> # force into the queue
|
|
80
92
|
ob review task <taskId> # mark reviewed
|
|
@@ -95,18 +107,21 @@ command group.
|
|
|
95
107
|
|
|
96
108
|
## Agent skills
|
|
97
109
|
|
|
98
|
-
The CLI ships with the `open-brain-cli` agent
|
|
99
|
-
Code) can drive `ob`
|
|
110
|
+
The CLI ships with the `open-brain-cli` and `open-brain-mcp` agent skills so an
|
|
111
|
+
assistant (e.g. Claude Code) can drive `ob` or the MCP tools on your machine.
|
|
112
|
+
Install them into your skills directory:
|
|
100
113
|
|
|
101
114
|
```bash
|
|
102
115
|
ob skills list # what's bundled, and whether it's installed
|
|
103
116
|
ob skills install # copy into ~/.claude/skills
|
|
104
|
-
ob skills install --force # overwrite
|
|
105
|
-
ob skills uninstall # remove
|
|
117
|
+
ob skills install --force # overwrite existing copies
|
|
118
|
+
ob skills uninstall # remove them again
|
|
106
119
|
```
|
|
107
120
|
|
|
108
121
|
Skills install into `~/.claude/skills` by default; pass `--dir <path>` to target
|
|
109
|
-
another location
|
|
122
|
+
another location, or name skills to act on a subset (e.g.
|
|
123
|
+
`ob skills install open-brain-mcp`). Restart your agent afterwards so it picks
|
|
124
|
+
up the new skills.
|
|
110
125
|
|
|
111
126
|
## Develop
|
|
112
127
|
|
package/dist/format.js
CHANGED
|
@@ -24,14 +24,14 @@ function meta(item) {
|
|
|
24
24
|
const bits = [];
|
|
25
25
|
if (typeof item.status === "string")
|
|
26
26
|
bits.push(item.status);
|
|
27
|
-
if (
|
|
28
|
-
bits.push(item.
|
|
29
|
-
else if (typeof item.when === "string")
|
|
30
|
-
bits.push(item.when);
|
|
27
|
+
if (typeof item.relationship === "string")
|
|
28
|
+
bits.push(item.relationship);
|
|
31
29
|
if (typeof item.priority === "string" && item.priority !== "none")
|
|
32
30
|
bits.push(`!${item.priority}`);
|
|
33
31
|
if (item.deadline)
|
|
34
32
|
bits.push(`due ${fmtDate(item.deadline)}`);
|
|
33
|
+
if (item.nextContactAt)
|
|
34
|
+
bits.push(`contact due ${fmtDate(item.nextContactAt)}`);
|
|
35
35
|
if (Array.isArray(item.scopes))
|
|
36
36
|
bits.push(item.scopes.join(","));
|
|
37
37
|
if (item.archived === true)
|
|
@@ -127,10 +127,15 @@ function render(data) {
|
|
|
127
127
|
console.log(dim(`mode: ${data.mode}`));
|
|
128
128
|
return;
|
|
129
129
|
}
|
|
130
|
-
// Review queue.
|
|
131
|
-
|
|
130
|
+
// Review queue ({ tasks, projects, people } — all three always present).
|
|
131
|
+
// Requiring every key keeps a person detail (which also carries a `people`
|
|
132
|
+
// array of connections) out of this branch.
|
|
133
|
+
if (Array.isArray(data.tasks) &&
|
|
134
|
+
Array.isArray(data.projects) &&
|
|
135
|
+
Array.isArray(data.people)) {
|
|
132
136
|
const tasks = Array.isArray(data.tasks) ? data.tasks : [];
|
|
133
137
|
const projects = Array.isArray(data.projects) ? data.projects : [];
|
|
138
|
+
const people = Array.isArray(data.people) ? data.people : [];
|
|
134
139
|
if (tasks.length) {
|
|
135
140
|
console.log(bold("Tasks"));
|
|
136
141
|
renderList(tasks);
|
|
@@ -139,7 +144,11 @@ function render(data) {
|
|
|
139
144
|
console.log(bold("Projects"));
|
|
140
145
|
renderList(projects);
|
|
141
146
|
}
|
|
142
|
-
if (
|
|
147
|
+
if (people.length) {
|
|
148
|
+
console.log(bold("Reach out"));
|
|
149
|
+
renderList(people);
|
|
150
|
+
}
|
|
151
|
+
if (!tasks.length && !projects.length && !people.length)
|
|
143
152
|
console.log(dim("Nothing due."));
|
|
144
153
|
return;
|
|
145
154
|
}
|
package/dist/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,mEAAmE;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMvC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/D,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,CAAS,EAAU,EAAE,CAC/C,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACjD,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAGlD,MAAM,KAAK,GAAG,CAAC,CAAU,EAAY,EAAE,CACrC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3D,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,KAAK,CAAC,IAAS;IACtB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,IAAI,CAAC,IAAS;IACrB,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,7 +18,6 @@ program
|
|
|
18
18
|
const num = (v) => (v === undefined ? undefined : Number(v));
|
|
19
19
|
const csv = (v) => Array.isArray(v) && v.length ? v.join(",") : undefined;
|
|
20
20
|
const str = (v) => (typeof v === "string" ? v : undefined);
|
|
21
|
-
const whenOf = (v) => typeof v === "string" ? { type: v } : undefined;
|
|
22
21
|
async function run(fn) {
|
|
23
22
|
try {
|
|
24
23
|
const data = await fn(new OpenBrainClient(loadConfig()));
|
|
@@ -162,12 +161,12 @@ function taskBody(o) {
|
|
|
162
161
|
gardenId: str(o.garden),
|
|
163
162
|
projectId: str(o.project),
|
|
164
163
|
notes: str(o.notes),
|
|
165
|
-
when: whenOf(o.when),
|
|
166
164
|
deferDate: str(o.defer),
|
|
167
165
|
deadline: str(o.deadline),
|
|
168
166
|
priority: str(o.priority),
|
|
169
167
|
estimateMinutes: num(o.estimate),
|
|
170
168
|
tagIds: Array.isArray(o.tag) ? o.tag : undefined,
|
|
169
|
+
personIds: Array.isArray(o.person) ? o.person : undefined,
|
|
171
170
|
status: str(o.status),
|
|
172
171
|
};
|
|
173
172
|
}
|
|
@@ -175,12 +174,12 @@ const withTaskWriteOpts = (cmd) => cmd
|
|
|
175
174
|
.option("--garden <id>", "garden id")
|
|
176
175
|
.option("--project <id>", "project id")
|
|
177
176
|
.option("--notes <markdown>", "notes (markdown)")
|
|
178
|
-
.option("--when <bucket>", "today | anytime | someday")
|
|
179
177
|
.option("--defer <date>", "defer date (ISO/epoch/natural language)")
|
|
180
178
|
.option("--deadline <date>", "deadline (ISO/epoch/natural language)")
|
|
181
179
|
.option("--priority <p>", "none | low | medium | high")
|
|
182
180
|
.option("--estimate <minutes>", "estimate in minutes")
|
|
183
|
-
.option("--tag <id...>", "tag ids")
|
|
181
|
+
.option("--tag <id...>", "tag ids")
|
|
182
|
+
.option("--person <id...>", "person ids to link");
|
|
184
183
|
withTaskWriteOpts(task.command("create <title>").description("Create a task (must belong to a garden)")).action((title, o) => run((c) => c.post("/v1/tasks", { ...taskBody({ ...o, title }) })));
|
|
185
184
|
task
|
|
186
185
|
.command("list")
|
|
@@ -190,8 +189,8 @@ task
|
|
|
190
189
|
.option("--project <id>")
|
|
191
190
|
.option("--status <s...>", "backlog|todo|in_progress|done|canceled")
|
|
192
191
|
.option("--priority <p...>", "none|low|medium|high")
|
|
193
|
-
.option("--when <w...>", "today|anytime|someday")
|
|
194
192
|
.option("--tag <id...>", "tag ids")
|
|
193
|
+
.option("--person <id...>", "person ids")
|
|
195
194
|
.option("--q <text>", "substring text filter")
|
|
196
195
|
.option("--deferred <mode>", "respect | all")
|
|
197
196
|
.option("--include-canceled")
|
|
@@ -204,8 +203,8 @@ task
|
|
|
204
203
|
projectId: str(o.project),
|
|
205
204
|
status: csv(o.status),
|
|
206
205
|
priority: csv(o.priority),
|
|
207
|
-
when: csv(o.when),
|
|
208
206
|
tag: csv(o.tag),
|
|
207
|
+
person: csv(o.person),
|
|
209
208
|
q: str(o.q),
|
|
210
209
|
deferred: str(o.deferred),
|
|
211
210
|
includeCanceled: o.includeCanceled ? true : undefined,
|
|
@@ -223,6 +222,7 @@ withTaskWriteOpts(task.command("update <id>").description("Patch task fields and
|
|
|
223
222
|
.action((id, o) => {
|
|
224
223
|
const body = taskBody(o);
|
|
225
224
|
delete body.tagIds;
|
|
225
|
+
delete body.personIds;
|
|
226
226
|
return run((c) => c.patch(`/v1/tasks/${id}`, body));
|
|
227
227
|
});
|
|
228
228
|
task
|
|
@@ -268,7 +268,6 @@ function projectBody(o) {
|
|
|
268
268
|
name: str(o.name),
|
|
269
269
|
gardenId: str(o.garden),
|
|
270
270
|
notes: str(o.notes),
|
|
271
|
-
when: whenOf(o.when),
|
|
272
271
|
deferDate: str(o.defer),
|
|
273
272
|
deadline: str(o.deadline),
|
|
274
273
|
estimateMinutes: num(o.estimate),
|
|
@@ -278,7 +277,6 @@ function projectBody(o) {
|
|
|
278
277
|
const withProjectWriteOpts = (cmd) => cmd
|
|
279
278
|
.option("--garden <id>", "garden id")
|
|
280
279
|
.option("--notes <markdown>")
|
|
281
|
-
.option("--when <bucket>", "today | anytime | someday")
|
|
282
280
|
.option("--defer <date>")
|
|
283
281
|
.option("--deadline <date>")
|
|
284
282
|
.option("--estimate <minutes>");
|
|
@@ -386,12 +384,160 @@ tag
|
|
|
386
384
|
.command("rm <id>")
|
|
387
385
|
.description("Delete a tag (detaches it from every task)")
|
|
388
386
|
.action((id) => run((c) => c.del(`/v1/tags/${id}`)));
|
|
387
|
+
// --- people ----------------------------------------------------------------
|
|
388
|
+
const person = program
|
|
389
|
+
.command("person")
|
|
390
|
+
.description("Personal CRM: people linked to tasks, projects, gardens, and each other");
|
|
391
|
+
// "Label=value" CLI strings -> the API's labeled-fact objects.
|
|
392
|
+
function parseDetails(input) {
|
|
393
|
+
if (!Array.isArray(input))
|
|
394
|
+
return undefined;
|
|
395
|
+
return input.map((s) => {
|
|
396
|
+
const i = s.indexOf("=");
|
|
397
|
+
return i === -1
|
|
398
|
+
? { label: s, value: "" }
|
|
399
|
+
: { label: s.slice(0, i), value: s.slice(i + 1) };
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
function personBody(o) {
|
|
403
|
+
const every = num(o.contactEvery);
|
|
404
|
+
return {
|
|
405
|
+
name: str(o.name),
|
|
406
|
+
aliases: Array.isArray(o.alias) ? o.alias : undefined,
|
|
407
|
+
relationship: str(o.relationship),
|
|
408
|
+
company: str(o.company),
|
|
409
|
+
role: str(o.role),
|
|
410
|
+
email: str(o.email),
|
|
411
|
+
phone: str(o.phone),
|
|
412
|
+
website: str(o.website),
|
|
413
|
+
linkedin: str(o.linkedin),
|
|
414
|
+
x: str(o.x),
|
|
415
|
+
instagram: str(o.instagram),
|
|
416
|
+
birthday: str(o.birthday),
|
|
417
|
+
anniversary: str(o.anniversary),
|
|
418
|
+
details: parseDetails(o.detail),
|
|
419
|
+
notes: str(o.notes),
|
|
420
|
+
contactInterval: every
|
|
421
|
+
? { value: every, unit: str(o.contactUnit) ?? "week" }
|
|
422
|
+
: undefined,
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
// Fields `person update --clear <field>` may null out (the API's null-clears).
|
|
426
|
+
const CLEARABLE_PERSON_FIELDS = new Set([
|
|
427
|
+
"relationship",
|
|
428
|
+
"company",
|
|
429
|
+
"role",
|
|
430
|
+
"email",
|
|
431
|
+
"phone",
|
|
432
|
+
"website",
|
|
433
|
+
"linkedin",
|
|
434
|
+
"x",
|
|
435
|
+
"instagram",
|
|
436
|
+
"birthday",
|
|
437
|
+
"anniversary",
|
|
438
|
+
"contactInterval",
|
|
439
|
+
]);
|
|
440
|
+
const withPersonWriteOpts = (cmd) => cmd
|
|
441
|
+
.option("--alias <alias...>", "nicknames / alternate names")
|
|
442
|
+
.option("--relationship <text>", 'e.g. "wife", "friend", "coworker"')
|
|
443
|
+
.option("--company <text>")
|
|
444
|
+
.option("--role <text>")
|
|
445
|
+
.option("--email <email>")
|
|
446
|
+
.option("--phone <phone>")
|
|
447
|
+
.option("--website <url>")
|
|
448
|
+
.option("--linkedin <url>")
|
|
449
|
+
.option("--x <url>")
|
|
450
|
+
.option("--instagram <url>")
|
|
451
|
+
.option("--birthday <date>", "YYYY-MM-DD or MM-DD")
|
|
452
|
+
.option("--anniversary <date>", "YYYY-MM-DD or MM-DD")
|
|
453
|
+
.option("--detail <label=value...>", "labeled facts; replaces the whole list")
|
|
454
|
+
.option("--notes <markdown>")
|
|
455
|
+
.option("--contact-every <n>", "contact cadence value, e.g. 2")
|
|
456
|
+
.option("--contact-unit <unit>", "day | week | month (default week)");
|
|
457
|
+
withPersonWriteOpts(person.command("create <name>").description("Create a person")).action((name, o) => run((c) => c.post("/v1/people", personBody({ ...o, name }))));
|
|
458
|
+
person
|
|
459
|
+
.command("list [query]")
|
|
460
|
+
.alias("ls")
|
|
461
|
+
.description("List people, search by name/alias/company/notes, or multi-get with --ids")
|
|
462
|
+
.option("--ids <id...>")
|
|
463
|
+
.option("--archived", "include archived people")
|
|
464
|
+
.option("--limit <n>")
|
|
465
|
+
.action((query, o) => run((c) => c.get("/v1/people", {
|
|
466
|
+
ids: csv(o.ids),
|
|
467
|
+
includeArchived: o.archived ? true : undefined,
|
|
468
|
+
limit: num(o.limit),
|
|
469
|
+
q: query,
|
|
470
|
+
})));
|
|
471
|
+
person
|
|
472
|
+
.command("get <id>")
|
|
473
|
+
.description("Fetch one person (incl. linked task/project/garden ids and connected people)")
|
|
474
|
+
.action((id) => run((c) => c.get(`/v1/people/${id}`)));
|
|
475
|
+
withPersonWriteOpts(person.command("update <id>").description("Patch person fields"))
|
|
476
|
+
.option("--name <name>")
|
|
477
|
+
.option("--clear <field...>", `null out fields: ${[...CLEARABLE_PERSON_FIELDS].join("|")}`)
|
|
478
|
+
.action((id, o) => {
|
|
479
|
+
const body = personBody(o);
|
|
480
|
+
for (const field of Array.isArray(o.clear) ? o.clear : []) {
|
|
481
|
+
if (!CLEARABLE_PERSON_FIELDS.has(field)) {
|
|
482
|
+
printError(new Error(`--clear does not support "${field}"`));
|
|
483
|
+
process.exitCode = 1;
|
|
484
|
+
return;
|
|
485
|
+
}
|
|
486
|
+
body[field] = null;
|
|
487
|
+
}
|
|
488
|
+
return run((c) => c.patch(`/v1/people/${id}`, body));
|
|
489
|
+
});
|
|
490
|
+
person
|
|
491
|
+
.command("rm <id>")
|
|
492
|
+
.description("Archive a person (links are kept; restore with 'person restore')")
|
|
493
|
+
.action((id) => run((c) => c.del(`/v1/people/${id}`)));
|
|
494
|
+
person
|
|
495
|
+
.command("restore <id>")
|
|
496
|
+
.description("Unarchive a person")
|
|
497
|
+
.action((id) => run((c) => c.patch(`/v1/people/${id}`, { archived: false })));
|
|
498
|
+
person
|
|
499
|
+
.command("contacted <id>")
|
|
500
|
+
.description("Mark contacted: stamps the touch and restarts the cadence clock")
|
|
501
|
+
.option("--at <date>", "backdate the touch (ISO/epoch date in the past)")
|
|
502
|
+
.action((id, o) => run((c) => c.post(`/v1/people/${id}/contacted`, o.at ? { at: str(o.at) } : undefined)));
|
|
503
|
+
// "id" or "id=label" person-connection strings -> the API's {id, label} objects.
|
|
504
|
+
function parseConnections(input) {
|
|
505
|
+
if (!Array.isArray(input))
|
|
506
|
+
return undefined;
|
|
507
|
+
return input.map((s) => {
|
|
508
|
+
const i = s.indexOf("=");
|
|
509
|
+
return i === -1
|
|
510
|
+
? { id: s }
|
|
511
|
+
: { id: s.slice(0, i), label: s.slice(i + 1) };
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
const personLinkBody = (o) => ({
|
|
515
|
+
taskIds: Array.isArray(o.task) ? o.task : undefined,
|
|
516
|
+
projectIds: Array.isArray(o.project) ? o.project : undefined,
|
|
517
|
+
gardenIds: Array.isArray(o.garden) ? o.garden : undefined,
|
|
518
|
+
people: parseConnections(o.person),
|
|
519
|
+
});
|
|
520
|
+
person
|
|
521
|
+
.command("link <id>")
|
|
522
|
+
.description("Link a person to tasks / projects / gardens / other people")
|
|
523
|
+
.option("--task <id...>")
|
|
524
|
+
.option("--project <id...>")
|
|
525
|
+
.option("--garden <id...>")
|
|
526
|
+
.option("--person <id[=label]...>", 'connect to another person, e.g. --person p123=spouse (symmetric; re-link to change the label)')
|
|
527
|
+
.action((id, o) => run((c) => c.post(`/v1/people/${id}/links`, personLinkBody(o))));
|
|
528
|
+
person
|
|
529
|
+
.command("unlink <id>")
|
|
530
|
+
.description("Unlink a person from tasks / projects / gardens / other people")
|
|
531
|
+
.option("--task <id...>")
|
|
532
|
+
.option("--project <id...>")
|
|
533
|
+
.option("--garden <id...>")
|
|
534
|
+
.option("--person <id...>", "disconnect from another person")
|
|
535
|
+
.action((id, o) => run((c) => c.del(`/v1/people/${id}/links`, personLinkBody(o))));
|
|
389
536
|
// --- saved lists -----------------------------------------------------------
|
|
390
537
|
const listFilters = (o) => ({
|
|
391
538
|
q: str(o.q),
|
|
392
539
|
status: csv(o.status),
|
|
393
540
|
priority: csv(o.priority),
|
|
394
|
-
when: csv(o.when),
|
|
395
541
|
gardenId: str(o.garden),
|
|
396
542
|
tagIds: csv(o.tag),
|
|
397
543
|
includeCanceled: o.includeCanceled ? true : undefined,
|
|
@@ -401,7 +547,6 @@ const withListFilters = (cmd) => cmd
|
|
|
401
547
|
.option("--q <text>")
|
|
402
548
|
.option("--status <s...>", "backlog|todo|in_progress|done|canceled")
|
|
403
549
|
.option("--priority <p...>", "none|low|medium|high")
|
|
404
|
-
.option("--when <w...>", "today|anytime|someday")
|
|
405
550
|
.option("--garden <id>")
|
|
406
551
|
.option("--tag <id...>")
|
|
407
552
|
.option("--include-canceled")
|
|
@@ -435,7 +580,7 @@ lists
|
|
|
435
580
|
// --- views -----------------------------------------------------------------
|
|
436
581
|
program
|
|
437
582
|
.command("view <name>")
|
|
438
|
-
.description("A computed view: today | upcoming |
|
|
583
|
+
.description("A computed view: today | upcoming | overdue")
|
|
439
584
|
.option("--tz <iana>", "IANA timezone (defaults to the system timezone)")
|
|
440
585
|
.option("--limit <n>")
|
|
441
586
|
.option("--cursor <cursor>")
|
|
@@ -462,7 +607,7 @@ function systemTz() {
|
|
|
462
607
|
const review = program.command("review").description("The review system");
|
|
463
608
|
review
|
|
464
609
|
.command("queue")
|
|
465
|
-
.description("Items due for
|
|
610
|
+
.description("Items due now: task/project reviews + people due for contact")
|
|
466
611
|
.option("--garden <id>", "restrict to one garden")
|
|
467
612
|
.option("--limit <n>")
|
|
468
613
|
.action((o) => run((c) => c.get("/v1/reviews", { gardenId: str(o.garden), limit: num(o.limit) })));
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cpenned/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Open Brain CLI - a terminal client over the /v1 HTTP API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"node": ">=18"
|
|
27
27
|
},
|
|
28
28
|
"bin": {
|
|
29
|
-
"ob": "
|
|
30
|
-
"open-brain": "
|
|
29
|
+
"ob": "dist/index.js",
|
|
30
|
+
"open-brain": "dist/index.js"
|
|
31
31
|
},
|
|
32
32
|
"main": "./dist/index.js",
|
|
33
33
|
"files": [
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
name: open-brain-cli
|
|
3
3
|
description:
|
|
4
4
|
Drive the Open Brain `ob` CLI to manage tasks, projects, gardens, tags,
|
|
5
|
-
views, reviews, search, and triage from the terminal.
|
|
6
|
-
capture/list/update to-dos, plan a day, or script against
|
|
7
|
-
the /v1 API. Not for editing the Open Brain codebase itself.
|
|
5
|
+
people (personal CRM), views, reviews, search, and triage from the terminal.
|
|
6
|
+
Use when asked to capture/list/update to-dos, plan a day, or script against
|
|
7
|
+
Open Brain over the /v1 API. Not for editing the Open Brain codebase itself.
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Open Brain CLI (`ob`)
|
|
@@ -46,12 +46,13 @@ the repo instead? Build the package (`npm run build -w @cpenned/cli`) and call
|
|
|
46
46
|
|
|
47
47
|
| Area | Commands |
|
|
48
48
|
| --- | --- |
|
|
49
|
-
| tasks | `task create <title
|
|
49
|
+
| tasks | `task create <title> [--person <id…>]`, `task list [--person <id…>]`, `task get <id>`, `task update <id>`, `task rm <id>`, `task done <id>`, `task tag-add/<tag-remove> <id> --tag …`, `task create-batch`/`update-batch` |
|
|
50
50
|
| projects | `project create <name>`, `project list/get/update/rm` |
|
|
51
51
|
| gardens | `garden create <name>`, `garden list/get/update/rm` |
|
|
52
52
|
| tags | `tag create <name>`, `tag list/get/update`, `tag rm <id>` (detaches from every task) |
|
|
53
|
-
|
|
|
54
|
-
|
|
|
53
|
+
| people | `person create <name> [--relationship/--company/--email/--alias/--detail Label=value/--contact-every/--contact-unit …]`, `person list [query]` (searches name/alias/company/notes), `person get/update` (`update --clear <field…>` nulls fields), `person rm <id>` (archives), `person restore <id>`, `person contacted <id> [--at <date>]`, `person link/unlink <id> --task/--project/--garden …` |
|
|
54
|
+
| lists | `lists create <name> [--status/--priority/--garden/--tag/--q/--sort]`, `lists ls/get/update/rm` (saved smart lists) |
|
|
55
|
+
| views | `view <today\|upcoming\|overdue>`, `today` |
|
|
55
56
|
| reviews | `review queue`, `review garden <id>`, `review request <id>`, `review task <id>`, `review project <id>` |
|
|
56
57
|
| AI | `find <query…>`, `triage <input…>` |
|
|
57
58
|
| keys | `key create <name> --scope …`, `key list/rotate/revoke` |
|
|
@@ -69,7 +70,7 @@ ob view upcoming
|
|
|
69
70
|
|
|
70
71
|
# Capture
|
|
71
72
|
ob garden list # get a garden id
|
|
72
|
-
ob task create "Email the landlord" --garden <g> --
|
|
73
|
+
ob task create "Email the landlord" --garden <g> --deadline today --priority high
|
|
73
74
|
ob triage "call dentist, buy milk, draft Q3 deck" # AI splits into tasks
|
|
74
75
|
|
|
75
76
|
# Progress an item
|
|
@@ -81,9 +82,17 @@ ob lists create "Hot" --priority high --status todo in_progress
|
|
|
81
82
|
ob lists ls # then open one in the web app
|
|
82
83
|
|
|
83
84
|
# Review cadence
|
|
84
|
-
ob review queue
|
|
85
|
+
ob review queue # tasks + projects due for review, people due for contact
|
|
85
86
|
ob review task <taskId> # mark reviewed → restarts its clock
|
|
86
87
|
|
|
88
|
+
# Personal CRM
|
|
89
|
+
ob person create "Megan" --relationship wife --alias Meg --contact-every 1 --contact-unit week
|
|
90
|
+
ob person link <personId> --garden <gardenId> --task <taskId>
|
|
91
|
+
ob person contacted <personId> # reached out → restarts the contact clock
|
|
92
|
+
ob person contacted <personId> --at -3d # backdate: the call happened 3 days ago
|
|
93
|
+
ob person update <personId> --clear contactInterval # stop reach-out reminders
|
|
94
|
+
ob task list --person <personId> --status todo # a person's open tasks
|
|
95
|
+
|
|
87
96
|
# Find something
|
|
88
97
|
ob find quarterly report
|
|
89
98
|
ob find taxes --deadline-before friday # narrow hits to a due window
|
|
@@ -106,11 +115,17 @@ Lists use a `{ items, hasMore, nextCursor }` envelope — page with `--cursor`.
|
|
|
106
115
|
separate empty vault; use a key minted in the web Settings page to share data
|
|
107
116
|
with the web UI and email.
|
|
108
117
|
- Dates (`--defer`, `--deadline`) accept ISO, epoch ms, or relative shorthand
|
|
109
|
-
(`today`, `tomorrow`, `+3d`, `+2w`, `+1m`). `--
|
|
110
|
-
|
|
118
|
+
(`today`, `tomorrow`, `+3d`, `+2w`, `+1m`). `--defer` hides a task from
|
|
119
|
+
general lists until that date; `--deadline` drives the Today view.
|
|
111
120
|
- Statuses are `backlog | todo | in_progress | done | canceled`; `--include-canceled`
|
|
112
121
|
surfaces canceled items, which list filters hide by default.
|
|
113
122
|
- Status transitions are enforced server-side; an illegal move returns an error,
|
|
114
123
|
not a silent no-op.
|
|
115
124
|
- Scopes gate commands: `key` needs `keys:manage`; `find`/`triage` need
|
|
116
|
-
`ai:invoke
|
|
125
|
+
`ai:invoke`; `person` needs `people:read|write` (keys minted before the
|
|
126
|
+
People feature lack it unless they carry `*`). A `*` (owner) key unlocks
|
|
127
|
+
everything.
|
|
128
|
+
- `person rm` archives (links kept); `person restore <id>` undoes it. Completing
|
|
129
|
+
a task linked to a person only stamps their last-contacted date;
|
|
130
|
+
`person contacted` is what resets the cadence clock (`--at` backdates the
|
|
131
|
+
touch). `person contacted` also works with a `reviews:write` key.
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: open-brain-mcp
|
|
3
|
+
description:
|
|
4
|
+
Use the Open Brain MCP tools (create_task, list_tasks, get_view, get_reviews,
|
|
5
|
+
find_tasks, ai_triage, create_person, …) to manage a user's tasks, projects,
|
|
6
|
+
gardens, tags, people (personal CRM), views, and reviews. Use when an agent
|
|
7
|
+
should read or write Open Brain to-dos through the connected MCP server. Not
|
|
8
|
+
for editing the Open Brain codebase.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Open Brain MCP
|
|
12
|
+
|
|
13
|
+
The `open-brain` MCP server is a thin adapter over the `/v1` HTTP API: every
|
|
14
|
+
tool is one authenticated call through the same guard layer as any other client.
|
|
15
|
+
Validation, the status machine, ownership, and scopes are enforced server-side —
|
|
16
|
+
a bad request returns a tool error, so prefer acting and reacting to errors over
|
|
17
|
+
pre-guessing constraints.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- The user asks to capture, list, update, complete, or organize to-dos.
|
|
22
|
+
- Planning ("what's on for today?"), reviewing, or searching their tasks.
|
|
23
|
+
- Triaging a messy brain dump into structured, garden-assigned tasks.
|
|
24
|
+
|
|
25
|
+
## When not to use
|
|
26
|
+
|
|
27
|
+
- Editing the Open Brain app/backend source — that is ordinary repo work.
|
|
28
|
+
- The user is in a terminal and wants shell commands — see `open-brain-cli`.
|
|
29
|
+
|
|
30
|
+
## Mental model
|
|
31
|
+
|
|
32
|
+
- **Garden** = a life domain (Work, Health, …). Tasks/projects live in exactly
|
|
33
|
+
one garden. A garden's Markdown `context` is what AI triage reads to assign
|
|
34
|
+
tasks, so good context = good triage.
|
|
35
|
+
- **Task / project** share one status machine mirroring Linear's states:
|
|
36
|
+
`backlog → todo → in_progress → done` (or `canceled`). Reopening a `done`/
|
|
37
|
+
`canceled` item goes back to `todo`. `deferDate` hides an item from general
|
|
38
|
+
lists until that date; `deadline` drives the Today view (anything due today
|
|
39
|
+
or earlier shows there).
|
|
40
|
+
- **Review** = a spaced cadence; items become "due for review" and you mark them
|
|
41
|
+
reviewed to restart the clock.
|
|
42
|
+
- **Person** = a personal-CRM record (relationship, work, contact info, key
|
|
43
|
+
dates, freeform details, notes) linkable many-to-many to tasks, projects, and
|
|
44
|
+
gardens. A person's `contactInterval` works like a review cadence: when it
|
|
45
|
+
elapses they show up in `get_reviews` under `people`, and `mark_contacted`
|
|
46
|
+
restarts the clock. Names + `aliases` are how mentions resolve — when the user
|
|
47
|
+
mentions someone ("call Megan"), `list_people`, match name/aliases, and link.
|
|
48
|
+
|
|
49
|
+
## Tool catalog
|
|
50
|
+
|
|
51
|
+
- **Tasks**: `create_task`, `list_tasks` (filter or multi-get via `ids`),
|
|
52
|
+
`get_task`, `update_task` (drives status), `delete_task`, batch
|
|
53
|
+
`create_tasks`/`update_tasks`, `add_task_tags`/`remove_task_tags`.
|
|
54
|
+
- **Projects**: `create_project`, `list_projects`, `get_project`,
|
|
55
|
+
`update_project`, `delete_project`, `create_projects`/`update_projects`.
|
|
56
|
+
- **Gardens**: `create_garden`, `list_gardens`, `get_garden`, `update_garden`,
|
|
57
|
+
`delete_garden` (archives).
|
|
58
|
+
- **Tags**: `create_tag`, `list_tags`, `get_tag`, `update_tag`, `delete_tag`
|
|
59
|
+
(detaches from every task).
|
|
60
|
+
- **People**: `create_person`, `list_people` (`query` searches name, aliases,
|
|
61
|
+
relationship, company, role, email, phone, notes, details), `get_person`,
|
|
62
|
+
`update_person`
|
|
63
|
+
(null clears a field, e.g. `contactInterval: null`; `archived: false`
|
|
64
|
+
restores), `delete_person` (archives, links kept), `mark_contacted`
|
|
65
|
+
(optional `at` backdates the touch), `add_person_links`/`remove_person_links`
|
|
66
|
+
(`{id, taskIds?, projectIds?, gardenIds?}`). `create_task(s)` accept
|
|
67
|
+
`personIds` inline; `list_tasks` filters by `person` ids.
|
|
68
|
+
- **Saved lists** (named, reusable task-list filters): `list_saved_lists`,
|
|
69
|
+
`create_saved_list`, `update_saved_list`, `delete_saved_list`.
|
|
70
|
+
- **Views & reviews**: `get_view` (today/upcoming/overdue, timezone-aware),
|
|
71
|
+
`get_reviews` (due queue), `review_garden` (deep review),
|
|
72
|
+
`request_garden_review`, `mark_task_reviewed`, `mark_project_reviewed`.
|
|
73
|
+
- **AI**: `find_tasks` (hybrid keyword + semantic search), `ai_triage`
|
|
74
|
+
(brain dump → garden-assigned tasks).
|
|
75
|
+
- **UI (read-only)**: `ui_view`, `ui_review_queue`, `ui_garden_board` return
|
|
76
|
+
`ui://` HTML resources.
|
|
77
|
+
- **Keys**: `create_key`, `list_keys`, `rotate_key`, `revoke_key`.
|
|
78
|
+
|
|
79
|
+
## Workflows
|
|
80
|
+
|
|
81
|
+
- **Capture a brain dump** → `ai_triage` with the raw text. It returns
|
|
82
|
+
`{ created, clarifications, errors }`. If `clarifications` is non-empty, ask
|
|
83
|
+
the user those questions and re-run with the answers folded in — do not guess.
|
|
84
|
+
- **Plan today** → `get_view today`. Pass the user's IANA `tz` if known so the
|
|
85
|
+
day boundary is correct.
|
|
86
|
+
- **Add a task** → need a garden: `list_gardens` first, then `create_task` with
|
|
87
|
+
`gardenId`. Set `deadline` for "today"/hard dates — that's what lands it in
|
|
88
|
+
the Today view. `create_task`/`create_tasks` accept `tagIds`, `recurrence`,
|
|
89
|
+
`deferDate`, and `deadline` **inline** — set them at creation, never
|
|
90
|
+
create-then-patch.
|
|
91
|
+
`deferDate`/`deadline` accept strings (`"today"`, `"tomorrow"`, `"+3d"`,
|
|
92
|
+
`"2026-06-30"`), so no client-side date math.
|
|
93
|
+
- **Recurring task** → set `recurrence` at creation:
|
|
94
|
+
`{mode, frequency, interval, byWeekday?}`. `mode`: `on_schedule` (next = prior
|
|
95
|
+
due + interval; self-heals missed days) or `on_completion` (next = completed +
|
|
96
|
+
interval). `frequency`: `day|week|month|year`. `byWeekday` (`0=Sun..6=Sat`)
|
|
97
|
+
is **weekly only**. A recurrence with no `deferDate`/`deadline` stays dateless;
|
|
98
|
+
give it a date if you want each occurrence dated.
|
|
99
|
+
- **Complete / advance** → `update_task` with the next `status`. Completing a
|
|
100
|
+
recurring task spawns its next occurrence automatically.
|
|
101
|
+
- **Weekly review** → `get_reviews` for what's due; `review_garden <id>` to walk
|
|
102
|
+
a whole garden; `mark_task_reviewed` / `mark_project_reviewed` to clear items.
|
|
103
|
+
`get_reviews` also returns `people` due for contact — clear those with
|
|
104
|
+
`mark_contacted` once the user has actually reached out.
|
|
105
|
+
- **Task mentions a person** → resolve via `list_people` with `query` (matches
|
|
106
|
+
name/aliases case-insensitively), then pass `personIds` to `create_task` — or
|
|
107
|
+
`add_person_links` for an existing task. If the person is linked to exactly
|
|
108
|
+
one garden and the user gave no garden, prefer that garden. `ai_triage` does
|
|
109
|
+
all of this automatically for brain dumps.
|
|
110
|
+
- **Stay in touch cadence** → `create_person`/`update_person` with
|
|
111
|
+
`contactInterval` (e.g. `{value: 2, unit: "week"}`); stop reminders with
|
|
112
|
+
`contactInterval: null`. Completing a task linked to a person stamps their
|
|
113
|
+
`lastContactedAt` but does NOT reset the cadence; only `mark_contacted`
|
|
114
|
+
reschedules ("I called her Tuesday" → `mark_contacted` with `at`).
|
|
115
|
+
- **A person's open tasks** → `list_tasks` with `person: [<personId>]` plus the
|
|
116
|
+
usual status filters.
|
|
117
|
+
- **Find something** → `find_tasks` (handles fuzzy/semantic queries; narrow to a
|
|
118
|
+
due window with `deadlineBefore` / `deadlineAfter`, e.g. "friday" or epoch ms).
|
|
119
|
+
|
|
120
|
+
## Gotchas
|
|
121
|
+
|
|
122
|
+
- Tools act on the vault behind the configured API key. If the user's web tasks
|
|
123
|
+
are missing, the key likely points at a different vault — it should be minted
|
|
124
|
+
from the web app's Settings page, not `apiKeys:bootstrap`.
|
|
125
|
+
- Scopes gate tools: resource tools need `<resource>:read|write` (people tools
|
|
126
|
+
`people:read|write`), review tools `reviews:*`, `find_tasks`/`ai_triage` need
|
|
127
|
+
`ai:invoke`, the `*_key` tools need `keys:manage`. A missing scope returns a
|
|
128
|
+
403 tool error. Keys minted before the People feature won't have `people:*`
|
|
129
|
+
unless they carry `*`.
|
|
130
|
+
- `delete_person` archives (links kept); restore with `update_person
|
|
131
|
+
{archived: false}`. Birthdays/anniversaries are `"YYYY-MM-DD"` or `"MM-DD"`
|
|
132
|
+
strings, not timestamps. `mark_contacted` also works with a `reviews:write`
|
|
133
|
+
key (it clears the review queue's people section).
|
|
134
|
+
- Created secrets (`create_key`/`rotate_key`) are shown ONCE — surface them to
|
|
135
|
+
the user immediately; they are never retrievable again.
|
|
136
|
+
- Prefer batch tools (`create_tasks`, `update_tasks`) over many single calls
|
|
137
|
+
when acting on several items at once.
|
|
138
|
+
- **Tagging is cheapest at creation.** Pass `tagIds` to `create_task(s)`. There
|
|
139
|
+
is **no bulk tag tool** and `update_task` has **no** `tagIds` field, so tagging
|
|
140
|
+
*after* creation costs one `add_task_tags`/`remove_task_tags` call per task
|
|
141
|
+
(each keyed by `id`, the task id). For tasks you're creating now, inline
|
|
142
|
+
`tagIds`; only fall back to `add_task_tags` for tasks that already exist.
|
|
143
|
+
- Tags are the only structure projects can't hold — **only tasks are
|
|
144
|
+
taggable**, projects are not. Tag the task, not its project.
|
|
145
|
+
- `review_garden` returns the garden's **entire** project+task history (incl.
|
|
146
|
+
every done item). For active/long-lived gardens this can blow the token
|
|
147
|
+
budget and spill to a file. **Prefer `get_view`/`list_tasks`/`list_projects`
|
|
148
|
+
filtered by status** (e.g. `status=todo,in_progress`) for the open work; reach
|
|
149
|
+
for `review_garden` only on small gardens or when you truly need the history.
|
|
150
|
+
- Paginated reads (`list_tasks`, `list_projects`, `get_view`) return a **full
|
|
151
|
+
page per request** — the server drains internally, so you will **not** get an
|
|
152
|
+
empty `items` with a `nextCursor` (that earlier "empty first page" was a
|
|
153
|
+
server bug, now fixed). Only follow `nextCursor` when you need *more than one
|
|
154
|
+
page* of results; for a normal "what's due today" a single `get_view today`
|
|
155
|
+
call is enough.
|
|
156
|
+
- Tool param names aren't uniform: `get_garden` and `add_task_tags` take `id`,
|
|
157
|
+
while `review_garden` and `list_projects` take `gardenId`. Don't memorize —
|
|
158
|
+
act and read the validation error, which names the missing field.
|