1.3.0.4 October 23, 2026 Latest
Added
  • Fan speed and battery time in the menu bar. Two new status bar items in Settings → Menu Bar: the fastest fan’s speed in RPM (with a sparkline in the sparkline modes), and battery time remaining, or time until full while charging. Each hides itself on Macs without fans or without a battery.
Fixed
  • No low-battery warning unless every notification was switched on. The low-battery warning (on by default at 20%) also waited for the main “Enable Notifications” switch, which starts off, so most people never got it. It now works on its own, and has its own Low Battery section in Settings → Notifications to change the level or turn it off. If you had left notifications off, you’ll now get this warning when the battery runs low. (Reported in #16.)
  • CPU temperature could read 2°C on M4 Max. A sensor that doesn’t measure the chip on that Mac was used for the CPU reading. Impossible readings are now skipped for the CPU and GPU.
  • False “Fans appear stuck” insight on Apple Silicon. Apple Silicon MacBook Pros keep their fans off until well above 60°C, so the warning now waits for 85°C on those Macs (60°C on Intel). You can still change it in Settings → Insights.
1.3.0.3 September 28, 2026
Added
  • Energy by day for each app. Click an app in Energy by App to see a bar chart of its energy for each of the last 7 or 30 days, with how long it was active each day. Respects the “On battery only” filter.
  • Your process count vs. the macOS limit. The Processes view shows how many processes you’re running out of the per-user limit (e.g. “Yours: 436 of 2,666”), turning orange past 80%. At the limit, apps and Terminal can’t start new processes.
  • Process limit alert. A notification warns you when your processes reach 85% of the per-user limit (adjustable), and names the app running the most, so you can close sessions before new ones start failing with “Resource temporarily unavailable”. Settings → Notifications → Processes.
Fixed
  • The Processes list was missing hundreds of processes. Processes owned by macOS itself (root and other system users) were left out because macOS doesn’t let apps read their CPU and memory. They’re now listed and counted, so the total matches top, with “—” for the figures macOS keeps private. The list also no longer stops counting at 2,048 processes. (Reported in #15.)
1.3.0.2 September 26, 2026
Added
  • Active time and average power in Energy by App. Each app now shows how long it was actually doing work and its average power draw during that time, next to its total energy. An app that stays open all day with a light draw is now easy to tell apart from one that uses a lot of power in short bursts.
  • “Everything else” in Energy by App. A new row shows the energy your Mac used that isn’t counted under any app: WindowServer, system processes, the display and other hardware, with its share of the Mac’s total. It appears once MacPulse has measured the Mac’s total power for the whole period.
  • Five new insights. Battery drainer: one app used most of the energy apps spent on battery today. Power-hungry app: an app drew unusually high power while it was active (expected for builds or games, worth a look otherwise). Device battery health: an iPhone or iPad battery dropped below 80% of its original capacity. Wi‑Fi signal: weak or noisy Wi‑Fi. Connection quality: internet drops or packet loss in the last hour, while the latency monitor is running. Each can be turned off in Settings → Insights.
  • Group by App in Processes. Like Task Manager, each app is now one row with the combined CPU, memory and threads of all its helper processes (Chrome, Safari, Electron apps and others), expandable to see each process. Ending an app row quits the app itself. The menu bar’s Top Processes and the dashboard list apps the same way. Uncheck “Group by App” for the one-row-per-process list.
Changed
  • Insights name the app, not the process. Memory and CPU insights now say “Safari (4.1 GB)” instead of “com.apple.WebKit.WebContent”, with an app’s helpers counted together. Ask Insights answers questions like “which apps used the most CPU?” the same way, and asking about an app includes all of its processes.
  • More accurate grouping of helpers and services. Energy by App now asks macOS which app each helper and service is working for. Web content processes are credited to the app that uses them (Safari, Mail, Xcode and others) instead of all counting as Safari. Command-line tools you start from Terminal and services working for macOS itself stay as their own rows instead of being assigned to the wrong app.
Fixed
  • CPU usage per process was far too low on Apple Silicon. The Processes list, the menu bar’s Top Processes and the dashboard under-reported each process’s CPU by about 40×, because macOS reports process CPU time in hardware clock ticks, not nanoseconds. The Processes list also showed a lifetime average instead of current usage. All now show current usage, matching Activity Monitor.
1.3.0.1 September 25, 2026
Added
  • Energy by App. The Battery view now shows which apps used the most energy over the last 24 hours or 7 days, in real watt-hours measured by macOS, not an estimate. Filter to time spent on battery to see what actually drains it. Helper processes are grouped under their app.
  • Power flow. See live watts from the charger, what your Mac is consuming, and whether the battery is charging or discharging. MacPulse warns you when a charger can’t keep up and the battery drains while plugged in, and flags low-wattage chargers.
  • Power breakdown. The CPU and GPU views show where your Mac’s power goes, per component, using whatever your Mac can measure.
  • Wi-Fi details. Signal strength and quality, noise, channel, band and width, link rate, Wi-Fi standard and security, plus your router and DNS servers. The network name appears once you allow Location access, which macOS requires; MacPulse never reads your location.
  • Latency monitor. Current latency, average, jitter and packet loss with a one-hour chart that marks outages. It only measures while the Network view is open, unless you turn on background monitoring.
  • iPhone & iPad battery health. Maximum capacity and cycle count now show next to their battery level.
  • Low-battery alerts for your devices. Get notified once when AirPods, a mouse, a keyboard or an iPhone drops below your chosen level.
  • Quit processes from the menu bar. Right-click a process in the popover’s Top Processes list to end or force-quit it.
Fixed
  • No more false “reconnected” warnings for AirPods in their case. AirPods resting in a closed case were reported as reconnecting many times an hour, because each Bluetooth address change was counted as a disconnect and reconnect. Nearby devices are no longer treated as connections. Devices that switch identifiers, like some Logitech mice, no longer trigger false alerts, and “reconnected N times” now counts actual reconnects.
  • AirPods show up without connecting. Paired AirPods in their case now appear with their battery levels even if they haven’t connected to this Mac. Devices read this way are listed under “Nearby Devices” instead of “Connected Devices”.
1.2.14 September 15, 2026
Improved
  • Ask Insights keeps going in long chats. Conversations no longer stop with “this conversation got too long” — the oldest context is trimmed automatically while your visible history stays intact.
  • Clearer, more accurate answers. Unusual activity is described in plain language; “how much did I download” reports the throughput rate instead of mistaking a speed for a total; “current” questions show the latest reading, not the day’s peak; and GPU temperature is reported as temperature, not usage.
  • Ask “when did it peak.” Ask Insights can now tell you when a metric hit its high or low, not just the number.
Fixed
  • Friendlier Ask Insights errors. A clear, actionable message when the on-device model is busy, still downloading, or declines a request.
1.2.13 August 21, 2026
Fixed
  • iPhone, iPad & Apple Watch battery keep updating over Wi-Fi. After a one-time USB connection, their battery now refreshes wirelessly instead of freezing on an old value — it no longer gets stuck when the device leaves and rejoins Wi-Fi.
  • No more stale device-battery numbers. AirPods, iPhone, and other device batteries that haven’t reported recently are now dimmed and labelled “seen 8m ago” instead of looking current, so an old value is never mistaken for a live one.
  • AirPods battery is remembered when they go back in the case. The level read while your AirPods are connected to this Mac now carries over when they return to the case, rather than reverting to an outdated reading.
Added
  • Battery setup hint. The Battery view now shows a short hint on how to enable iPhone / iPad / Apple Watch battery when no such device is connected yet.
1.2.12 August 19, 2026
Added
  • Keyboard shortcuts for every view. Jump straight to any pane with ⌘1–⌘9 (Dashboard, CPU, Memory, and so on down the sidebar), plus ⌘0 for the tenth pane. The new shortcuts are listed in the View menu.
Fixed
  • No more duplicate AirPods in the menu bar. Connected AirPods could appear several times in the menu bar Devices list; each device now shows once.
1.2.11 August 16, 2026
Added
  • Battery for your other devices. The Battery module now shows the battery level of connected AirPods, Bluetooth keyboards, mice, and headphones — and it appears even on Macs without a built-in battery (Mac mini, Mac Studio, iMac).
  • iPhone, iPad & Apple Watch battery. See your iPhone and iPad battery over USB, and over Wi-Fi once paired; a paired Apple Watch shows automatically through its iPhone. A short setup guide in the Battery view walks you through enabling it.
  • Device batteries in the menu bar. A new Devices section in the menu bar popover lists each connected device and its battery level.
Changed
  • Faster device-battery refresh — connected-device batteries and plug/unplug now update within about 15 seconds.
1.2.10 August 12, 2026
Fixed
  • Fan curves keep adjusting with temperature. After you activated a fan curve, MacPulse applied it once and then stopped recalculating as your Mac heated up or cooled down. Curves now continuously adjust fan speed to the current temperature, and the thermal safety watchdog stays active.
  • Clearer network graph. The network chart now labels which line is download and which is upload.
1.2.9 July 25, 2026
Added
  • Adjustable fan-stuck alert threshold. The “Fans appear stuck at 0%” insight fired incorrectly on Macs whose fans stay off until higher temperatures by design (recent MacBook Pros park their fans until roughly 65–70°C). A new “Fan Stuck Warning” threshold in Settings → Insights lets you match the alert to your machine’s actual fan behavior.
Fixed
  • Menu bar popover no longer changes shade on first click. The popover used to appear with a lighter background and flip darker as soon as you clicked inside it, most visibly on macOS 26 and later. It now renders consistently from the moment it opens.
  • Clear guidance when the app’s installation is damaged. If MacPulse’s integrity check fails (for example after a corrupted copy or download), the License screen now shows a “Reinstall Required” explanation instead of a silently unresponsive Activate button.
1.2.8 July 1, 2026
Added
  • External drive read/write rates. Each external volume in the Disk view now shows its own live read and write speeds.
  • GPU frequency. The GPU module and the Performance tab now show the GPU's clock speed on Apple Silicon, with a live frequency chart.
  • Hide network interfaces. A new Network tab in Settings lets you hide interfaces you don't care about — they're removed from the dashboard, the menu bar, and the throughput totals.
  • Rearrange and hide dashboard cards. A new Customize button on the dashboard lets you drag to reorder cards and hide the ones you don't use.
Changed
  • CPU frequency now reflects load — the reported clock rises and falls with actual usage instead of hovering near its maximum.
  • Resizable Settings window. The Settings window can now be resized to fit longer lists.
1.2.7 June 22, 2026
Fixed
  • Archived performance sessions are selectable again. Clicking a recorded session in the Performance sidebar now opens it so you can view its charts and summary.
  • Widgets no longer render too dark in dark mode. Widget backgrounds and text now use the correct colors in dark appearance.
1.2.6 May 30, 2026
Added
  • Shareable Report Card. Generate a polished image of your Mac — chip, cores, RAM, macOS version, plus live CPU, memory, disk, GPU, thermal, and battery readings — then copy, save, or share it. Available from the dashboard toolbar and the menu bar.
  • Performance session cards. Turn any recorded performance session into a shareable card showing average and peak CPU/GPU/memory, 1% low and minimum FPS, peak temperature, and CPU clock — perfect for showing how your Mac handled a specific game or workload.
  • Rename performance sessions. Right-click a session in the Performance sidebar to rename it (previously you could only delete it).
Fixed
  • Performance recordings no longer get stuck at 0 FPS after a screen-capture hiccup — each recording re-checks cleanly instead of staying at 0 until you relaunch.
  • Clearer Screen Recording permission prompt: when macOS hasn't granted the access FPS measurement needs, the Performance view explains it and links straight to the setting.
1.2.5 May 29, 2026
Added
  • Full localization of the Insights engine. Every insight — its headline, suggestion, and detail text — across CPU, memory, thermal, battery, disk, GPU, network, Bluetooth, and SMART disk health is now translated into Spanish, French, German, Japanese, and Simplified Chinese. The Insights History view, insight action buttons, severity and category labels, and the navigation sidebar are localized too. Previously this text always appeared in English regardless of your system language.
1.2.4 May 18, 2026
Fixed
  • Fan control on M5 Macs. Manual fan speed and custom fan curves had no effect on MacBook Pro M5 because Apple changed the casing of the SMC fan-mode register from F{n}Md to F{n}md. MacPulse now probes both at startup and uses whichever the chip exposes, so manual mode actually engages and target-RPM writes take effect.
  • Fan curves not firing on newer Apple Silicon. The temperature lookup only knew M1/M2 sensor keys, so on M3/M4/M5 the curve timer never got a reading. Expanded the key list to cover M3 Pro / M3 Max / M4 / M5 P-core sensors.
  • Diagnostics no longer redacted as <private>. Fan-control log messages from the privileged helper are now publishable, so users sharing logs for troubleshooting can see what actually happened.
1.2.3.1 May 16, 2026
Fixed
  • Fixed a licensing bug.
1.2.3 May 8, 2026
Fixed
  • Crash on launch on some Macs. Volumes that report more available capacity than their declared size — common on APFS containers shared across multiple volumes — could trigger an unsigned-integer underflow in the disk-usage calculation, terminating the app a few seconds after launch on the first poll cycle. The calculation now clamps to zero in this case.
1.2.2 April 22, 2026
Added
  • Ask Insights (macOS 26 Tahoe only): New sidebar entry under Analytics lets you ask natural-language questions about your Mac's history — “How high did CPU go yesterday?”, “Which apps used the most energy today?”, “What’s been writing to disk?”, “Did Xcode use a lot of CPU?”. Runs entirely on-device via Apple Intelligence — nothing leaves your Mac. On older macOS versions the feature simply doesn’t appear; the rest of the app works as before. Not available in the App Store build.
  • Per-process activity history: MacPulse now remembers which apps were busy (CPU, memory, disk I/O, idle wake-ups, and a synthetic activity score) every 60 seconds, so questions like “which apps drained my battery yesterday?” actually get answered across the last 30 days — not just “right now.” 30-day retention with automatic rollup (minute → hourly → daily).
Fixed
  • Phantom disk-I/O spikes. IOKit disk counters could appear to jump backwards when a volume was mounted or unmounted, and the old delta path treated that as a huge valid reading — producing occasional bogus “103 GB/s” samples that poisoned averages and peaks in the History view. Counter regressions and any rate above 30 GB/s are now rejected as artifacts.
1.2.1 April 17, 2026
Fixed
  • "What's New" dialog could not be dismissed on version upgrade. After updating from 1.1.x to 1.2.0, the Continue button did nothing and Cmd+Q was blocked by the stuck sheet. Dismiss wiring is restored. If you are currently stuck on 1.2.0, force quit the app once (Dock → right-click → Force Quit) — on relaunch the dialog will not return and Sparkle will offer this update automatically.
1.2.0 April 17, 2026
Added
  • Insights History: New sidebar entry under Analytics showing every insight your Mac has produced, with 24h / 7d / 30d range, category, and severity filters. Insights were already persisted for 30 days — now you can actually browse them.
  • Quick Actions on insights: Each insight detail popover has one-click buttons for the right follow-up — Open Activity Monitor, Storage Settings, Energy Settings, Disk Utility, Network Settings, Display Settings. No more digging through System Settings.
  • Snooze: Right-click any insight on the Dashboard to hide it for 1 hour, 6 hours, or until tomorrow. Unlike Dismiss, the rule keeps running — it just stops showing until the timer is up.
  • Per-rule enable/disable: Settings → Insights now includes a collapsible list of every rule with a toggle. Turn off the ones you don't care about; Reset to Defaults clears the disabled set too.
  • Top Memory Consumers on Memory tab (Direct): The Memory detail view now lists the top 5 processes by resident memory, with columns for memory, percent of total RAM, and thread count. Updates every 10 seconds while the tab is visible.
  • SMART disk health rule (Direct): Surfaces a warning the moment any drive's SMART status flips from Verified to Failing, with a one-click Disk Utility shortcut.
  • Bluetooth reconnection churn rule (Direct): Detects devices that repeatedly connect and disconnect within an hour (5+ transitions = noteworthy, 10+ = warning) and names the worst-offending device — so you know which AirPod battery to check.
  • Process-aware insight messages: Memory and CPU insights now name the actual apps using the most resources — "Top memory users right now: Chrome (3.2 GB), Xcode (1.1 GB)" instead of generic "close unused apps" text. Direct build only; MAS falls back to the generic message.
Changed / Fixed
  • Dismissals persist across midnight. Previously, dismissing an insight near midnight could see it resurface at 12:01 AM because the dedup id contained the date. Dismissals now persist by rule id with a 24-hour TTL.
  • Notification throttle: the same warning no longer fires a duplicate macOS notification every 5 minutes while the condition persists — 24 hours per (rule, severity).
  • Hysteresis on CPU and Thermal rules. Metrics oscillating around the threshold no longer flip the warning on and off; rules now require a 3-sample consecutive streak in minute-level records before firing.
  • Network anomaly baseline floor. The rule now requires a baseline above 100 KB/s before comparing today's throughput — at very low baselines, a single browsing spike would produce misleadingly huge ratios.
  • Battery drain anomaly uses a median across per-interval rates instead of a global mean, so one short hot-GPU interval can't trigger a false alarm.
  • Insight suggestions no longer look like fake links. Suggestion text is now muted italic (card) / primary (popover) rather than blue — the clickable elements are the new Quick Actions buttons, which are obviously interactive.
1.1.9 April 16, 2026
Fixed
  • Insights readability: Long insight messages no longer appear truncated with no way to see the full text. Every insight row is now tappable and opens a popover with the full message, suggestion, and a new Details section explaining what was measured and likely causes. Text is selectable and a "Copy" button makes it easy to share with support.
  • Fan insights: Fan anomaly rules now include concrete diagnostic details — sample counts, peak temperature, thresholds, and next steps (e.g. SMC reset instructions, powermetrics cross-check command).
1.1.8 April 16, 2026
Added
  • Menu Bar Only Mode shortcut: New "hide dock" button in the menu bar popover and a Window menu command (⇧⌘M) to switch into menu-bar-only mode instantly — no more digging through Settings.
1.1.7 April 14, 2026
Added
  • Network: Cumulative download/upload traffic counters in the detail view and per-interface rows (lifetime since boot).
  • Auto-updates (direct build): Sparkle updates now install silently on next launch.
Fixed
  • Insights: Recommended action text now wraps vertically instead of being cut off with an ellipsis.
  • Menu bar popover: CPU/RAM/Disk mini gauges no longer show truncated percentages (e.g. "20....").
1.1.6 April 12, 2026
Fixed
  • MAS in-app purchase: Fixed critical bug where the purchase button was permanently disabled for users whose trial had expired. An async let cancellation issue prevented Product.products(for:) from completing, leaving the price unloaded and the button non-functional.
1.1.4 April 6, 2026
Fixed
  • Bug fixes
1.1.0 March 9, 2026
Smarter Insights Engine
  • Completely overhauled Insights Engine with pluggable rule architecture
  • 10 new insight rules: CPU user/system imbalance, recurring weekly patterns, fan speed anomalies, charging patterns, disk read I/O spikes, GPU memory pressure, GPU temperature warnings, daily network usage tracking, system overload detection, and heavy workload alerts
  • Actionable suggestions on every insight — tells you what to do, not just what's wrong
  • Category badges (Performance, Memory, Storage, Thermal, Power, Network, System) for at-a-glance grouping
  • Configurable thresholds in Settings > Insights
  • Insight history persisted to database with 30-day retention
  • Warning-level insights pushed as system notifications (opt-in)
  • Statistical anomaly detection using z-score analysis
  • Cross-module compound insights detect system-wide overload
  • Fanless Mac detection — no more false fan warnings on MacBook Air
Accessibility
  • VoiceOver support across all charts, gauges, meters, cards, and interactive elements
  • Accessibility labels, hints, and values throughout the app
Localization
  • Language picker in Settings (English, Spanish, French, German, Japanese, Simplified Chinese)
  • Localized UI strings throughout dashboard and menu bar
New Features
  • TipKit integration with contextual tips for export, history, performance, fan control, and menu bar
  • What's New sheet shown automatically after updates
  • App Intents / Siri Shortcuts support
  • Redesigned 5-page onboarding walkthrough
  • Privacy manifest (PrivacyInfo.xcprivacy) for App Store compliance
UI Polish
  • Native ContentUnavailableView for empty states
  • Animated memory composition bar segments
  • Smooth dashboard view transitions
  • Show All toggle for insights with more than 5 items
1.0.9.9 March 8, 2026
Fixed
  • Fix license wipe caused by UserDefaults key collision with macOS system keys (com.apple.* keys)
  • Hardening data moved to dedicated UserDefaults(suiteName:) to prevent collision
  • Legacy key migration validates format before migrating
  • Improved license reliability and data integrity
  • Fix flaky testCPUTimeOfDayPeakDetection by using dynamic peak hours
1.0.9.8 March 7, 2026
Fixed
  • Tighten battery drain insight: require 2-hour baseline, cap ratio at 5x to avoid false positives
  • Fix battery drain insight comparison logic
  • Fixed-width network speed display in menu bar to prevent layout jumps
1.0.9.4 March 6, 2026
Fixed
  • Fix FPS permission loop caused by CGRequestScreenCaptureAccess triggering infinite requests
  • Improved Screen Recording permission UX with clear permission-denied state
1.0.9 March 5, 2026
Changed
  • Replace CVDisplayLink FPS counter with ScreenCaptureKit for accurate display frame rate measurement
  • CVDisplayLink measured VSync rate (~122fps on 60Hz), not actual rendered frames
  • New SCK-based counter reports real frame delivery (~47fps idle, ~60fps gaming)
  • Labels changed to "Display FPS" for transparency
Added
  • Memory chart and summary stats (Avg/Max Memory) added to performance session views
1.0.8 March 4, 2026
Fixed
  • Fix P-core/E-core swap in per-core grid display
  • Fix dashboard window activation when opening from menu bar
  • Improve widget data reliability and refresh timing
  • Fix FPS averaging calculation
  • MAS branding: "System Insights" name for App Store (Apple rejected "MacPulse" under Guideline 5.2.5)
1.0.5 March 3, 2026
Fixed
  • Fix dashboard window not activating when opened from menu bar popover
  • Fix dock icon not persisting across launches
  • Fix widget extension discovery (re-register with LaunchServices on build number change)
  • Fix Time Machine hang during widget data writes
  • Fix thermal sensor numbering in detail view
1.0.3 March 2, 2026
Fixed
  • Fix CPU notification firing immediately on fresh installs due to 0% threshold default
1.0.2 March 1, 2026
Fixed
  • Fix help URL pointing to correct feedback repository
  • Fix thermal gauge missing degree symbol
  • Add Fahrenheit temperature unit toggle in Settings
1.0.1 February 28, 2026
Added
  • Privileged helper for SMC fan control (avoids requiring root for fan speed writes)
  • Per-app resource breakdown in top processes
  • Extended notification types: GPU sustained usage, GPU temperature, battery low charge, fan anomaly
  • Top processes dashboard card showing CPU and memory leaders
Changed
  • Build script updated for helper tool signing
1.0.0 February 25, 2026 Initial Release
MacPulse — Activity Monitor reimagined as a gorgeous, native SwiftUI dashboard with historical analytics and a menu bar companion.
Real-Time Monitoring
  • CPU — Per-core usage with P-core/E-core differentiation (Apple Silicon), user/system breakdown, frequency monitoring via IOReport
  • Memory — Usage breakdown (wired/compressed/cached/free), pressure level, swap monitoring
  • Network — Per-interface throughput (download/upload), private and public IP display
  • Disk — Volume usage, I/O rates (read/write), external disk detection with eject support
  • Thermal — SMC temperature sensors (CPU/GPU/ambient), fan RPM and percentage, power sensor readings (Direct only)
  • Battery — Charge percent, power source, time remaining, health, cycle count, temperature, Bluetooth device batteries (Direct only)
  • GPU — Utilization via IOKit IOAccelerator, memory via Metal, device name, temperature
Analytics & Insights
  • Historical trend charts with time range picker (1h / 24h / 7d / 30d)
  • CSV data export for all modules
  • Plain-English insights from rule-based InsightsEngine (23 rules covering all modules)
  • Performance session recording with 1-second polling and live charts (Direct only)
Menu Bar Companion
  • Configurable status bar: Icon Only, Text, Sparkline, or Text + Sparkline
  • Compact popover with CPU/Memory/Disk gauges, network speed, thermal, GPU, battery rows
  • Top 5 processes by CPU usage (Direct only)
  • Per-module toggle to customize popover content
Fan Control (Direct only)
  • Custom fan curves: Silent, Balanced, Performance, Full Speed, plus custom curve editor
  • Thermal watchdog forces max fans if CPU exceeds 95°C
  • Automatic fan reset on app quit
Settings
  • Configurable poll interval, launch at login, text size scaling
  • Per-type notification thresholds with cooldowns
  • Temperature unit toggle (Celsius/Fahrenheit)
Architecture
  • Native SwiftUI on macOS 14 Sonoma+, Universal Binary (Apple Silicon + Intel)
  • SQLite persistence via GRDB.swift with WAL mode and automatic retention policy
  • WidgetKit extension for home screen widgets
  • Sparkle auto-updates for direct distribution
  • 14-day trial with LemonSqueezy activation and Keychain-backed license storage