HabitChat

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

HabitChat is a coherent local habit tracker, but its reminder feature writes shell scripts with unescaped habit names, which could run unintended commands if scheduled.

HabitChat’s basic tracking appears local and purpose-aligned, but be cautious with the reminder feature. Until the shell-script escaping issue is fixed, use simple habit names and avoid enabling scheduled reminders for names containing quotes, backticks, dollar signs, semicolons, or other shell characters.

Findings (3)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

ConcernHigh Confidence
ASI05: Unexpected Code Execution
What this means

If a reminder is enabled for a specially crafted habit name, the generated reminder script could run unintended commands under the user’s account.

Why it was flagged

The stored habit name is inserted directly into a bash script that may be run by cron. Because shell metacharacters are not escaped, a crafted habit name containing backticks, $(...), quotes, or semicolons could execute commands when the reminder fires.

Skill content
script_content = f'''#!/bin/bash\nnotify-send \"HabitChat\" \"Time for: {habit[\"name\"]}\" --icon=dialog-information\necho \"[$(date -u +%Y-%m-%dT%H:%M:%SZ)] {habit[\"name\"]}: Reminder fired\" >> \"{REMINDERS_LOG}\"\n'''\nscript_path.write_text(script_content)\nos.chmod(script_path, 0o755)
Recommendation

Do not enable reminders for habits containing shell metacharacters until fixed. The skill should escape or reject unsafe characters, avoid generating shell scripts from raw habit names, or pass user text through a safe data file/API instead of executable script content.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

Scheduled reminders may run later outside the agent conversation, and disabling in the skill may still require removing any cron entry the user added.

Why it was flagged

The reminder feature creates executable scripts and provides cron instructions. This persistence is disclosed and user-activated, but it can continue outside the chat session if the user adds the cron job.

Skill content
script_path.write_text(script_content)\nos.chmod(script_path, 0o755) ... "To activate, add a cron job: crontab -e and add:"
Recommendation

Only add cron entries after inspecting the generated script. Use crontab -l / crontab -e to review and remove HabitChat reminder jobs when no longer wanted.

What this means

Habit names and completion history may reveal personal routines or health-related behavior to anyone or any process that can read files in the user account.

Why it was flagged

The skill intentionally keeps persistent local records of habits, completions, streaks, and preferences for future coaching.

Skill content
All habit data is stored in `~/.habitchat/` as JSON files. ... habits.json ... logs.json ... streaks.json ... config.json
Recommendation

Avoid entering highly sensitive habit details if local file exposure is a concern, and review or delete ~/.habitchat/ when you no longer want the data retained.