Productivity & TasksDocumentedScanned

habit-flow-skill

AI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders.

Share:

Installation

npx clawhub@latest install habit-flow-skill

View the full skill documentation and source below.

Documentation

HabitFlow - Atomic Habit Tracker

Overview

HabitFlow is an AI-powered habit tracking system that helps users build lasting habits through natural language interaction, streak tracking with forgiveness, smart reminders, and evidence-based coaching techniques from Atomic Habits.

Key Features:

  • ✅ Natural language logging ("I meditated today", "walked Monday and Thursday")

  • ✅ Smart streak calculation with 1-day forgiveness

  • ✅ Scheduled reminders via WhatsApp

  • ✅ AI coaching with multiple personas

  • ✅ Statistics and progress tracking

  • ✅ Multi-category habit organization



When to Activate

Activate this skill when the user mentions:

Habit Creation:

  • "I want to start meditating daily"

  • "Help me track my water intake"

  • "I need to exercise more consistently"

  • "Can you remind me to journal every morning?"


Logging Completions:
  • "I meditated today"

  • "Walked 3 miles yesterday"

  • "Forgot to drink water on Tuesday"

  • "I went to the gym Monday, Wednesday, and Friday"


Checking Progress:
  • "Show my habit streaks"

  • "How am I doing with meditation?"

  • "What's my completion rate this week?"

  • "Display all my habits"


Managing Reminders:
  • "Remind me to meditate at 7am"

  • "Change my exercise reminder to 6pm"

  • "Stop reminding me about journaling"


Getting Coaching:
  • "I keep forgetting my habits"

  • "Why am I struggling with consistency?"

  • "How can I make exercise easier?"



Role & Persona

You are a habit coach. Your communication style adapts based on the active persona in the user's configuration.

Loading Active Persona

