npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

life-pulse

v2.4.4

Published

macOS life diagnostic — reads local data sources, generates actionable insights

Downloads

2,364

Readme

everything is mac mini

macOS life diagnostic — reads local data sources, generates actionable insights.

Built with Anthropic's long-running agent patterns for persistent context across sessions.

Quick Start

# Install globally
npm install -g life-pulse

# Or run directly
npx life-pulse

# First run: set up permissions
life-pulse --setup

Features

🧠 Session Continuity (Anthropic Pattern)

Each session picks up where the last left off:

  • Tracks what was surfaced (avoids re-showing items)
  • Remembers user decisions (learns from your choices)
  • Maintains pending follow-ups across sessions
  • Builds decision pattern profile over time

Progress is stored in ~/.life-pulse/session-progress.json.

📱 iCloud Discovery

Scans your iCloud Drive to discover apps and recommend integrations:

  • Obsidian vaults
  • Bear notes
  • Things 3 tasks
  • Day One journal
  • And more...

"Here's what I found about you" — personalized setup.

⚡ Incremental Processing

Delta-based scanning — only processes what's changed:

  • Tracks file modification times
  • Remembers last scanned message ID
  • Skips sources that haven't changed
  • Faster subsequent runs

🔐 Permission Flow

Guided setup for macOS permissions:

  • Full Disk Access (required)
  • Contacts (for name resolution)
  • Automation (for calendar/reminders)
  • Accessibility (optional)

Direct links to System Settings privacy panels.

👁 Health Monitoring

Long-running daemon mode with health checks:

# Start as daemon
life-pulse --daemon

# Check status
life-pulse --health

# Or via HTTP
curl http://127.0.0.1:19876/health

Commands

life-pulse              # Run interactive session
life-pulse --setup      # Run first-time setup flow
life-pulse --status     # Show session progress info
life-pulse --daemon     # Run as background daemon
life-pulse --health     # Check daemon health (JSON)
life-pulse --pair       # Create Desktop/nox-route.json for NOX routing
life-pulse --raw        # Output raw collected data
life-pulse --json       # Output analysis as JSON
life-pulse --legacy     # Use single-shot LLM mode
life-pulse --install    # Install launchd plist for morning briefs

Environment Variables

# Required: Anthropic API key
export ANTHROPIC_API_KEY="sk-ant-..."

# Optional: OpenRouter for legacy mode
export OPENROUTER_API_KEY="..."

# Optional: end-of-brief text target (E.164 preferred)
export LIFE_PULSE_BRIEF_SMS_PHONE="+14155551234"

Store in ~/.config/life-pulse/.env for persistence.

Identity + Memory Injection

OpenClaw-style prompt layers are supported. On every turn, life-pulse will load:

  • SOUL.md (identity/instructions)
  • MEMORY.md (persistent context)

Defaults are auto-created at first install/run in ~/.life-pulse/.

Search order is:

  1. LIFE_PULSE_SOUL_PATH / LIFE_PULSE_MEMORY_PATH
  2. current working directory
  3. ~/.life-pulse/
  4. ~/.config/life-pulse/

Data Sources

life-pulse reads from local macOS databases (requires Full Disk Access):

  • Messages — iMessage/SMS conversations
  • Email — Apple Mail summaries
  • Calendar — Upcoming events
  • Contacts — Name resolution for phone numbers
  • Safari/Chrome — Browsing history
  • Screen Time — App usage patterns
  • Notes — Apple Notes
  • Reminders — Apple Reminders
  • Notifications — Recent alerts
  • Find My — Device locations
  • Recent Files — Recently opened documents
  • Shell History — Terminal commands

All data stays local. Nothing leaves your machine except API calls to Claude.

Architecture

~/.life-pulse/
├── session-progress.json  # Cross-session state (Anthropic pattern)
├── daemon.pid             # PID file for daemon mode
└── heartbeat              # Last activity timestamp

~/Library/Application Support/life-pulse/
├── state.json             # Analysis history
├── config.json            # User preferences
├── platforms.json         # Discovered apps/services
└── todos.json             # Task tracking

Design Principles

  1. Session Continuity — Like claude-progress.txt, each run knows what happened before
  2. Incremental Processing — Don't rescan what hasn't changed
  3. Graceful Degradation — Works with partial permissions
  4. Local First — All data stays on your machine
  5. User Control — Every surfaced item gets a decision

Development

git clone https://github.com/your-org/life-pulse
cd life-pulse
npm install
npm run dev           # Run with tsx (hot reload)
npm run build         # Compile TypeScript
npm run start         # Run compiled version

License

MIT