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

@wxttt/life-kit

v1.0.0

Published

LifeKit - A CLI that scaffolds a local, Markdown-based life operating system powered by AI Agent commands

Readme

LifeKit

A CLI tool that scaffolds a local, Markdown-based life operating system powered by AI Agent commands. Inspired by Dan Koe's sovereignty framework.

LifeKit does one thing: run life init to generate config, data directories, and 9 Agent slash commands. Everything else happens inside your AI Agent.

Why

Most goal-tracking tools optimize for input (more fields, more dashboards). LifeKit optimizes for confrontation -- forcing you to face what you're avoiding, define what you refuse to become, and act on what actually matters.

The system is built around three psychological anchors:

  • Anti-Vision -- the life you refuse to live
  • Constraints -- the lines you will not cross
  • Vision -- the direction you're building toward

All data stays local as plain Markdown files. No cloud, no lock-in, version-controllable with Git.

Requirements

  • Node.js >= 20
  • Claude Code (currently the only supported AI Agent platform)

Install

npm install -g @wxttt/life-kit

Or from source:

git clone https://github.com/wxttt/life-kit.git && cd life-kit
npm install && npm run build && npm link

Quick Start

# 1. Create your project and initialize
mkdir ~/my-life && cd ~/my-life
life init

# 2. Launch Claude Code in the same directory
claude

# 3. Start the psychological excavation (Day 1, ~30 min)
/life.init

# 4. Evening reflection
/life.insight

# 5. Forge your main quest
/life.plan

# 6. From Day 2 onward -- daily loop
/life.daily

CLI Usage

life init [options]

| Option | Description | Default | |---------------------|-----------------------------------|---------------| | --data-dir <path> | Target directory for all files | . (cwd) | | --language <code> | Language preference | auto-detect | | --json | Output result as JSON | false |

# Examples
life init                          # Initialize in current directory
life init --data-dir ~/my-life     # Initialize in ~/my-life
life init --language en            # Force English
life init --json                   # Machine-readable output

Agent Commands

After life init, 9 slash commands are available in Claude Code:

Day 1 (sequential)

| Command | Purpose | |-----------------|------------------------------------------------------| | /life.init | 3-phase psychological excavation (Anti-Vision, Constraints, Vision) | | /life.insight | Evening reflection -- distill compression sentences | | /life.plan | Forge main quest: 1-year lens + monthly Boss Fight |

Daily Loop

| Command | Purpose | |------------------|-----------------------------------------------------| | /life.daily | Set 1-3 leverage tasks, log passion time blocks | | /life.capture | Zero-friction idea capture (commute, walk, queue) | | /life.insight | Evening reflection (reused daily) | | /life.remind | View pending reminders and resilience messages |

Periodic

| Command | Purpose | |------------------|-----------------------------------------------------| | /life.review | Weekly / monthly / yearly review & calibration | | /life.summary | AI-driven progress summary & drift detection (28d+) | | /life.config | View and modify system configuration |

Directory Structure

After running life init --data-dir ./my-life:

my-life/
├── config.yml                  # System configuration
├── .claude/commands/           # 9 Agent command files (life.*.md)
└── data/
    ├── foundation/             # Psychological excavation output
    │   ├── anti-vision.md      #   The life you refuse to live
    │   ├── constraints.md      #   Hard rules you will not break
    │   ├── vision.md           #   Direction you're building toward
    │   ├── goals.md            #   Goal hierarchy
    │   └── insight.md          #   Compression sentences (evolving)
    ├── daily/                  # Daily logs (YYYY-MM-DD.md)
    ├── projects/               # Monthly Boss Fight projects
    ├── reviews/
    │   ├── weekly/
    │   ├── monthly/
    │   └── yearly/
    ├── reminders/
    │   ├── pending.md
    │   └── push-log.md
    └── life-push.sh            # Cron-driven pulse reminder script

All files are standard Markdown with YAML frontmatter. Open them in any editor, diff them with Git, grep them with ripgrep.

Pulse Reminders (Optional)

LifeKit includes a push script for automated reminders via Feishu or Telegram webhooks.

# 1. Configure webhook URL
/life.config

# 2. Set up cron (example for Day 1 full schedule)
crontab -e
0  9 * * * ~/my-life/data/life-push.sh
0 11 * * * ~/my-life/data/life-push.sh
0 14 * * * ~/my-life/data/life-push.sh --random
0 22 * * * ~/my-life/data/life-push.sh

Limitations

  • Claude Code only -- Agent commands use the .claude/commands/ convention. Other platforms (Cursor, Windsurf, Copilot) are not yet supported.
  • No cloud sync -- All data is local. Use Git if you need backup/sync.
  • No mobile app -- Interaction happens in the terminal via Claude Code.
  • Single user -- No multi-user or team features.
  • /life.summary requires 28+ days of data -- Drift detection needs sufficient history to produce meaningful analysis.

Development

npm install        # Install dependencies
npm run build      # Compile TypeScript
npm test           # Run tests (Vitest)
npm run dev        # Watch mode (tsx)

Tech Stack

| Layer | Technology | |-------------|-------------------------------------| | Runtime | Node.js 20+, TypeScript 5.x | | CLI | commander | | Validation | zod | | Config | yaml | | Filesystem | fs-extra | | Test | vitest |

4 production dependencies. No database. No backend.

License

MIT