/install life-state
life-state
A boring, durable state primitive. NOT a chat experience — it's the integration glue that lets other skills (morning_brief, future workout suggester, bedtime brief) adapt to your current state instead of returning the same template every day.
When to invoke
User describes how they feel, their energy level, soreness, or sleep quality. Examples:
- "feeling tired today, energy 4, sore chest"
- "slept well, energy 8"
- "good mood but quads are wrecked"
- "headache, low energy"
- "morning check-in: normal mood, energy 6, slept ok"
How to invoke
Use the life-state CLI via Bash. YAML output to stdout.
Capture state (merge semantics — only updates the fields you pass)
life-state set --mood tired --energy 4 --sore chest,triceps --sleep poor --note "headache, late night"
Flags (all optional, at least one required):
--mood \x3Cm>—great | good | normal | tired | terrible(freeform accepted; lowercased)--energy \x3Cn>— 1-10 (rejected outside that range)--sleep \x3Cq>—good | ok | poor(freeform accepted)--sore \x3Clist>— comma-separated muscle groups (e.g.chest,triceps)--note "\x3Ctext>"— free-text annotation--date YYYY-MM-DD— override (default: today)
Merge semantics: calling set twice on the same day updates only the fields passed. Morning check-in + post-workout check-in compose cleanly.
Read today's state
life-state get
life-state get --date 2026-05-15
Week aggregate
life-state week # last 7 days
life-state week --days 14 # last 14 days
Returns avg energy, mood histogram, top soreness areas, and per-day rollup.
Data location
~/.life/state/\x3Cdate>.json — one JSON file per day. Stable, known location every other lifekit skill should read from.
Schema:
{
"date": "2026-05-15",
"mood": "tired",
"energy": 4,
"soreness": ["chest", "triceps"],
"sleep_quality": "poor",
"note": "headache, late night",
"updated_at": "2026-05-15T19:30:00.000Z"
}
Notes for the agent
- Don't be Sol. This skill has no personality — capture the state and confirm tersely. Personality belongs in
morning_brief, not here. - Parse loosely from natural language. "feeling tired, energy 4" →
--mood tired --energy 4. "sore chest and triceps" →--sore chest,triceps. - Merge, don't replace. If user adds "energy 6 now" later in the day, only update
--energy. Don't wipe morning mood. - Recommend the enum values when you summarize back, but accept freeform — if a user says "drained" or "wired," store it verbatim; downstream skills can pattern-match or pass-through.
- Other skills should read this state at the start of their flow:
morning_brief: read yesterday'ssleep_quality+ today'senergyto vary breakfast / day prep- workout suggester (when built): read today's
energy+sorenessto adapt volume - bedtime brief: read today's
noteto tailor wind-down
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install life-state - 安装完成后,直接呼叫该 Skill 的名称或使用
/life-state触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Life State 是什么?
Daily mood / energy / soreness / sleep capture primitive. Other lifekit skills read this to make state-aware suggestions instead of generic templates. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 94 次。
如何安装 Life State?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install life-state」即可一键安装,无需额外配置。
Life State 是免费的吗?
是的,Life State 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Life State 支持哪些平台?
Life State 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Life State?
由 Denys(@dsdevq)开发并维护,当前版本 v0.1.0。