agentrem 1.3.0 → 1.4.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 CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/agentrem)](https://www.npmjs.com/package/agentrem)
4
4
  [![CI](https://github.com/fraction12/agentrem/actions/workflows/ci.yml/badge.svg)](https://github.com/fraction12/agentrem/actions/workflows/ci.yml)
5
- [![Tests](https://img.shields.io/badge/tests-292%20passing-brightgreen)](https://github.com/fraction12/agentrem)
5
+ [![Tests](https://img.shields.io/badge/tests-392%20passing-brightgreen)](https://github.com/fraction12/agentrem)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
  [![Node.js](https://img.shields.io/node/v/agentrem)](https://nodejs.org)
8
8
  [![MCP](https://img.shields.io/badge/MCP-compatible-blue)](https://modelcontextprotocol.io)
9
9
 
10
- Structured reminders CLI + MCP server that gives AI agents persistent, priority-aware memory with triggers, recurrence, dependencies, and full-text search.
10
+ Structured reminders CLI + MCP server that gives AI agents persistent, priority-aware memory with triggers, recurrence, dependencies, full-text search, and native OS notifications.
11
11
 
12
- **Why?** AI agents forget between sessions. agentrem gives them a reminder system that persists across sessions, triggers on time/keywords/conditions, and fits within token budgets.
12
+ **Why?** AI agents forget between sessions. agentrem gives them a reminder system that persists across sessions, triggers on time/keywords/conditions, fires native desktop notifications, and fits within token budgets.
13
13
 
14
14
  ## Install
15
15
 
@@ -56,7 +56,7 @@ agentrem add "<content>" --due "<when>" --priority <1-5> --tags "<tags>"
56
56
  **3. That's it.** Next time you tell Claude Code "remind me to deploy tomorrow at 9am", it runs:
57
57
 
58
58
  ```bash
59
- agentrem add "Deploy to production" --due "tomorrow 9am" --priority 2
59
+ agentrem add "Deploy to production" --due "tomorrow" --priority 2
60
60
  ```
61
61
 
62
62
  Next session, `agentrem check` surfaces it automatically.
@@ -125,9 +125,17 @@ agentrem complete <id>
125
125
  ## Quick Start
126
126
 
127
127
  ```bash
128
+ # Run the interactive walkthrough (first time)
129
+ agentrem quickstart
130
+
128
131
  # Time-triggered reminder
129
132
  agentrem add "Deploy v2.1 to staging" --due "+2h" --priority 2 --tags "deploy,staging"
130
133
 
134
+ # Natural language dates
135
+ agentrem add "Send weekly report" --due "tomorrow" --priority 2
136
+ agentrem add "Check alerts" --due "in 30 minutes"
137
+ agentrem add "Quarterly review" --due "2026-04-01" --priority 3
138
+
131
139
  # Keyword-triggered (fires when text matches)
132
140
  agentrem add "Review security checklist" --trigger keyword --keywords "deploy,release" --match any
133
141
 
@@ -135,7 +143,7 @@ agentrem add "Review security checklist" --trigger keyword --keywords "deploy,re
135
143
  agentrem add "Check CI pipeline status" --trigger session
136
144
 
137
145
  # Recurring weekly reminder
138
- agentrem add "Weekly sync prep" --due "monday 9am" --recur 1w
146
+ agentrem add "Weekly sync prep" --due "2026-02-24T09:00:00" --recur 1w
139
147
 
140
148
  # Check what's triggered
141
149
  agentrem check
@@ -148,6 +156,9 @@ agentrem search "deploy staging"
148
156
 
149
157
  # Complete
150
158
  agentrem complete <id>
159
+
160
+ # Run self-diagnostics
161
+ agentrem doctor
151
162
  ```
152
163
 
153
164
  ## CLI Commands
@@ -170,6 +181,10 @@ agentrem complete <id>
170
181
  | `export` | Export to JSON |
171
182
  | `import <file>` | Import from JSON |
172
183
  | `schema` | Show database schema |
184
+ | `watch` | Background daemon: poll + fire OS notifications |
185
+ | `doctor` | Self-diagnostic check |
186
+ | `quickstart` | Interactive first-run walkthrough |
187
+ | `setup` | Print CLAUDE.md snippet (`--mcp` for MCP config) |
173
188
 
174
189
  ## Trigger Types
175
190
 
@@ -192,8 +207,80 @@ agentrem complete <id>
192
207
  | 4 | ⚪ Low | Counted but not surfaced |
193
208
  | 5 | 💤 Someday | Skipped entirely |
194
209
 
210
+ ## Natural Language Dates
211
+
212
+ `--due` (and `--until`, `--decay`) accept many formats:
213
+
214
+ ```bash
215
+ --due "now" # Immediately
216
+ --due "today" # Today at 23:59
217
+ --due "tomorrow" # Tomorrow at 09:00
218
+ --due "in 5 minutes" # Relative natural language
219
+ --due "in 2 hours"
220
+ --due "in 3 days"
221
+ --due "in 1 week"
222
+ --due "+5m" # Short relative
223
+ --due "+2h"
224
+ --due "+3d"
225
+ --due "+1w"
226
+ --due "2026-02-22T09:00:00" # ISO datetime
227
+ --due "2026-02-22" # ISO date
228
+ ```
229
+
230
+ ## Background Watcher
231
+
232
+ `agentrem watch` polls for due reminders and fires native OS notifications. Perfect for always-on setups or running as a background service.
233
+
234
+ ```bash
235
+ # Run in foreground
236
+ agentrem watch # Poll every 30s
237
+ agentrem watch --interval 60 # Custom interval
238
+ agentrem watch --agent jarvis # Watch for a specific agent
239
+ agentrem watch --once # Single check, then exit
240
+ agentrem watch --verbose # Show poll log
241
+
242
+ # Service management (auto-start on boot)
243
+ agentrem watch --install # Install as launchd/systemd service
244
+ agentrem watch --install --interval 60 # Install with custom interval
245
+ agentrem watch --uninstall # Remove service
246
+ agentrem watch --status # Check if installed and running
247
+ ```
248
+
249
+ The watcher uses a 5-minute per-reminder cooldown to avoid notification spam. It checks all trigger types (`time`, `heartbeat`, `session`, `condition`) and runs escalation automatically.
250
+
251
+ **Service files:**
252
+ - macOS: `~/Library/LaunchAgents/com.agentrem.watch.plist`
253
+ - Linux: `~/.config/systemd/user/agentrem-watch.service`
254
+ - Logs: `~/.agentrem/logs/watch.log`
255
+
256
+ ## Native Notifications 🔔
257
+
258
+ agentrem ships a custom Swift app (`Agentrem.app`) in `assets/`. On macOS, notifications show:
259
+
260
+ - **App name:** "agentrem" with a 🔔 bell icon (not a terminal icon)
261
+ - **Priority-based sounds:** P1=Hero, P2=Ping, P3=Pop
262
+ - **Cheeky overdue messages:** e.g. "so... you forgot about this one 😅"
263
+
264
+ **Notification backend priority:**
265
+
266
+ | Backend | When used |
267
+ |---------|-----------|
268
+ | `Agentrem.app` | Preferred on macOS (bundled, no dependencies) |
269
+ | `terminal-notifier` | Fallback if app is missing |
270
+ | `osascript` | macOS AppleScript fallback |
271
+ | `console` | Linux / last resort |
272
+
273
+ To rebuild the Swift app from source:
274
+
275
+ ```bash
276
+ npm run build:notify
277
+ ```
278
+
195
279
  ## Features
196
280
 
281
+ - **Natural language dates** — `--due "tomorrow"`, `"in 5 minutes"`, `"+2h"`, ISO formats
282
+ - **Background watcher** — `agentrem watch` daemon with OS service management
283
+ - **Native notifications** — custom macOS app with bell icon, priority sounds, cheeky overdue messages
197
284
  - **Recurrence** — `--recur 1d/2w/1m` auto-creates next instance on completion
198
285
  - **Dependencies** — `--depends-on <id>` blocks until dependency is completed
199
286
  - **Decay** — `--decay <datetime>` auto-expires after a date
@@ -204,6 +291,8 @@ agentrem complete <id>
204
291
  - **Undo** — revert any change via audit history
205
292
  - **Multi-agent** — `--agent <name>` isolates reminders per agent
206
293
  - **Export/Import** — JSON backup with merge and replace modes
294
+ - **Doctor** — `agentrem doctor` runs self-diagnostics
295
+ - **Quickstart** — `agentrem quickstart` for interactive first-run setup
207
296
 
208
297
  ## MCP Server
209
298
 
@@ -230,7 +319,10 @@ git clone https://github.com/fraction12/agentrem.git
230
319
  cd agentrem
231
320
  npm install
232
321
  npm run build
233
- npm test # 292 tests
322
+ npm test # 392 tests
323
+
324
+ # Rebuild native notification app (Swift)
325
+ npm run build:notify
234
326
  ```
235
327
 
236
328
  ## License
@@ -14,5 +14,16 @@
14
14
  <string>APPL</string>
15
15
  <key>LSUIElement</key>
16
16
  <true/>
17
+ <key>CFBundleURLTypes</key>
18
+ <array>
19
+ <dict>
20
+ <key>CFBundleURLSchemes</key>
21
+ <array>
22
+ <string>agentrem</string>
23
+ </array>
24
+ <key>CFBundleURLName</key>
25
+ <string>com.agentrem.notifier</string>
26
+ </dict>
27
+ </array>
17
28
  </dict>
18
29
  </plist>
@@ -8,6 +8,7 @@ struct NotifyPayload: Decodable {
8
8
  let subtitle: String?
9
9
  let message: String
10
10
  let sound: String?
11
+ let reminderId: String?
11
12
  }
12
13
 
13
14
  // ── Read JSON file from argv[1] or process args ──────────────────────────────
@@ -23,49 +24,118 @@ for i in 1..<args.count {
23
24
  }
24
25
  }
25
26
 
26
- guard let path = jsonPath else {
27
- fputs("agentrem-notify: usage: open -a Agentrem.app --args <json-file>\n", stderr)
28
- exit(1)
29
- }
30
-
31
- guard let fileData = try? Data(contentsOf: URL(fileURLWithPath: path)),
32
- let payload = try? JSONDecoder().decode(NotifyPayload.self, from: fileData) else {
33
- fputs("agentrem-notify: failed to read or decode \(path)\n", stderr)
34
- exit(1)
27
+ // Parse payload if a JSON path was provided (nil when relaunched for action handling)
28
+ var parsedPayload: NotifyPayload? = nil
29
+ if let path = jsonPath {
30
+ if let fileData = try? Data(contentsOf: URL(fileURLWithPath: path)),
31
+ let decoded = try? JSONDecoder().decode(NotifyPayload.self, from: fileData) {
32
+ parsedPayload = decoded
33
+ } else {
34
+ fputs("agentrem-notify: failed to read or decode \(path)\n", stderr)
35
+ exit(1)
36
+ }
35
37
  }
36
38
 
37
39
  // ── Set up as proper NSApplication (required for UNUserNotificationCenter) ───
38
40
 
39
41
  class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDelegate {
40
- let payload: NotifyPayload
41
-
42
- init(payload: NotifyPayload) {
42
+ let payload: NotifyPayload?
43
+ var timeoutWorkItem: DispatchWorkItem?
44
+
45
+ init(payload: NotifyPayload?) {
43
46
  self.payload = payload
44
47
  super.init()
45
48
  }
46
-
49
+
50
+ // ── Shared logging ────────────────────────────────────────────────────────
51
+
52
+ func log(_ msg: String) {
53
+ let logPath = NSHomeDirectory() + "/.agentrem/logs/notify-actions.log"
54
+ let ts = ISO8601DateFormatter().string(from: Date())
55
+ let line = "[\(ts)] \(msg)\n"
56
+ if let fh = FileHandle(forWritingAtPath: logPath) {
57
+ fh.seekToEndOfFile()
58
+ fh.write(line.data(using: .utf8)!)
59
+ fh.closeFile()
60
+ } else {
61
+ // Create parent dirs if needed
62
+ try? FileManager.default.createDirectory(
63
+ atPath: NSHomeDirectory() + "/.agentrem/logs",
64
+ withIntermediateDirectories: true)
65
+ FileManager.default.createFile(atPath: logPath, contents: line.data(using: .utf8))
66
+ }
67
+ }
68
+
69
+ // ── Run `agentrem complete <reminderId>` ──────────────────────────────────
70
+
71
+ func runComplete(reminderId: String) {
72
+ log("Running: agentrem complete \(reminderId)")
73
+ let proc = Process()
74
+ proc.executableURL = URL(fileURLWithPath: "/opt/homebrew/bin/node")
75
+ proc.arguments = ["/opt/homebrew/lib/node_modules/agentrem/dist/index.js", "complete", reminderId]
76
+ proc.environment = ["HOME": NSHomeDirectory(), "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"]
77
+ do {
78
+ try proc.run()
79
+ proc.waitUntilExit()
80
+ log("Complete exited with code \(proc.terminationStatus)")
81
+ } catch {
82
+ log("ERROR running complete: \(error.localizedDescription)")
83
+ }
84
+ }
85
+
47
86
  func applicationDidFinishLaunching(_ notification: Notification) {
48
87
  let center = UNUserNotificationCenter.current()
49
88
  center.delegate = self
50
-
51
- center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
52
- if let error = error {
53
- fputs("agentrem-notify: auth error: \(error.localizedDescription)\n", stderr)
54
- NSApp.terminate(nil)
55
- return
56
- }
57
-
58
- guard granted else {
59
- fputs("agentrem-notify: notification permission not granted\n", stderr)
60
- NSApp.terminate(nil)
61
- return
89
+
90
+ // Register the "Complete ✅" action category so macOS shows the button.
91
+ // .foreground ensures the app is brought to foreground on tap, making
92
+ // the didReceive callback fire reliably even after relaunch.
93
+ let completeAction = UNNotificationAction(
94
+ identifier: "COMPLETE_REMINDER",
95
+ title: "Complete ✅",
96
+ options: []
97
+ )
98
+ let category = UNNotificationCategory(
99
+ identifier: "AGENTREM_REMINDER",
100
+ actions: [completeAction],
101
+ intentIdentifiers: [],
102
+ options: []
103
+ )
104
+ center.setNotificationCategories([category])
105
+
106
+ if payload != nil {
107
+ // Normal launch: request permission then fire the notification
108
+ center.requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
109
+ if let error = error {
110
+ fputs("agentrem-notify: auth error: \(error.localizedDescription)\n", stderr)
111
+ NSApp.terminate(nil)
112
+ return
113
+ }
114
+ guard granted else {
115
+ fputs("agentrem-notify: notification permission not granted\n", stderr)
116
+ NSApp.terminate(nil)
117
+ return
118
+ }
119
+ self.postNotification()
62
120
  }
63
-
64
- self.postNotification()
65
121
  }
122
+ // else: relaunched to handle an action or URL — wait for the delegate callback
123
+
124
+ // Terminate after 10 s whether or not we handle an action
125
+ scheduleTimeout(seconds: 10.0)
126
+ }
127
+
128
+ func scheduleTimeout(seconds: Double) {
129
+ let work = DispatchWorkItem {
130
+ NSApp.terminate(nil)
131
+ }
132
+ timeoutWorkItem = work
133
+ DispatchQueue.main.asyncAfter(deadline: .now() + seconds, execute: work)
66
134
  }
67
-
135
+
68
136
  func postNotification() {
137
+ guard let payload = payload else { return }
138
+
69
139
  let content = UNMutableNotificationContent()
70
140
  content.title = payload.title
71
141
  content.body = payload.message
@@ -75,24 +145,78 @@ class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDele
75
145
  } else {
76
146
  content.sound = .default
77
147
  }
78
-
148
+
149
+ // Attach category so the "Complete ✅" button appears
150
+ content.categoryIdentifier = "AGENTREM_REMINDER"
151
+
152
+ // Pass reminderId (and URL scheme backup) so we can call `agentrem complete`
153
+ if let reminderId = payload.reminderId {
154
+ content.userInfo = [
155
+ "reminderId": reminderId,
156
+ "url": "agentrem://complete/\(reminderId)"
157
+ ]
158
+ }
159
+
79
160
  let request = UNNotificationRequest(
80
161
  identifier: UUID().uuidString,
81
162
  content: content,
82
163
  trigger: nil
83
164
  )
84
-
165
+
85
166
  UNUserNotificationCenter.current().add(request) { error in
86
167
  if let error = error {
87
168
  fputs("agentrem-notify: post error: \(error.localizedDescription)\n", stderr)
88
- }
89
- // Give the notification a moment to display
90
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
91
169
  NSApp.terminate(nil)
92
170
  }
171
+ // Stay alive for 10 s to handle an immediate action tap;
172
+ // the timeout scheduled in applicationDidFinishLaunching covers this.
173
+ }
174
+ }
175
+
176
+ // ── URL scheme handler (agentrem://complete/<reminderId>) ─────────────────
177
+
178
+ func application(_ application: NSApplication, open urls: [URL]) {
179
+ for url in urls {
180
+ log("application:open URL=\(url.absoluteString)")
181
+ guard url.scheme == "agentrem",
182
+ url.host == "complete" else {
183
+ log("Unrecognised URL, ignoring: \(url.absoluteString)")
184
+ continue
185
+ }
186
+ // Path is "/<reminderId>" — strip leading slash
187
+ let reminderId = url.path.hasPrefix("/")
188
+ ? String(url.path.dropFirst())
189
+ : url.path
190
+ guard !reminderId.isEmpty else {
191
+ log("URL missing reminderId: \(url.absoluteString)")
192
+ continue
193
+ }
194
+ runComplete(reminderId: reminderId)
195
+ }
196
+ timeoutWorkItem?.cancel()
197
+ NSApp.terminate(nil)
198
+ }
199
+
200
+ // ── Action handler ────────────────────────────────────────────────────────
201
+
202
+ func userNotificationCenter(_ center: UNUserNotificationCenter,
203
+ didReceive response: UNNotificationResponse,
204
+ withCompletionHandler completionHandler: @escaping () -> Void) {
205
+ log("didReceive action=\(response.actionIdentifier) userInfo=\(response.notification.request.content.userInfo)")
206
+
207
+ if response.actionIdentifier == "COMPLETE_REMINDER" {
208
+ if let reminderId = response.notification.request.content.userInfo["reminderId"] as? String,
209
+ !reminderId.isEmpty {
210
+ runComplete(reminderId: reminderId)
211
+ } else {
212
+ log("No reminderId in userInfo")
213
+ }
93
214
  }
215
+ completionHandler()
216
+ timeoutWorkItem?.cancel()
217
+ NSApp.terminate(nil)
94
218
  }
95
-
219
+
96
220
  // Show notification even when app is in foreground
97
221
  func userNotificationCenter(_ center: UNUserNotificationCenter,
98
222
  willPresent notification: UNNotification,
@@ -103,6 +227,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, UNUserNotificationCenterDele
103
227
 
104
228
  let app = NSApplication.shared
105
229
  app.setActivationPolicy(.accessory) // No dock icon
106
- let delegate = AppDelegate(payload: payload)
230
+ let delegate = AppDelegate(payload: parsedPayload)
107
231
  app.delegate = delegate
108
232
  app.run()
@@ -1 +1 @@
1
- {"version":3,"file":"date-parser.d.ts","sourceRoot":"","sources":["../src/date-parser.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CA6DzC;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,CAQxC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CA0B9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAQ9E;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvC,IAAI,CAcN"}
1
+ {"version":3,"file":"date-parser.d.ts","sourceRoot":"","sources":["../src/date-parser.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CA6EzC;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,IAAI,GAAG,MAAM,CAQxC;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CA0B9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAQ9E;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACvC,IAAI,CAcN"}
@@ -22,8 +22,27 @@ export function parseDate(s) {
22
22
  }
23
23
  return now;
24
24
  }
25
- // 2. Named shortcuts
25
+ // 2. Natural language: "in N minutes/hours/days"
26
+ const nlm = /^in\s+(\d+)\s*(min(?:ute)?s?|hours?|days?|weeks?)$/i.exec(s);
27
+ if (nlm) {
28
+ const n = parseInt(nlm[1], 10);
29
+ const unit = nlm[2].toLowerCase();
30
+ const now = new Date();
31
+ if (unit.startsWith('min'))
32
+ now.setMinutes(now.getMinutes() + n);
33
+ else if (unit.startsWith('hour'))
34
+ now.setHours(now.getHours() + n);
35
+ else if (unit.startsWith('day'))
36
+ now.setDate(now.getDate() + n);
37
+ else if (unit.startsWith('week'))
38
+ now.setDate(now.getDate() + n * 7);
39
+ return now;
40
+ }
41
+ // 2b. Named shortcuts
26
42
  const sl = s.toLowerCase();
43
+ if (sl === 'now') {
44
+ return new Date();
45
+ }
27
46
  if (sl === 'today') {
28
47
  const now = new Date();
29
48
  now.setHours(23, 59, 0, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"date-parser.js","sourceRoot":"","sources":["../src/date-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"date-parser.js","sourceRoot":"","sources":["../src/date-parser.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface NotifyOpts {
5
5
  message: string;
6
6
  sound?: string;
7
7
  group?: string;
8
+ reminderId?: string;
8
9
  }
9
10
  export type NotifierBackend = 'agentrem-app' | 'terminal-notifier' | 'osascript' | 'console';
10
11
  /** Reset the cached backend (for testing). */
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../src/notifier.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,mBAAmB,GAAG,WAAW,GAAG,SAAS,CAAC;AAM7F,8CAA8C;AAC9C,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wEAAwE;AACxE,wBAAgB,cAAc,IAAI,eAAe,CA2BhD;AAkBD,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAapD;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAE,MAAmB,GAAG,UAAU,CAgBnF;AA4BD,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAiBvD;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3C"}
1
+ {"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../src/notifier.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,mBAAmB,GAAG,WAAW,GAAG,SAAS,CAAC;AAM7F,8CAA8C;AAC9C,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wEAAwE;AACxE,wBAAgB,cAAc,IAAI,eAAe,CA2BhD;AAkBD,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAapD;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAE,MAAmB,GAAG,UAAU,CAgBnF;AA4BD,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAiBvD;AAED,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3C"}
package/dist/notifier.js CHANGED
@@ -86,7 +86,7 @@ export function buildNotifyOpts(rem, now = Date.now()) {
86
86
  }
87
87
  const message = truncate(rem.content, 80);
88
88
  const sound = PRIORITY_SOUNDS[rem.priority]; // undefined for P4/P5
89
- return { title, subtitle, message, sound, group: 'com.agentrem.watch' };
89
+ return { title, subtitle, message, sound, group: 'com.agentrem.watch', reminderId: rem.id };
90
90
  }
91
91
  // ── Path helpers ─────────────────────────────────────────────────────────────
92
92
  /** Resolve the bundled .app bundle path. Returns undefined if it doesn't exist. */
@@ -148,6 +148,7 @@ function sendViaAgentremApp(opts) {
148
148
  subtitle: opts.subtitle,
149
149
  message: opts.message,
150
150
  sound: opts.sound,
151
+ reminderId: opts.reminderId,
151
152
  });
152
153
  writeFileSync(tmpPath, payload, 'utf8');
153
154
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../src/notifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../src/notifier.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,uDAAuD;AACvD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAaD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,cAAmB,GAAG,MAAM,CAsDtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,cAAmB,GAAG,MAAM,CA+BrE;AAID,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AASpD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CA+EvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAmDhD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAqDhD;AAID,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CAuBzD;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AACvD,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,uDAAuD;AACvD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAaD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,cAAmB,GAAG,MAAM,CAwDtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,cAAmB,GAAG,MAAM,CA+BrE;AAID,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AASpD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,CA+EvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAmDhD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAqDhD;AAID,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CAuBzD;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAO3C"}
package/dist/service.js CHANGED
@@ -77,6 +77,8 @@ ${programArgsXml}
77
77
  \t<dict>
78
78
  \t\t<key>HOME</key>
79
79
  \t\t<string>${escapeXml(os.homedir())}</string>
80
+ \t\t<key>PATH</key>
81
+ \t\t<string>${escapeXml(process.env.PATH || '/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin')}</string>
80
82
  \t</dict>
81
83
 
82
84
  \t<key>ThrottleInterval</key>
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const SCHEMA_VERSION = 1;
2
- export declare const VERSION = "1.3.0";
2
+ export declare const VERSION = "1.4.0";
3
3
  export declare const PRIORITY_LABELS: Record<number, string>;
4
4
  export declare const PRIORITY_COLORS: Record<number, string>;
5
5
  export declare const VALID_TRIGGERS: Set<string>;
package/dist/types.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // ── Types ──────────────────────────────────────────────────────────────────
2
2
  export const SCHEMA_VERSION = 1;
3
- export const VERSION = '1.3.0';
3
+ export const VERSION = '1.4.0';
4
4
  export const PRIORITY_LABELS = {
5
5
  1: '🔴 Critical',
6
6
  2: '🟡 High',
package/llms-full.txt CHANGED
@@ -28,7 +28,7 @@ Create a reminder.
28
28
 
29
29
  | Flag | Description | Example |
30
30
  |------|-------------|---------|
31
- | `--due, -d <datetime>` | Due datetime (relative or absolute) | `--due "+2h"`, `--due "tomorrow 9am"`, `--due "2026-03-01"` |
31
+ | `--due, -d <datetime>` | Due datetime (natural language or ISO) | `--due "+2h"`, `--due "tomorrow"`, `--due "in 5 minutes"` |
32
32
  | `--trigger, -t <type>` | Trigger type: time/keyword/condition/session/heartbeat/manual | `--trigger keyword` |
33
33
  | `--priority, -p <n>` | Priority 1-5 (default: 3) | `--priority 1` |
34
34
  | `--tags <tags>` | Comma-separated tags | `--tags "deploy,urgent"` |
@@ -50,6 +50,10 @@ Create a reminder.
50
50
  # Time reminder
51
51
  agentrem add "Deploy v2" --due "+2h" --priority 2 --tags "deploy"
52
52
 
53
+ # Natural language due date
54
+ agentrem add "Team standup" --due "tomorrow" --priority 3
55
+ agentrem add "Send report" --due "in 30 minutes"
56
+
53
57
  # Keyword trigger
54
58
  agentrem add "Review security" --trigger keyword --keywords "deploy,release" --match any
55
59
 
@@ -57,7 +61,7 @@ agentrem add "Review security" --trigger keyword --keywords "deploy,release" --m
57
61
  agentrem add "Check CI" --trigger session
58
62
 
59
63
  # Recurring weekly
60
- agentrem add "Team sync prep" --due "monday 9am" --recur 1w
64
+ agentrem add "Team sync prep" --due "2026-02-24T09:00:00" --recur 1w
61
65
 
62
66
  # With dependency
63
67
  agentrem add "Deploy" --due "+4h" --depends-on abc12345
@@ -175,7 +179,7 @@ Snooze a reminder.
175
179
 
176
180
  ```bash
177
181
  agentrem snooze abc12345 --for 2h
178
- agentrem snooze abc12345 --until "tomorrow 9am"
182
+ agentrem snooze abc12345 --until "tomorrow"
179
183
  ```
180
184
 
181
185
  ### agentrem edit <id>
@@ -187,7 +191,7 @@ Edit reminder fields.
187
191
  | `--content <text>` | New content |
188
192
  | `--context <ctx>` | New context |
189
193
  | `--priority, -p <n>` | New priority |
190
- | `--due, -d <datetime>` | New due date |
194
+ | `--due, -d <datetime>` | New due date (natural language or ISO) |
191
195
  | `--tags <tags>` | Replace all tags |
192
196
  | `--add-tags <tags>` | Add tags |
193
197
  | `--remove-tags <tags>` | Remove tags |
@@ -200,6 +204,7 @@ Edit reminder fields.
200
204
  ```bash
201
205
  agentrem edit abc12345 --priority 1
202
206
  agentrem edit abc12345 --due "+4h" --add-tags "urgent"
207
+ agentrem edit abc12345 --due "in 2 hours"
203
208
  ```
204
209
 
205
210
  ### agentrem delete [id]
@@ -307,17 +312,218 @@ agentrem setup # Print CLAUDE.md snippet
307
312
  agentrem setup --mcp # Print Claude Desktop MCP config
308
313
  ```
309
314
 
310
- ### agentrem schema
315
+ ### agentrem doctor
311
316
 
312
- Print the database schema (useful for debugging).
317
+ Self-diagnostic command. Checks that the database exists and is healthy, schema is valid, and warns about overdue reminders or large DB size.
318
+
319
+ | Flag | Description |
320
+ |------|-------------|
321
+ | `--json` | Output structured JSON |
322
+
323
+ ```bash
324
+ agentrem doctor
325
+ agentrem doctor --json
326
+ ```
327
+
328
+ Output:
329
+ ```
330
+ 🩺 agentrem doctor
331
+
332
+ ✅ Database exists: /Users/you/.agentrem/reminders.db
333
+ ✅ Schema valid: Tables: reminders, history, reminders_fts
334
+ ⚠️ Active reminders: 0 active reminders. Add one: agentrem add "Test" --due "+1h"
335
+ ✅ Database size: 64 KB
336
+
337
+ 🟡 Some issues found.
338
+ ```
339
+
340
+ JSON output example:
341
+ ```json
342
+ {
343
+ "healthy": false,
344
+ "checks": [
345
+ { "check": "Database exists", "status": "ok", "detail": "/Users/you/.agentrem/reminders.db" },
346
+ { "check": "Schema valid", "status": "ok", "detail": "Tables: reminders, history, reminders_fts" },
347
+ { "check": "Active reminders", "status": "warn", "detail": "No active reminders. Add one: agentrem add \"Test\" --due \"+1h\"" },
348
+ { "check": "Database size", "status": "ok", "detail": "64 KB" }
349
+ ]
350
+ }
351
+ ```
352
+
353
+ ### agentrem quickstart
354
+
355
+ Interactive first-run walkthrough. Initializes the database (if needed), creates a sample reminder, runs a check, and cleans up — confirming everything works.
356
+
357
+ ```bash
358
+ agentrem quickstart
359
+ ```
360
+
361
+ Output:
362
+ ```
363
+ 📦 Step 1/4: Initializing database...
364
+ 📝 Step 2/4: Creating a sample reminder...
365
+ 🔔 Step 3/4: Checking triggered reminders...
366
+ ✅ Step 4/4: Completing the test reminder...
367
+
368
+ 🎉 Quickstart complete! agentrem is working.
369
+
370
+ Next steps:
371
+ agentrem add "My first real reminder" --due "+1h" --priority 2
372
+ agentrem check
373
+ agentrem setup # Get your CLAUDE.md snippet
374
+ agentrem doctor # Run diagnostics anytime
375
+ ```
376
+
377
+ ### agentrem watch
378
+
379
+ Background daemon that polls for due reminders and fires native OS notifications. Runs until interrupted (SIGINT/SIGTERM).
380
+
381
+ | Flag | Description |
382
+ |------|-------------|
383
+ | `--interval <seconds>` | Poll interval in seconds (default: 30) |
384
+ | `--agent, -a <name>` | Agent name to check for (default: main) |
385
+ | `--once` | Run a single check and exit |
386
+ | `--verbose` | Show poll log output |
387
+ | `--install` | Install as OS background service (launchd on macOS, systemd on Linux) |
388
+ | `--uninstall` | Remove the background service |
389
+ | `--status` | Show service status |
390
+
391
+ ```bash
392
+ # Run in foreground
393
+ agentrem watch # Poll every 30s (default)
394
+ agentrem watch --interval 60 # Poll every 60s
395
+ agentrem watch --agent jarvis # Check reminders for agent "jarvis"
396
+ agentrem watch --once # Single check then exit
397
+ agentrem watch --verbose # Verbose logging
398
+
399
+ # Service management (auto-start on boot)
400
+ agentrem watch --install # Install and start service
401
+ agentrem watch --install --interval 60 # Install with custom interval
402
+ agentrem watch --uninstall # Stop and remove service
403
+ agentrem watch --status # Show installed/running status
404
+ ```
405
+
406
+ #### How polling works
407
+
408
+ - Runs `coreCheck` with types `time,heartbeat,session,condition` and `--escalate` on every tick
409
+ - Per-reminder **dedup cooldown**: once a reminder is notified, it won't fire again for 5 minutes
410
+ - Handles SIGINT/SIGTERM for clean shutdown
411
+ - First check runs immediately on start
412
+
413
+ #### Service management
414
+
415
+ **macOS (launchd):**
416
+ - Writes a LaunchAgent plist to `~/Library/LaunchAgents/com.agentrem.watch.plist`
417
+ - Logs to `~/.agentrem/logs/watch.log` and `watch.error.log`
418
+ - Service label: `com.agentrem.watch`
419
+ - `KeepAlive: true` — restarts automatically on crash
420
+
421
+ **Linux (systemd):**
422
+ - Writes a user unit to `~/.config/systemd/user/agentrem-watch.service`
423
+ - Enabled with `systemctl --user enable --now`
424
+ - Logs to `~/.agentrem/logs/watch.log` and `watch.error.log`
425
+
426
+ #### watch --status output
427
+
428
+ ```
429
+ ✅ Installed: true
430
+ 🟢 Running: true
431
+ Platform: darwin
432
+ File: /Users/you/Library/LaunchAgents/com.agentrem.watch.plist
433
+ Detail: launchctl: ...
434
+ ```
435
+
436
+ #### watch --once (single check)
437
+
438
+ Useful in scripts or cron jobs to check once and exit. Combine with `--verbose` to see what fired:
439
+
440
+ ```bash
441
+ agentrem watch --once --verbose
442
+ # [agentrem watch] started — interval=30s agent=main
443
+ # [agentrem watch] 🔔 [8f103c9c] Deploy v2
444
+ # [agentrem watch] checked at 2026-02-22T09:00:00.000Z — 1 triggered, 1 notified
445
+ ```
446
+
447
+ ---
448
+
449
+ ## Native Notifications
450
+
451
+ agentrem ships a custom Swift app (`Agentrem.app`) bundled in `assets/`. When present, it is preferred over all other backends.
452
+
453
+ ### Notification Backends (priority order)
454
+
455
+ | Backend | When used | Notes |
456
+ |---------|-----------|-------|
457
+ | `agentrem-app` | `Agentrem.app` found in `assets/` | Preferred. Shows "agentrem" as app name with 🔔 bell icon |
458
+ | `terminal-notifier` | `terminal-notifier` on PATH | Fallback if app missing |
459
+ | `osascript` | macOS, no terminal-notifier | Native AppleScript notifications |
460
+ | `console` | Linux / no other option | Prints to stdout |
461
+
462
+ ### Priority-Based Sounds
463
+
464
+ | Priority | Sound |
465
+ |----------|-------|
466
+ | P1 Critical | Hero |
467
+ | P2 High | Ping |
468
+ | P3 Normal | Pop |
469
+ | P4–P5 | (no sound) |
470
+
471
+ ### Overdue Messages
472
+
473
+ The notification subtitle changes based on how overdue a reminder is:
474
+
475
+ | Overdue duration | Subtitle |
476
+ |-----------------|----------|
477
+ | < 2 min | "just now" |
478
+ | < 30 min | "X min ago" |
479
+ | < 1 hour | "about an hour, no biggie" |
480
+ | < 3 hours | "been a couple hours..." |
481
+ | < 6 hours | "this has been waiting a while" |
482
+ | < 24 hours | "so... you forgot about this one 😅" |
483
+ | < 48 hours | "it's been a whole day, dude" |
484
+ | 2+ days | "I've been here for N days. just saying." |
485
+
486
+ ### Rebuilding Agentrem.app
487
+
488
+ ```bash
489
+ npm run build:notify # Recompile Swift source in assets/notify-src/
490
+ ```
313
491
 
314
492
  ---
315
493
 
316
494
  ## Date/Time Formats
317
495
 
318
- Relative: `+1h`, `+2d`, `+1w`, `+30m`
319
- Named: `tomorrow`, `tomorrow 9am`, `monday`, `next friday 2pm`
320
- Absolute: `2026-03-01`, `2026-03-01T09:00:00`
496
+ All date inputs (`--due`, `--until`, `--decay`, etc.) accept:
497
+
498
+ ### Natural language
499
+ ```
500
+ now # Immediately
501
+ today # Today at 23:59
502
+ tomorrow # Tomorrow at 09:00
503
+ in 5 minutes
504
+ in 2 hours
505
+ in 3 days
506
+ in 1 week
507
+ ```
508
+
509
+ ### Relative shortcuts
510
+ ```
511
+ +5m # 5 minutes from now
512
+ +2h # 2 hours from now
513
+ +3d # 3 days from now
514
+ +1w # 1 week from now
515
+ ```
516
+
517
+ ### ISO 8601
518
+ ```
519
+ 2026-02-22T09:00:00 # Full datetime
520
+ 2026-02-22T09:00 # Without seconds
521
+ 2026-02-22 09:00:00 # Space separator
522
+ 2026-02-22 09:00 # Space, no seconds
523
+ 2026-02-22 # Date only (00:00:00)
524
+ ```
525
+
526
+ ---
321
527
 
322
528
  ## Environment Variables
323
529
 
@@ -326,6 +532,8 @@ Absolute: `2026-03-01`, `2026-03-01T09:00:00`
326
532
  | `AGENTREM_DB` | Database file path | `~/.agentrem/reminders.db` |
327
533
  | `AGENTREM_DIR` | Data directory | `~/.agentrem` |
328
534
 
535
+ ---
536
+
329
537
  ## MCP Server
330
538
 
331
539
  ```bash
@@ -334,3 +542,26 @@ npx agentrem mcp # Without global install
334
542
  ```
335
543
 
336
544
  14 tools, 4 resources, 3 prompts. See README.md for full MCP reference.
545
+
546
+ ### Claude Desktop Config
547
+
548
+ ```json
549
+ {
550
+ "mcpServers": {
551
+ "agentrem": {
552
+ "command": "agentrem-mcp",
553
+ "args": []
554
+ }
555
+ }
556
+ }
557
+ ```
558
+
559
+ ---
560
+
561
+ ## agentrem schema
562
+
563
+ Print the database schema (useful for debugging).
564
+
565
+ ```bash
566
+ agentrem schema
567
+ ```
package/llms.txt CHANGED
@@ -14,7 +14,7 @@ npm install -g agentrem && agentrem init
14
14
  agentrem check --type time,session --budget 800
15
15
 
16
16
  # 3. When your human says "remind me" — save it
17
- agentrem add "Deploy to prod" --due "tomorrow 9am" --priority 2
17
+ agentrem add "Deploy to prod" --due "+2h" --priority 2
18
18
  ```
19
19
 
20
20
  Add `agentrem setup` output to your CLAUDE.md for automatic integration.
@@ -30,6 +30,9 @@ agentrem complete <id> # Mark done (auto-creates next if recurring)
30
30
  agentrem snooze <id> --for 2h # Snooze by duration or --until datetime
31
31
  agentrem edit <id> # Modify fields
32
32
  agentrem stats # Overview (--json for structured output)
33
+ agentrem watch # Background daemon: poll + fire OS notifications
34
+ agentrem doctor # Self-diagnostic check
35
+ agentrem quickstart # Interactive first-run walkthrough
33
36
  agentrem setup # Print CLAUDE.md snippet (--mcp for MCP config)
34
37
  ```
35
38
 
@@ -37,7 +40,7 @@ agentrem setup # Print CLAUDE.md snippet (--mcp for MCP config)
37
40
 
38
41
  | Type | Use when... | Example |
39
42
  |------|------------|---------|
40
- | `time` | Something is due at a specific time | `--due "tomorrow 9am"` |
43
+ | `time` | Something is due at a specific time | `--due "+2h"` |
41
44
  | `keyword` | You should react when certain words appear | `--trigger keyword --keywords "deploy,release"` |
42
45
  | `session` | You need to check every session start | `--trigger session` |
43
46
  | `heartbeat` | You need to check every heartbeat | `--trigger heartbeat` |
@@ -47,6 +50,26 @@ agentrem setup # Print CLAUDE.md snippet (--mcp for MCP config)
47
50
 
48
51
  1=Critical (always surfaced), 2=High, 3=Normal, 4=Low (counted not shown), 5=Someday (skipped)
49
52
 
53
+ ## Natural Language Dates
54
+
55
+ `--due` accepts many formats:
56
+
57
+ ```bash
58
+ --due "now" # Immediately
59
+ --due "today" # Today at 23:59
60
+ --due "tomorrow" # Tomorrow at 09:00
61
+ --due "in 5 minutes"
62
+ --due "in 2 hours"
63
+ --due "in 3 days"
64
+ --due "in 1 week"
65
+ --due "+5m" # 5 minutes from now
66
+ --due "+2h" # 2 hours from now
67
+ --due "+3d" # 3 days from now
68
+ --due "+1w" # 1 week from now
69
+ --due "2026-02-22T09:00:00"
70
+ --due "2026-02-22"
71
+ ```
72
+
50
73
  ## Agent Integration Patterns
51
74
 
52
75
  ```bash
@@ -65,6 +88,23 @@ agentrem list --json
65
88
  agentrem stats --json
66
89
  ```
67
90
 
91
+ ## Background Watcher (watch)
92
+
93
+ `agentrem watch` runs a daemon that polls for due reminders and fires native OS notifications.
94
+
95
+ ```bash
96
+ agentrem watch # Start daemon (Ctrl+C to stop)
97
+ agentrem watch --interval 60 # Poll every 60s (default: 30s)
98
+ agentrem watch --agent jarvis # Check for specific agent
99
+ agentrem watch --once # Single check, then exit
100
+ agentrem watch --verbose # Show poll log
101
+
102
+ # Service management (auto-start on boot)
103
+ agentrem watch --install # Install as launchd/systemd service
104
+ agentrem watch --uninstall # Remove service
105
+ agentrem watch --status # Show service status
106
+ ```
107
+
68
108
  ## Key Features
69
109
 
70
110
  - **Recurrence**: `--recur 1d|2w|1m` — auto-creates next on completion
@@ -74,6 +114,7 @@ agentrem stats --json
74
114
  - **Multi-agent**: `--agent <name>` isolates per agent
75
115
  - **Full-text search**: FTS5 across content, context, tags, notes
76
116
  - **JSON output**: `--json` on check, list, search, stats, history
117
+ - **Native notifications**: macOS Agentrem.app with bell icon + priority sounds
77
118
  - **MCP server**: `agentrem-mcp` for Claude Desktop / MCP clients
78
119
  - **Zero config**: SQLite database, no external services
79
120
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentrem",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Structured reminders CLI for AI agents with MCP server",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",