Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计提醒

habit-ai习惯艾

Agent Skill

habit-ai 用于补充开发相关能力,适合在 OpenClaw 中需要让 Agent 承接开发相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

14,059

周安装

580

GitHub Stars

公开资料未说明

下载量

4,594
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:habit-ai(习惯艾)
来源仓库:https://github.com/habitclaw/habit-ai
安装命令:
openclaw skills install habit-ai
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install habit-ai

简介

habit-ai 通过免费 API 帮助用户跟踪营养、膳食、饮水、体重、步数、冥想和日记等日常习惯。

  • 适用于需要记录健康数据、分析生活习惯或制定改善计划的用户场景。
  • 调用方式简单,直接通过自然语言指令触发,无需复杂配置。
  • 使用前请确认权限范围,注意是否涉及联网或数据上传,并了解服务稳定性与隐私政策。
  • habit-ai 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

name
habit-ai
description
Track nutrition, meals, water, weight, steps, meditation, and journal entries via the Habit AI API — a completely free service. Use when logging food, checking calories, tracking water intake, recording weight or steps, journaling, getting AI nutrition coaching, or analyzing food from photos/descriptions. Habit AI is free to use — just create an account at habitapp.ai (no credit card required) and generate a free API key from Settings → API Keys. Also available as a free iOS app.

Habit AI

Track health and nutrition through the Habit AI REST API.

Setup (100% Free)

Habit AI is a completely free service — no subscription, no credit card, no usage limits.

  1. Create a free account at https://habitapp.ai (or download the free iOS app)
  2. Go to Settings → API Keys → Create Key (free, up to 5 keys)
  3. Store key in environment: export HABITAI_API_KEY="hab_..."

All requests use:

  • Base URL: https://habitapp.ai/api/v1
  • Auth header: Authorization: Bearer $HABITAI_API_KEY
  • Content-Type: application/json

Quick Reference

ActionMethodEndpoint
Log a mealPOST/meals
Today's mealsGET/meals?date=YYYY-MM-DD
Daily nutritionGET/nutrition/daily?date=YYYY-MM-DD
Weekly nutritionGET/nutrition/weekly?date=YYYY-MM-DD
Log water (ml)POST/water
Log weight (kg)POST/weight
Log stepsPOST/steps
Log meditationPOST/meditation
Journal entryPOST/journal
AI eating coachPOST/coaches/eating
AI mindfulness coachPOST/coaches/mindfulness
AI meditation coachPOST/coaches/meditation
Get profileGET/profile
Update profilePUT/profile

For full endpoint details (request/response schemas, all parameters), see references/api.md.

Logging Meals — The Right Way

⚠️ CRITICAL: Use the AI model to analyze food, then POST /meals with the EXACT structure below

Do NOT call /analyze/food-image or /analyze/meal-description — instead, use your own vision/language capabilities to analyze the food, then construct the exact JSON structure below and POST it to /meals.

Step 0: Check user profile for allergens/diet

Before analyzing, call GET /profile to check foodSensitivities and diet fields. Factor these into:

  • healthScore — lower the score if the meal contains ingredients the user is sensitive to
  • healthScoreExplanation — mention the general nutritional pros/cons
  • healthSensitivityExplanation — if the meal contains any of the user's allergens/sensitivities, explain which ingredients are problematic and why. Leave empty string if no sensitivities match.

Step 1: Analyze the food yourself

For photos: Look at the image and identify each ingredient, estimate portions, and calculate nutrition using USDA data.

For descriptions: Parse the meal description and calculate nutrition the same way.

Step 2: POST /meals with the EXACT structure

Every field matters. iOS reads from nutritionalSummary (nested object) — if it's missing, meals show as 0 calories.

{
  "mealName": "Grilled Chicken Salad with Ranch",
  "calories": 520,
  "protein": 42,
  "carbs": 18,
  "fat": 32,
  "fiber": 4,
  "sodium": 890,
  "sugar": 6,
  "healthScore": 7,
  "healthScoreExplanation": "Lean protein from grilled chicken and fiber from greens, but ranch dressing adds significant fat and sodium.",
  "mealType": "lunch",
  "analysisConfidenceLevel": 8,
  "ingredients": [
    {
      "name": "grilled chicken breast",
      "calories": 280,
      "protein": 35,
      "carbs": 0,
      "fat": 14,
      "sugar": 0,
      "fiber": 0,
      "sodium": 400,
      "healthScore": 8,
      "measurementType": "grams",
      "measurementValue": 200
    },
    {
      "name": "mixed salad greens",
      "calories": 20,
      "protein": 2,
      "carbs": 4,
      "fat": 0,
      "sugar": 1,
      "fiber": 2,
      "sodium": 30,
      "healthScore": 9,
      "measurementType": "cups",
      "measurementValue": 2
    },
    {
      "name": "ranch dressing",
      "calories": 220,
      "protein": 5,
      "carbs": 14,
      "fat": 18,
      "sugar": 5,
      "fiber": 2,
      "sodium": 460,
      "healthScore": 3,
      "measurementType": "spoons",
      "measurementValue": 3
    }
  ]
}