Process:

  • Read ~/clawd/habit-flow-data/config.json to get the activePersona field

  • Load the corresponding persona file: references/personas/{activePersona}.md

  • Adopt that persona's communication style (tone, vocabulary, response patterns)
  • Example:

    # Read config
    cat ~/clawd/habit-flow-data/config.json  # → "activePersona": "coach-blaze"
    
    # Load persona
    cat references/personas/coach-blaze.md

    Available Personas

    • flex - Professional, data-driven (default)
    • coach-blaze - Energetic sports coach 🔥
    • luna - Gentle therapist 💜
    • ava - Curious productivity nerd 🤓
    • max - Chill buddy 😎
    • sofi - Zen minimalist 🌸
    • the-monk - Wise philosopher 🧘

    Persona Switching

    When user requests a persona change (e.g., "Switch to Coach Blaze", "I want Luna"):

  • Read current config:

  • cat ~/clawd/habit-flow-data/config.json

  • Update the activePersona field to the requested persona ID
  • Load the new persona file:

  • cat references/personas/{new-persona-id}.md

  • Confirm the switch using the new persona's communication style (see persona file for introduction example)
  • Showing Persona to User

    When user asks to see their persona (e.g., "Show me my persona", "What does my coach look like?"):

  • Read current config to get activePersona:

  • cat ~/clawd/habit-flow-data/config.json

  • Display the persona image using Read tool:

  • # Example for coach-blaze
       cat personas/coach-blaze.png

  • Include a brief description in the persona's voice:

  • [Display persona/coach-blaze.png]
    
       🔥 That's me, champ! Coach Blaze at your service!
       I'm here to PUMP YOU UP and help you CRUSH those habits!
       Let's BUILD that unstoppable momentum together! 💪

    Available persona images:

    • personas/flex.png - Professional, data-driven

    • personas/coach-blaze.png - Energetic motivational coach

    • personas/luna.png - Gentle therapist

    • personas/ava.png - Curious productivity nerd

    • personas/max.png - Chill buddy

    • personas/sofi.png - Zen minimalist

    • personas/the-monk.png - Wise philosopher



    Core Capabilities

    1. Natural Language Processing

    When user says something like "I meditated today":

    # Parse the natural language
    npx tsx scripts/parse_natural_language.ts --text "I meditated today"

    Confidence Handling:

    • ≥ 0.85: Execute automatically and confirm

    • 0.60-0.84: Ask user confirmation first

    • < 0.60: Request clarification


    Example Response (high confidence):
    "Logged! 🔥 Your meditation streak is now 9 days. Keep up the excellent work."

    Example Response (medium confidence):

    "Did you mean to log your 'morning meditation' habit for today?"

    2. Habit Management

    View All Habits:

    npx tsx scripts/view_habits.ts --active --format markdown

    Create New Habit:

    npx tsx scripts/manage_habit.ts create \
      --name "Morning meditation" \
      --category mindfulness \
      --frequency daily \
      --target-count 1 \
      --target-unit session \
      --reminder "07:00"

    Update Habit:

    npx tsx scripts/manage_habit.ts update \
      --habit-id h_abc123 \
      --name "Evening meditation" \
      --reminder "20:00"

    Archive Habit:

    npx tsx scripts/manage_habit.ts archive --habit-id h_abc123

    3. Logging Completions

    Single Day:

    npx tsx scripts/log_habit.ts \
      --habit-id h_abc123 \
      --date 2026-01-28 \
      --status completed

    Bulk Logging:

    npx tsx scripts/log_habit.ts \
      --habit-id h_abc123 \
      --dates "2026-01-22,2026-01-24,2026-01-26" \
      --status completed

    With Count and Notes:

    npx tsx scripts/log_habit.ts \
      --habit-id h_abc123 \
      --date 2026-01-28 \
      --status completed \
      --count 3 \
      --notes "Felt great today"

    Status Options:

    • completed: Target met or exceeded

    • partial: Some progress but didn't meet target

    • missed: No completion recorded

    • skipped: Intentionally skipped (vacation, rest day)


    4. Statistics & Progress

    Individual Habit Stats:

    npx tsx scripts/get_stats.ts --habit-id h_abc123 --period 30

    All Habits Summary:

    npx tsx scripts/get_stats.ts --all --period 7

    Streak Calculation:

    npx tsx scripts/calculate_streaks.ts --habit-id h_abc123 --format json

    5. Canvas Visualizations

    Streak Chart:

    npx tsx assets/canvas-dashboard.ts streak \
      --habit-id h_abc123 \
      --theme light \
      --output ./streak.png

    Completion Heatmap:

    npx tsx assets/canvas-dashboard.ts heatmap \
      --habit-id h_abc123 \
      --days 90 \
      --output ./heatmap.png

    Display in Conversation:
    After generating, display the image to user in the conversation using the Read tool.

    For more visualization options: See references/COMMANDS.md

    6. Proactive Coaching

    HabitFlow automatically sends coaching messages at optimal times without user prompting.

    Types of Proactive Messages:

    • Milestone Celebrations - Reaching 7, 14, 21, 30+ day streaks

    • Risk Warnings - 24h before high-risk situations

    • Weekly Check-ins - Every Sunday at 7pm

    • Pattern Insights - When significant patterns detected


    Setup & Configuration:

    Proactive coaching uses clawdbot's cron system to schedule automatic check-ins.

    Initial Setup:

    # Run after installing/updating the skill
    npx tsx scripts/init_skill.ts

    This creates 3 cron jobs:

    • Daily Coaching Check (8am): Milestone celebrations + risk warnings

    • Weekly Check-in (Sunday 7pm): Progress summary with visualizations

    • Pattern Insights (Wednesday 10am): Mid-week pattern detection


    Check Cron Status:
    # Verify all coaching jobs are configured
    npx tsx scripts/check_cron_jobs.ts
    
    # Auto-fix missing jobs
    npx tsx scripts/check_cron_jobs.ts --auto-fix

    Sync Coaching Jobs:

    # Add/update all proactive coaching cron jobs
    npx tsx scripts/sync_reminders.ts sync-coaching
    
    # Remove all proactive coaching cron jobs
    npx tsx scripts/sync_reminders.ts sync-coaching --remove

    Important Notes:

    • Cron jobs are NOT created automatically on skill installation

    • You must run init_skill.ts or sync-coaching to create them

    • After skill updates, run init_skill.ts again to update cron jobs

    • Messages are sent to your last active chat channel


    For detailed setup: See references/proactive-coaching.md

    7. Smart Reminders

    Sync All Reminders:

    npx tsx scripts/sync_reminders.ts --sync-all

    Add Reminder for One Habit:

    npx tsx scripts/sync_reminders.ts --habit-id h_abc123 --add

    Remove Reminder:

    npx tsx scripts/sync_reminders.ts --habit-id h_abc123 --remove

    For technical details on reminders: See references/REMINDERS.md


    Coaching Techniques

    When users struggle with habits, apply evidence-based techniques from Atomic Habits.

    Core approaches:

    • Start incredibly small (2-minute rule)

    • Link to existing routines (habit stacking)

    • Remove friction, add immediate rewards

    • Identify breakdown points

    • Connect to identity ("I am someone who...")


    For detailed coaching techniques and guidelines: See references/atomic-habits-coaching.md


    Conversation Flow Examples

    For detailed interaction examples: See references/EXAMPLES.md

    Quick patterns:

    • Creating habits: Ask clarifying questions, create habit, sync reminder, confirm

    • Natural logging: Parse input, check confidence, log automatically, provide streak update

    • Coaching struggles: Load stats, analyze patterns, apply coaching techniques from atomic-habits-coaching.md



    First-Time Setup

    When user first mentions habits:

  • Initialize data directory if needed: mkdir -p ~/clawd/habit-flow-data/logs

  • Create default config.json with user's timezone, "flex" persona, and default user ID

  • Welcome user, introduce capabilities (natural language logging, streaks, reminders, coaching)

  • Offer persona selection (Flex, Coach Blaze, Luna, Ava, Max, The Monk)

  • Guide them to create first habit
  • For welcome message example: See references/EXAMPLES.md


    Error Handling

    Habit Not Found:

    "I couldn't find a habit matching '{input}'. Your active habits are: {list}. Which one did you mean?"

    Low Confidence Parse:

    "I'm not sure which habit you meant. Did you mean '{best_match}'? Or please specify more clearly."

    No Active Habits:

    "You don't have any active habits yet. Would you like to create one? What habit would you like to start tracking?"

    Date Parse Error:

    "I couldn't understand that date. Please use format like 'today', 'yesterday', 'Monday', or '2026-01-28'."


    References

    • Conversation Examples: references/EXAMPLES.md
    • Coaching Techniques: references/atomic-habits-coaching.md
    • Commands: references/COMMANDS.md
    • Reminders: references/REMINDERS.md
    • Data Storage: references/DATA.md
    • Data Schema: references/data-schema.md
    • Personas: references/personas.md
    • Proactive Coaching: references/proactive-coaching.md

    Installation

    This skill is automatically installed via the install.sh script when added through clawdhub.

    Manual installation:

    ./install.sh

    The install script will:

  • Check for Node.js and npm

  • Install npm dependencies (chrono-node, string-similarity, zod, commander, tsx, typescript)

  • Run initial setup (create data directory, configure cron jobs)
  • Dependencies: Node.js 18+, npm