Skip to content
active

Pulse

Predictive personal intelligence engine — analyzes journals and task data to catch slides early and amplify momentum.

Bun · TypeScript · Claude Code · systemd · Telegram

Pulse is a predictive personal intelligence engine. It analyzes my journal entries, Todoist data, and other personal data streams to detect behavioral patterns — both slides worth catching early and momentum worth amplifying.

How It Works

Pulse runs morning and evening on the homelab and executes a four-stage pipeline:

  1. Aggregate — reads Obsidian journal files and fetches Todoist task data
  2. Analyze — builds a context-rich prompt with my goals and recent feedback, sends it to Claude, and parses structured signals
  3. Deliver — pushes high-confidence signals to Telegram and injects a daily briefing into today’s journal entry
  4. Learn — tracks how I respond to each signal (engaged, dismissed, acted, praised) to refine future predictions

Signal Types

  • Prevention signals — early warnings of energy dips, goal drift, burnout patterns, avoidance behaviors
  • Amplification signals — opportunities to build on momentum, flow states, learning surges

Each signal comes with evidence citations from my own data, a confidence level, and an actionable suggestion. A plugin-style attachment system lets new data sources (like Oura sleep and activity data) feed the same pipeline.

Pulse attachment architecture — plugin data sources feeding the analysis pipeline

The Interesting Part

The feedback loop. Pulse doesn’t just fire alerts — it tracks whether each signal earned a reaction, scores its own pattern accuracy over time, and prunes what doesn’t land. Zero runtime npm dependencies; pure Bun APIs, TypeScript strict mode, managed by systemd.