← Back to Skills Marketplace
tralves

Habit Flow

by tralves · GitHub ↗ · v1.5.4
cross-platform ⚠ suspicious
2832
Downloads
6
Stars
0
Active Installs
8
Versions
Install in OpenClaw
/install habit-flow-skill
Description
AI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching.
README (SKILL.md)

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:

  1. Read ~/clawd/habit-flow-data/config.json to get the activePersona field
  2. Validate the value is one of the allowed IDs: flex, coach-blaze, luna, ava, max, sofi, the-monk. If not, fall back to flex
  3. Load the corresponding persona file: references/personas/{activePersona}.md
  4. Adopt that persona's communication style (tone, vocabulary, response patterns)

Example:

# Read config
cat ~/clawd/habit-flow-data/config.json  # → "activePersona": "coach-blaze"

# Validate: "coach-blaze" is in allowed list → OK
# 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"):

  1. Read current config:

    cat ~/clawd/habit-flow-data/config.json
    
  2. Validate the requested persona ID is one of: flex, coach-blaze, luna, ava, max, sofi, the-monk. If not, inform the user and show the available personas

  3. Update the activePersona field to the validated persona ID

  4. Load the new persona file:

    cat references/personas/{validated-persona-id}.md
    
  5. 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?"):

  1. Read current config to get activePersona:

    cat ~/clawd/habit-flow-data/config.json
    
  2. Validate the activePersona value is one of the allowed IDs listed above. If not, fall back to flex

  3. Display the persona image using Read tool:

    # Example for coach-blaze
    cat personas/coach-blaze.png
    
  4. 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
  • \x3C 0.60: Request clarification

Tip: Remember to run log_habit.ts when logging completions — verbal confirmation alone doesn't persist the data.

Typical flow:

  1. Parse user input → identify habit + date
  2. Run log_habit.ts --habit-id ... --date ... --status completed
  3. Confirm with streak update from the script output

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 Monday at 8am
  • 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 (Monday 8am): 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:

  1. Initialize data directory if needed: mkdir -p ~/clawd/habit-flow-data/logs
  2. Create default config.json with user's timezone, "flex" persona, and default user ID
  3. Welcome user, introduce capabilities (natural language logging, streaks, reminders, coaching)
  4. Offer persona selection (Flex, Coach Blaze, Luna, Ava, Max, The Monk)
  5. 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


Installation

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

Manual installation:

./install.sh

The install script will:

  1. Check for Node.js and npm
  2. Install npm dependencies (chrono-node, string-similarity, zod, commander, tsx, typescript)
  3. Run initial setup (create data directory, configure cron jobs)

Dependencies: Node.js 18+, npm

