lifeos-cli 0.2.0 → 0.3.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 ADDED
@@ -0,0 +1,275 @@
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/MichielMAnalytics/lifeos/main/packages/cli/logo.svg" alt="LifeOS" width="320" />
3
+ </p>
4
+
5
+ <h3 align="center">Personal Life Operating System</h3>
6
+
7
+ <p align="center">
8
+ Manage tasks, goals, journals, day plans, weekly plans, ideas, thoughts, wins, resources, reminders, and reviews — all from your terminal.
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://www.npmjs.com/package/lifeos-cli"><img src="https://img.shields.io/npm/v/lifeos-cli.svg" alt="npm version" /></a>
13
+ <a href="https://www.npmjs.com/package/lifeos-cli"><img src="https://img.shields.io/npm/l/lifeos-cli.svg" alt="license" /></a>
14
+ </p>
15
+
16
+ ---
17
+
18
+ ## Install
19
+
20
+ ```bash
21
+ npm install -g lifeos-cli
22
+ ```
23
+
24
+ On first install, the CLI will offer to install agent skills for Claude Code or Codex.
25
+
26
+ ## Setup
27
+
28
+ ```bash
29
+ lifeos config set-url <your-convex-site-url>
30
+ lifeos config set-key <your-api-key> # lifeos_sk_...
31
+ lifeos whoami # verify it works
32
+ ```
33
+
34
+ Generate an API key from your LifeOS dashboard settings page.
35
+
36
+ ## Agent Skills
37
+
38
+ LifeOS ships with embedded skills that let AI coding agents (Claude Code, Codex) manage your LifeOS hands-free.
39
+
40
+ ```bash
41
+ lifeos skills install # install for Claude Code (default)
42
+ lifeos skills install --agent codex # install for Codex
43
+ ```
44
+
45
+ ### `/lifeos-init`
46
+
47
+ The init skill walks your agent through setting up LifeOS: connecting the CLI, learning about your goals and routines, creating your first goals and tasks, and setting up daily rhythms. Just type `/lifeos-init` in your agent.
48
+
49
+ After setup, your agent can:
50
+ - Pull your morning briefing and summarize your day
51
+ - Capture ideas, thoughts, and wins as you mention them
52
+ - Write your evening journal and log wins
53
+ - Run weekly reviews and help plan the next week
54
+
55
+ ---
56
+
57
+ ## Commands
58
+
59
+ Every command supports `--json` for machine-readable output. IDs can be passed as full Convex IDs or short 8-character prefixes (e.g. `ks7bgmwf`).
60
+
61
+ ### Auth & Config
62
+
63
+ ```
64
+ lifeos whoami Show current authenticated user
65
+ lifeos config set-url <url> Set the API server URL
66
+ lifeos config set-key <key> Set the API key
67
+ lifeos config show Display current config (URL + masked key)
68
+ ```
69
+
70
+ ### Tasks
71
+
72
+ ```
73
+ lifeos task list [options] List tasks
74
+ -s, --status <status> Filter: todo, done, dropped
75
+ -d, --due <due> Filter: today, tomorrow, week, overdue, all
76
+
77
+ lifeos task create <title> [options] Create a task
78
+ -d, --due <date> Due date (YYYY-MM-DD)
79
+ -p, --project <id> Link to project
80
+ -g, --goal <id> Link to goal
81
+ -n, --notes <notes> Add notes
82
+
83
+ lifeos task show <id> Show task details
84
+ lifeos task complete <id> Mark task as done
85
+ lifeos task update <id> [options] Update a task
86
+ -t, --title <title> New title
87
+ -d, --due <date> Due date
88
+ -n, --notes <notes> Notes
89
+ -g, --goal <id> Goal ID
90
+
91
+ lifeos task delete <id> Delete a task
92
+ lifeos task bulk-complete <ids...> Mark multiple tasks as done
93
+ ```
94
+
95
+ ### Projects
96
+
97
+ ```
98
+ lifeos project list [options] List projects
99
+ -s, --status <status> Filter: active, completed, archived
100
+
101
+ lifeos project create <title> [options] Create a project
102
+ -d, --description <text> Description
103
+
104
+ lifeos project show <id> Show project details
105
+ ```
106
+
107
+ ### Goals
108
+
109
+ ```
110
+ lifeos goal list [options] List goals
111
+ -q, --quarter <quarter> Filter by quarter (e.g. 2026-Q2)
112
+ -s, --status <status> Filter: active, completed, dropped
113
+
114
+ lifeos goal create <title> [options] Create a goal
115
+ -t, --target-date <date> Target date (YYYY-MM-DD)
116
+ -q, --quarter <quarter> Quarter (e.g. 2026-Q2)
117
+ -d, --description <desc> Description
118
+
119
+ lifeos goal show <id> Show goal details
120
+ lifeos goal health [id] Show health for one goal or all active goals
121
+ ```
122
+
123
+ ### Journal
124
+
125
+ ```
126
+ lifeos journal [date] Show journal entry (default: today)
127
+ lifeos journal write [options] Write today's journal entry
128
+ --mit <text> Most Important Thing
129
+ --p1 <text> Priority 1
130
+ --p2 <text> Priority 2
131
+ --notes <text> Notes
132
+
133
+ lifeos journal wins [date] List wins for a date (default: today)
134
+ ```
135
+
136
+ ### Day Plans
137
+
138
+ ```
139
+ lifeos plan today Show today's plan
140
+ lifeos plan tomorrow Show tomorrow's plan
141
+ lifeos plan set <date> [options] Create or update a day plan
142
+ -w, --wake <time> Wake time (HH:MM)
143
+ --mit <taskId> MIT task ID
144
+ --p1 <taskId> P1 task ID
145
+ --p2 <taskId> P2 task ID
146
+
147
+ lifeos plan complete-mit Mark MIT as done for today
148
+ lifeos plan complete-p1 Mark P1 as done for today
149
+ lifeos plan complete-p2 Mark P2 as done for today
150
+ ```
151
+
152
+ ### Weekly Plans
153
+
154
+ ```
155
+ lifeos week [week-start] Show weekly plan (default: current Monday)
156
+ lifeos week create [options] Create weekly plan for this week
157
+ -t, --theme <theme> Week theme
158
+
159
+ lifeos week score <1-10> Set review score for this week
160
+ ```
161
+
162
+ ### Quick Capture
163
+
164
+ ```
165
+ lifeos idea <content> [options] Capture an idea
166
+ -a, --actionability <level> high, medium, or low
167
+
168
+ lifeos thought <content> [options] Capture a thought
169
+ -t, --title <title> Optional title
170
+
171
+ lifeos win <content> Record a win
172
+
173
+ lifeos resource <title> [options] Save a resource
174
+ -u, --url <url> URL
175
+ -t, --type <type> article, tool, book, video, other
176
+ ```
177
+
178
+ ### Reviews
179
+
180
+ ```
181
+ lifeos review list [options] List reviews
182
+ -t, --type <type> Filter: daily, weekly, monthly, quarterly
183
+
184
+ lifeos review daily Trigger daily review
185
+ lifeos review weekly Trigger weekly review
186
+ lifeos review show <id> Show review details
187
+ ```
188
+
189
+ ### Reminders
190
+
191
+ ```
192
+ lifeos reminder list [options] List reminders
193
+ -s, --status <status> Filter: pending, delivered, snoozed, done
194
+
195
+ lifeos reminder create <title> [options] Create a reminder
196
+ -a, --at <datetime> Scheduled time (ISO datetime)
197
+ -b, --body <body> Reminder body
198
+
199
+ lifeos reminder snooze <id> [options] Snooze a reminder
200
+ -m, --minutes <min> Duration in minutes (default: 60)
201
+
202
+ lifeos reminder done <id> Mark reminder as done
203
+ ```
204
+
205
+ ### Search
206
+
207
+ ```
208
+ lifeos search <query> [options] Search across all entities
209
+ -t, --type <type> Filter: tasks, goals, ideas, journal, resources
210
+ ```
211
+
212
+ ### Triggers
213
+
214
+ ```
215
+ lifeos trigger <name> Fire a named trigger
216
+ ```
217
+
218
+ Available triggers:
219
+
220
+ | Trigger | Description |
221
+ |---------|-------------|
222
+ | `morning-briefing` | Pull today's plan, tasks, and reminders |
223
+ | `daily-review` | Summarize the day's activity |
224
+ | `weekly-review` | Summarize the week with stats |
225
+ | `overdue-triage` | Surface overdue tasks for triage |
226
+ | `reminder-check` | Check pending reminders |
227
+ | `goal-health` | Health check across all active goals |
228
+
229
+ ### Dashboard Config
230
+
231
+ ```
232
+ lifeos dashboard config Show current dashboard configuration
233
+ lifeos dashboard nav-mode <mode> Set nav mode: sidebar or header
234
+ lifeos dashboard nav-order <pages...> Set page order (e.g. today tasks goals)
235
+ lifeos dashboard hide <page> Hide a page from navigation
236
+ lifeos dashboard show <page> Unhide a page
237
+ lifeos dashboard preset <page> <preset> Set page preset
238
+ lifeos dashboard presets <page> List available presets for a page
239
+ lifeos dashboard reset Reset dashboard to defaults
240
+ ```
241
+
242
+ ### Undo
243
+
244
+ ```
245
+ lifeos undo Undo the last mutation
246
+ ```
247
+
248
+ ---
249
+
250
+ ## Daily Rhythm
251
+
252
+ LifeOS is built around the **MIT + P1 + P2** priority system:
253
+
254
+ - **MIT** — Most Important Thing. The one task that makes your day a success.
255
+ - **P1** — Priority 1. Important but secondary.
256
+ - **P2** — Priority 2. Nice to get done.
257
+
258
+ Each day plan has a wake time, your three priorities linked to tasks, and optional time-block schedule. Journals track reflections with the same MIT/P1/P2 structure plus wins.
259
+
260
+ ## Architecture
261
+
262
+ ```
263
+ lifeos-cli
264
+ ├── dist/lifeos.mjs Single-file bundle (ships to npm)
265
+ ├── skills/ Embedded agent skills
266
+ │ └── lifeos-init/ Setup & onboarding skill
267
+ └── scripts/
268
+ └── postinstall.mjs Auto-installs skills on npm install -g
269
+ ```
270
+
271
+ The CLI talks to a Convex backend via HTTP API, authenticated with API keys (`Bearer lifeos_sk_...`). It's part of the [LifeOS monorepo](https://github.com/MichielMAnalytics/lifeos) which also includes the real-time dashboard and shared type definitions.
272
+
273
+ ## License
274
+
275
+ MIT
package/dist/lifeos.mjs CHANGED
@@ -3236,7 +3236,7 @@ var planCommand = new Command("plan").description("Manage day plans");
3236
3236
  planCommand.command("today").description("Show today's plan").action(async () => {
3237
3237
  try {
3238
3238
  const client = createClient();
3239
- const res = await client.get(`/api/v1/plans/${todayStr2()}`);
3239
+ const res = await client.get(`/api/v1/day-plans/${todayStr2()}`);
3240
3240
  if (isJsonMode()) {
3241
3241
  printJson(res);
3242
3242
  return;
@@ -3250,7 +3250,7 @@ planCommand.command("today").description("Show today's plan").action(async () =>
3250
3250
  planCommand.command("tomorrow").description("Show tomorrow's plan").action(async () => {
3251
3251
  try {
3252
3252
  const client = createClient();
3253
- const res = await client.get(`/api/v1/plans/${tomorrowStr()}`);
3253
+ const res = await client.get(`/api/v1/day-plans/${tomorrowStr()}`);
3254
3254
  if (isJsonMode()) {
3255
3255
  printJson(res);
3256
3256
  return;
@@ -3273,7 +3273,7 @@ planCommand.command("set <date>").description("Create or update a day plan").opt
3273
3273
  body.p1TaskId = opts.p1;
3274
3274
  if (opts.p2)
3275
3275
  body.p2TaskId = opts.p2;
3276
- const res = await client.put(`/api/v1/plans/${date}`, body);
3276
+ const res = await client.put(`/api/v1/day-plans/${date}`, body);
3277
3277
  if (isJsonMode()) {
3278
3278
  printJson(res);
3279
3279
  return;
@@ -3287,7 +3287,7 @@ planCommand.command("set <date>").description("Create or update a day plan").opt
3287
3287
  planCommand.command("complete-mit").description("Mark MIT as done for today").action(async () => {
3288
3288
  try {
3289
3289
  const client = createClient();
3290
- const res = await client.patch(`/api/v1/plans/${todayStr2()}`, { mitDone: true });
3290
+ const res = await client.patch(`/api/v1/day-plans/${todayStr2()}`, { mitDone: true });
3291
3291
  if (isJsonMode()) {
3292
3292
  printJson(res);
3293
3293
  return;
@@ -3301,7 +3301,7 @@ planCommand.command("complete-mit").description("Mark MIT as done for today").ac
3301
3301
  planCommand.command("complete-p1").description("Mark P1 as done for today").action(async () => {
3302
3302
  try {
3303
3303
  const client = createClient();
3304
- const res = await client.patch(`/api/v1/plans/${todayStr2()}`, { p1Done: true });
3304
+ const res = await client.patch(`/api/v1/day-plans/${todayStr2()}`, { p1Done: true });
3305
3305
  if (isJsonMode()) {
3306
3306
  printJson(res);
3307
3307
  return;
@@ -3315,7 +3315,7 @@ planCommand.command("complete-p1").description("Mark P1 as done for today").acti
3315
3315
  planCommand.command("complete-p2").description("Mark P2 as done for today").action(async () => {
3316
3316
  try {
3317
3317
  const client = createClient();
3318
- const res = await client.patch(`/api/v1/plans/${todayStr2()}`, { p2Done: true });
3318
+ const res = await client.patch(`/api/v1/day-plans/${todayStr2()}`, { p2Done: true });
3319
3319
  if (isJsonMode()) {
3320
3320
  printJson(res);
3321
3321
  return;
package/logo.svg ADDED
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 229 128" width="229" height="128">
2
+ <image href="data:image/png;base64,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" x="14.0" y="14.0" width="67.33333333333333" height="100.0" image-rendering="crisp-edges"/>
3
+ <text x="93.33333333333333" y="76.0" font-family="Georgia, 'Liberation Serif', serif" font-size="55.0" font-weight="normal" fill="#FFFFFF">Life</text>
4
+ <text x="188.33333333333334" y="76.0" font-family="Georgia, 'Liberation Serif', serif" font-size="30.0" font-weight="300" fill="#A0A0A0">os</text>
5
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lifeos-cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "LifeOS CLI — manage your life operating system from the terminal",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -19,8 +19,16 @@
19
19
  },
20
20
  "files": [
21
21
  "dist/lifeos.mjs",
22
- "scripts/postinstall.mjs"
22
+ "scripts/postinstall.mjs",
23
+ "logo.svg",
24
+ "README.md"
23
25
  ],
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/MichielMAnalytics/lifeos.git",
29
+ "directory": "packages/cli"
30
+ },
31
+ "homepage": "https://github.com/MichielMAnalytics/lifeos#readme",
24
32
  "scripts": {
25
33
  "build": "bun run scripts/build.ts",
26
34
  "dev": "bun run src/index.ts",