@wxttt/life-kit
v1.0.0
Published
LifeKit - A CLI that scaffolds a local, Markdown-based life operating system powered by AI Agent commands
Maintainers
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-kitOr from source:
git clone https://github.com/wxttt/life-kit.git && cd life-kit
npm install && npm run build && npm linkQuick 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.dailyCLI 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 outputAgent 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 scriptAll 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 -e0 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.shLimitations
- 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.summaryrequires 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