Usage Guidance
What to consider before installing Habit Flow - Confirm install method: the registry metadata claimed "instruction-only" but the package contains code and an INSTALL.md. Install by cloning the repo into your gateway workspace (~/clawd/skills or ~/.clawdbot/skills) and run npm install as documented — do not treat it as a metadata-only skill. - Review scripts that interact with the system before enabling them: specifically scripts/sync_reminders.ts, scripts/run_reminder.ts, and any example shell helpers in examples/*.sh. Reminders create cron entries via the gateway; the skill moved to opt-in cron creation, but you should inspect what cron jobs will be created and confirm they call only the intended wrappers. - Data is stored locally at ~/clawd/habit-flow-data/. Back up or inspect that directory if you want to preserve or audit your habit data. The skill will read/write config.json in that directory and update activePersona when switching personas. - Dependencies: npm install will fetch public npm packages (including @napi-rs/canvas which requires native build tooling). If you want to avoid native builds, do not enable canvas/dashboard features. - Gateway/WhatsApp configuration: WhatsApp reminders rely on your gateway's configured channel; the skill does not itself hold WhatsApp credentials. Ensure your gateway's channel config is secure and understood. - Small metadata oddities (SKILL.md install metadata listing node/npm as bins, and registry claiming no install spec) look like packaging/metadata mistakes rather than malicious behavior. If you need higher assurance: (1) run the skill in a sandboxed workspace, (2) inspect package.json and scripts for any network calls or unexpected subprocess invocations, and (3) grep for use of eval/spawning shell with unsanitized input (changelog indicates the author fixed earlier issues).
Capability Analysis
Type: OpenClaw Skill Name: habit-flow-skill Version: 1.5.4 The skill is classified as suspicious due to a potential command injection vulnerability in `scripts/sync_reminders.ts`. User-controlled input, specifically `habit.name` and `habit.reminderSettings.message`, is interpolated into `clawdbot cron add` commands executed via `child_process.execSync`. While `habit.reminderSettings.message` attempts to escape double quotes, it does not comprehensively sanitize against all shell metacharacters, and `habit.name` is not explicitly sanitized before being passed as an argument to an external command. This could allow a malicious user to inject arbitrary commands if `clawdbot` itself does not perform sufficient sanitization of its arguments. Other potential prompt injection surfaces in `SKILL.md` related to persona loading are mitigated by explicit instructions for the AI agent to validate input against an allowed list.
Capability Assessment
Purpose & Capability
The skill's name/description (habit tracking, NLP logging, reminders, coaching) match the included scripts, TypeScript source, and canvas visualization assets. The repo implements local JSON/JSONL storage, parsing, streak calculations, persona loading, cron/WhatsApp reminder sync, and visual dashboards — all reasonable for the declared purpose. Minor inconsistency: registry metadata states "No install spec — instruction-only" while SKILL.md includes a metadata.moltbot.install entry and the repo contains package.json and an INSTALL.md describing git clone + npm install. Also SKILL.md's install metadata lists bins ["node","npm"], which is atypical but not harmful.
Instruction Scope
SKILL.md explicitly instructs the agent to read/write files under ~/clawd/habit-flow-data/ and to load persona files from the skill's references/personas/ directory. That file access is coherent with persona loading and local storage. The skill also documents creating/syncing cron jobs (opt-in per changelog) to deliver WhatsApp reminders; this requires gateway-level WhatsApp configuration but the skill itself does not embed external endpoints. The skill no longer auto-creates cron jobs (changelog) and includes validation to prevent persona path traversal. Overall the runtime instructions are scoped to the skill's purpose, though you should review scripts that modify cron jobs (scripts/sync_reminders.ts, scripts/run_reminder.ts) before enabling them.
Install Mechanism
There is no remote download-from-arbitrary-URL; installation is documented as cloning the GitHub repo and running npm install. Dependencies indicated (chrono-node, string-similarity, commander, tsx, @napi-rs/canvas) match the implemented features (NLP, CLI, canvas rendering). Using native canvas (@napi-rs/canvas) requires native build tooling but is proportionate to the canvas dashboard feature. The repository contains an INSTALL.md and package.json, so treat this as a code-backed skill (not instruction-only) despite registry metadata saying otherwise.
Credentials
The skill declares no required environment variables or external credentials. That aligns with the code: data is stored locally under ~/clawd/habit-flow-data/ and reminders are routed through the gateway's clawdbot cron/WhatsApp channels (which are configured outside the skill). There are no declared requests for unrelated secrets. Note: WhatsApp delivery depends on gateway-level configuration; ensure your gateway's channel credentials are correctly managed separately.
Persistence & Privilege
always:false and user-invocable:true. The skill reads and writes only to its own data directory (~/clawd/habit-flow-data/) and the skill directory. Cron job creation is opt-in (user must run sync_reminders.ts). It does not request permanent platform-wide privileges or modify other skills' configs. No 'always' or autonomous escalation flags were observed.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install habit-flow-skill
  3. After installation, invoke the skill by name or use /habit-flow-skill
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.5.4
**Improved persona validation and selection for more robust user experience.** - Validates persona IDs when loading, switching, or displaying personas; falls back to "flex" if invalid. - Informs users if an invalid persona is requested, and shows the list of available personas. - Updated SKILL.md documentation to reflect enhanced persona validation logic. - Bumped version to 1.5.4.
v1.5.3
HabitFlow Skill v1.5.3 - Improved proactive coaching messages, including clarified weekly check-in timing and additional pattern insights. - Updated persona switching instructions to simplify the process by removing validation step. - Clarified logging flow and key usage tips in the documentation. - General documentation enhancements and instructions for setup, activation, and automation. - Version bump and metadata update for package consistency.
v1.5.2
- Persona switching is now validated: only specific persona IDs (`flex`, `coach-blaze`, `luna`, `ava`, `max`, `sofi`, `the-monk`) are allowed. If an unknown ID is requested, the user is informed and the switch is not performed. - Documentation updated to reflect persona validation requirement and improved accuracy of persona switching flow. - Metadata version updated to 1.5.2.
v1.5.1
HabitFlow Skill v1.5.1 - Updated skill metadata version to 1.5.1. - Clarified natural language logging flow in documentation (SKILL.md). - Minor improvements to skill usage notes and instructions. - No changes to core functionality or APIs.
v1.5.0
**Summary:** Introduces proactive coaching and reminder support with new script commands. - Adds `run_coaching.ts` and `run_reminder.ts` scripts for automated coaching and reminders. - Proactive coaching can now be triggered via scheduled (cron) runs, not just on user prompt. - Documentation updated to describe automated coaching flows and how to use new scripts. - Bumps version to 1.5.0.
v1.4.1
**HabitFlow v1.4.1 Changelog** - Added critical reminder: always run `log_habit.ts` when users report habit completions to ensure logs are persisted. - Updated documentation in SKILL.md to clarify the required flow for logging completions. - Bumped version to 1.4.1 in package metadata. - Minor maintenance and doc updates.
v1.4.0
HabitFlow 1.4.0 introduces extended documentation and improved configuration options. - Added new reference docs: COMMANDS.md, DATA.md, EXAMPLES.md, and REMINDERS.md for easier onboarding and advanced usage. - Updated SKILL.md with expanded installation, compatibility, and license details. - Core usage and persona selection instructions clarified. - Canvas visualization options and references now highlighted in documentation. - Improved proactive coaching setup instructions and cron job summary.
v1.3.0
HabitFlow 1.3.0 introduces AI-powered persona-based coaching, advanced visualizations, and full natural language habit management. - Added multiple AI personas for coaching (e.g., Coach Blaze, Luna, Max) with automatic persona detection and switching. - Introduced natural language logging, habit creation, and management (e.g., "I meditated today", "Remind me to exercise at 6pm"). - Implemented robust streak tracking with 1-day forgiveness and milestone celebrations. - Enabled automatic and personalized proactive coaching (milestones, risk warnings, weekly check-ins). - Added detailed statistics, progress summaries, and new visualizations (streak charts, heatmaps, trend dashboards). - WhatsApp smart reminders and multi-category habit support now available.
Metadata
Slug habit-flow-skill
Version 1.5.4
License
All-time Installs 0
Active Installs 0
Total Versions 8
Frequently Asked Questions

What is Habit Flow?

AI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching. It is an AI Agent Skill for Claude Code / OpenClaw, with 2832 downloads so far.

How do I install Habit Flow?

Run "/install habit-flow-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Habit Flow free?

Yes, Habit Flow is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Habit Flow support?

Habit Flow is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Habit Flow?

It is built and maintained by tralves (@tralves); the current version is v1.5.4.

💬 Comments