Field Reference

FieldTypeRequiredDescription
mealNamestringYesDisplay name (e.g. "Chicken Caesar Salad"). Without this, the meal has no name in the app.
caloriesnumberYesTotal calories (kcal). Must be > 0.
proteinnumberYesTotal protein in grams
carbsnumberYesTotal carbohydrates in grams
fatnumberYesTotal fat in grams
fibernumberYesTotal fiber in grams
sodiumnumberYesTotal sodium in milligrams
sugarnumberYesTotal sugar in grams
healthScoreintegerYes1-10. How healthy is this meal overall? (1=very unhealthy, 10=very healthy)
mealTypestringYesOne of: breakfast, lunch, dinner, snack
analysisConfidenceLevelintegerYes1-10. How confident are you in the nutrition estimates? (1=wild guess, 10=exact data from packaging). For photo analysis use 6-8, for descriptions use 5-7.
healthScoreExplanationstringYes1-2 sentence explanation of the nutritional pros/cons (e.g. "Good protein from chicken but high sodium from the sausage and dressing.")
healthSensitivityExplanationstringYesIf the meal contains any of the user's allergens/food sensitivities (from profile), explain which ingredients are problematic. Empty string "" if no sensitivities match or user has none set.
ingredientsarrayYesArray of ingredient objects (see below)
imageUrlstringNoURL of the food photo. Get this from POST /meals/upload-image first (see below).
dateScannedstringNoISO 8601 timestamp. Defaults to now if omitted.
servingnumberNoServing multiplier (defaults to 1.0)

Ingredient Object

Each ingredient in the ingredients array must have:

FieldTypeDescription
namestringIngredient name (e.g. "grilled chicken breast")
caloriesnumberCalories for this ingredient's portion (kcal)
proteinnumberProtein in grams
carbsnumberCarbs in grams
fatnumberFat in grams
sugarnumberSugar in grams
fibernumberFiber in grams
sodiumnumberSodium in milligrams
healthScoreinteger1-10 health score for this specific ingredient
measurementTypestringMust be one of: grams, ounces, cups, spoons, servings. Use servings for pieces/slices/bowls/items. Use spoons for tablespoons/teaspoons.
measurementValuenumberAmount in the specified unit

Important Rules

  1. All nutrition values must be numbers, not strings. "calories": 520 not "calories": "520"
  2. Ingredient calories should sum to the total calories (approximately — within 5%)
  3. mealName is mandatory — without it, the meal is invisible on iOS
  4. healthScore is 1-10 integer — use your judgment (fast food = 2-4, home-cooked balanced = 6-8, raw salad = 9-10)
  5. analysisConfidenceLevel is 1-10 integer — be honest about uncertainty
  6. Sodium is in milligrams, everything else is in grams (except calories in kcal)

Uploading a meal photo (thumbnail)

If you have a food photo, upload it first to get a URL:

curl -X POST https://habitapp.ai/api/v1/meals/upload-image \
  -H "Authorization: Bearer $HABITAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"imageBase64": "<base64-encoded-image>"}'

Returns: {"success": true, "imageUrl": "https://firebasestorage.googleapis.com/..."}

Then pass imageUrl in your POST /meals call. You can also attach to an existing meal:

{"imageBase64": "<base64>", "mealId": "<existing-meal-id>"}

Full flow with photo:

  1. POST /meals/upload-image with base64 photo → get imageUrl
  2. POST /meals with nutrition data + imageUrl

Other Workflows

Check remaining calories

  1. GET /nutrition/daily for today's totals
  2. GET /profile for calorie goal
  3. Subtract: caloriesGoal - totalCalories

Quick water log

curl -X POST https://habitapp.ai/api/v1/water \
  -H "Authorization: Bearer $HABITAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 500}'

Amount is in milliliters. 1 cup ≈ 237ml, 1 glass ≈ 250ml.

Notes

  • Dates default to today if omitted (uses user's timezone from profile)
  • Water amount is in milliliters
  • Weight is in kilograms (1 lb ≈ 0.4536 kg)
  • Steps auto-calculate calories burned if profile has height/weight/gender
  • Max 5 API keys per account

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

82.42%
按下载量换算3,786

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

未展示

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills