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.

533 stars

Best use case

habit-flow is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using habit-flow should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/habit-flow/SKILL.md --create-dirs "https://raw.githubusercontent.com/sundial-org/awesome-openclaw-skills/main/skills/habit-flow/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/habit-flow/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How habit-flow Compares

Feature / Agenthabit-flowStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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. Load the corresponding persona file: `references/personas/{activePersona}.md`
3. Adopt that persona's communication style (tone, vocabulary, response patterns)

**Example:**
```bash
# 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"):

1. Read current config:
   ```bash
   cat ~/clawd/habit-flow-data/config.json
   ```

2. Update the `activePersona` field to the requested persona ID

3. Load the new persona file:
   ```bash
   cat references/personas/{new-persona-id}.md
   ```

4. 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`:
   ```bash
   cat ~/clawd/habit-flow-data/config.json
   ```

2. Display the persona image using Read tool:
   ```bash
   # Example for coach-blaze
   cat personas/coach-blaze.png
   ```

3. 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":

```bash
# 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:**
```bash
npx tsx scripts/view_habits.ts --active --format markdown
```

**Create New Habit:**
```bash
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:**
```bash
npx tsx scripts/manage_habit.ts update \
  --habit-id h_abc123 \
  --name "Evening meditation" \
  --reminder "20:00"
```

**Archive Habit:**
```bash
npx tsx scripts/manage_habit.ts archive --habit-id h_abc123
```

### 3. Logging Completions

**Single Day:**
```bash
npx tsx scripts/log_habit.ts \
  --habit-id h_abc123 \
  --date 2026-01-28 \
  --status completed
```

**Bulk Logging:**
```bash
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:**
```bash
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:**
```bash
npx tsx scripts/get_stats.ts --habit-id h_abc123 --period 30
```

**All Habits Summary:**
```bash
npx tsx scripts/get_stats.ts --all --period 7
```

**Streak Calculation:**
```bash
npx tsx scripts/calculate_streaks.ts --habit-id h_abc123 --format json
```

### 5. Canvas Visualizations

**Streak Chart:**
```bash
npx tsx assets/canvas-dashboard.ts streak \
  --habit-id h_abc123 \
  --theme light \
  --output ./streak.png
```

**Completion Heatmap:**
```bash
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](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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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](references/proactive-coaching.md)

### 7. Smart Reminders

**Sync All Reminders:**
```bash
npx tsx scripts/sync_reminders.ts --sync-all
```

**Add Reminder for One Habit:**
```bash
npx tsx scripts/sync_reminders.ts --habit-id h_abc123 --add
```

**Remove Reminder:**
```bash
npx tsx scripts/sync_reminders.ts --habit-id h_abc123 --remove
```

**For technical details on reminders:** See [references/REMINDERS.md](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](references/atomic-habits-coaching.md)

---

## Conversation Flow Examples

**For detailed interaction examples:** See [references/EXAMPLES.md](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](references/EXAMPLES.md#example-10-first-time-user-welcome)

---

## 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](references/EXAMPLES.md)
- **Coaching Techniques:** [references/atomic-habits-coaching.md](references/atomic-habits-coaching.md)
- **Commands:** [references/COMMANDS.md](references/COMMANDS.md)
- **Reminders:** [references/REMINDERS.md](references/REMINDERS.md)
- **Data Storage:** [references/DATA.md](references/DATA.md)
- **Data Schema:** [references/data-schema.md](references/data-schema.md)
- **Personas:** [references/personas.md](references/personas.md)
- **Proactive Coaching:** [references/proactive-coaching.md](references/proactive-coaching.md)

---

## Installation

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

**Manual installation:**
```bash
./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

Related Skills

n8n-workflow-automation

533
from sundial-org/awesome-openclaw-skills

Designs and outputs n8n workflow JSON with robust triggers, idempotency, error handling, logging, retries, and human-in-the-loop review queues. Use when you need an auditable automation that won’t silently fail.

signup-flow-cro

533
from sundial-org/awesome-openclaw-skills

When the user wants to optimize signup, registration, account creation, or trial activation flows. Also use when the user mentions "signup conversions," "registration friction," "signup form optimization," "free trial signup," "reduce signup dropoff," or "account creation flow." For post-signup onboarding, see onboarding-cro. For lead capture forms (not account creation), see form-cro.

habit-tracker

533
from sundial-org/awesome-openclaw-skills

Build habits with streaks, reminders, and progress visualization

flowmind

533
from sundial-org/awesome-openclaw-skills

Manage productivity with FlowMind — goals, tasks (with subtasks), notes, people, and tags via REST API. Use when the user wants to create, list, update, or delete goals, tasks, notes, contacts, or tags; manage focus/priorities; track progress; or organize their productivity workspace through FlowMind.

flow

533
from sundial-org/awesome-openclaw-skills

Intelligent skill orchestrator that compiles natural language requests into secure, reusable workflows

excalidraw-flowchart

533
from sundial-org/awesome-openclaw-skills

Create Excalidraw flowcharts from descriptions. Use when user asks to "create a flowchart", "draw a diagram", "visualize a process", "make a flow diagram", "architecture diagram", or discusses workflow/process visualization. Supports DSL, DOT/Graphviz, and JSON formats.

clawflows

533
from sundial-org/awesome-openclaw-skills

Search, install, and run multi-skill automations from clawflows.com. Combine multiple skills into powerful workflows with logic, conditions, and data flow between steps.

answeroverflow

533
from sundial-org/awesome-openclaw-skills

Search indexed Discord community discussions via Answer Overflow. Find solutions to coding problems, library issues, and community Q&A that only exist in Discord conversations.

portfolio-watcher

533
from sundial-org/awesome-openclaw-skills

Monitor stock/crypto holdings, get price alerts, track portfolio performance

portainer

533
from sundial-org/awesome-openclaw-skills

Control Docker containers and stacks via Portainer API. List containers, start/stop/restart, view logs, and redeploy stacks from git.

portable-tools

533
from sundial-org/awesome-openclaw-skills

Build cross-device tools without hardcoding paths or account names

polymarket

533
from sundial-org/awesome-openclaw-skills

Trade prediction markets on Polymarket. Analyze odds, place bets, track positions, automate alerts, and maximize returns from event outcomes. Covers sports, politics, entertainment, and more.