Life Capture
/install life-capture
life-capture
Turn natural-language life logs into durable records. This skill classifies each input item, generates tags, creates user-visible markdown, writes to a daily note under life/daily, and syncs structured data into life/db/life.db.
Default storage layout
Use these paths unless the user explicitly overrides them:
life/
daily/
ideas/
db/life.db
Create missing directories as needed. Never delete existing content. Append or update only.
Supported record types
Map every parsed item to exactly one primary type:
expense: spending, bills, purchases, subscriptions, refundstask: completed tasks, ongoing work, todos, chores, habitsschedule: calendar items, appointments, time blocks, plansidea: ideas, inspiration, possible projects, reflections worth saving
When a sentence contains multiple items, split it into multiple records.
Output contract
For each user request:
- Parse the message into one or more records.
- Generate a stable
idfor each record using the pattern:exp_YYYYMMDD_NNNtask_YYYYMMDD_NNNsched_YYYYMMDD_NNNidea_YYYYMMDD_NNN
- Generate 1 to 4 short tags.
- Show the user the organized result in markdown.
- Save the records by running
scripts/process_entry.py.
Always keep the original user wording in raw_text. Never invent missing fields. Leave unknown fields null.
User-visible response format
Because this skill is configured for visible output, show a concise but complete result after writing:
## 已整理记录
### 1) \x3Ctype label>
- ID: \x3Cid>
- 标签: #a #b
- 归档: \x3Cdaily markdown path>
- 数据库: \x3Cwritten/skipped>
#### Markdown
\x3Cthe markdown block written for this item>
#### JSON
```json
\x3Cthe parsed record json>
If there are multiple records, repeat the block for each one.
## Parsing rules
Use `scripts/parse_entries.py` for natural-language parsing. The parser now reads configurable rules from `references/parser_config.json`, so prefer editing that file instead of changing Python when you need new categories, tags, or keyword mappings.
### Expense
Extract when present:
- `amount`
- `currency` (default `CNY` only when the currency symbol or language implies RMB; otherwise null)
- `category`
- `subcategory`
- `merchant`
- `pay_method`
Default top-level tags often include `开销` plus one semantic tag such as `餐饮` or `交通`.
Preferred categories:
- 饮食
- 交通
- 购物
- 居家
- 社交
- 娱乐
- 医疗
- 学习
- 其他
### Task
Extract when present:
- `status` (`todo`, `doing`, `done`, `cancelled`)
- `priority` (`low`, `normal`, `high`)
- `project`
- `due_date`
- `completed_at`
If the user says they already did something, default status to `done`.
### Schedule
Extract when present:
- `schedule_date`
- `start_time`
- `end_time`
- `location`
- `status` (`planned`, `done`, `skipped`)
If the user uses relative dates, resolve them from the current conversation date. Prefer passing `--today YYYY-MM-DD` to `scripts/process_entry.py` or `scripts/parse_entries.py` so relative dates like `明天` are stable across environments.
### Idea
Extract when present:
- `idea_type`
- `status` (`captured`, `reviewing`, `used`, `archived`)
- `related_task_id`
Default status to `captured`.
## Configurable parsing rules
Before editing Python, check whether the change can be made in `references/parser_config.json`.
You can change:
- category and subcategory mappings for expenses
- task project mappings
- idea type mappings
- schedule extra tag mappings
- default tags by record type
- hint regexes used in type inference
To test a modified config without changing the bundled default file:
```bash
python scripts/parse_entries.py --config /path/to/custom_config.json --text "买咖啡 18 元,明天下午两点去体检"
Markdown writing rules
Write each record into the daily note for its effective date under one of these sections:
## 开销## 任务## 日程## 灵感
Use this block structure:
### \x3Cid>
- 时间:\x3Ctime or empty>
- 标签:#tag1 #tag2
- 原始描述:\x3Craw_text>
- 摘要:\x3Csummary>
Then add type-specific fields:
- Expense: 金额 / 币种 / 分类 / 子分类 / 商家 / 支付方式
- Task: 状态 / 优先级 / 项目 / 截止日期 / 完成时间
- Schedule: 日期 / 开始时间 / 结束时间 / 地点 / 状态
- Idea: 类型 / 状态 / 关联任务
Execution workflow
End-to-end one-command flow
Use this when the user provides natural language and wants the records saved immediately:
python scripts/process_entry.py --root life --db life/db/life.db --today 2026-03-10 --text "今天中午牛肉面 26 元,下午整理了书桌,想到可以做一个生活数据看板"
The wrapper script will:
- initialize the database if missing
- parse text into
{"records": [...]}withscripts/parse_entries.py - save markdown and sqlite rows with
scripts/save_entry.py - print parsed records plus save results as json
Split-step flow
Use this when the user asks to inspect or verify the structured output before writing:
python scripts/parse_entries.py --text "明天下午两点去体检,买咖啡 18 元"
Then save:
python scripts/save_entry.py --root life --db life/db/life.db --stdin-json
Database init only
Use this once before first write if life/db/life.db does not exist and you are not using process_entry.py:
python scripts/init_db.py --db life/db/life.db
Database sync rules
The database design is:
entriesexpensestasksschedulesideastagsentry_tags
See references/schema.md for the schema, references/examples.md for sample payloads and commands, and references/configuration.md plus references/parser_config.json for configurable parsing rules.
Failure handling
- If markdown write succeeds but database sync fails, say so clearly.
- Do not silently drop a record.
- If parsing is ambiguous, make the narrowest safe interpretation and preserve the original text.
- If a record is missing a critical type-specific field, still save the record with null fields rather than discarding it.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install life-capture - 安装完成后,直接呼叫该 Skill 的名称或使用
/life-capture触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Life Capture 是什么?
capture daily-life notes into markdown and sqlite. use when the user wants to record one or more life entries such as expenses, completed tasks, schedules, r... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 255 次。
如何安装 Life Capture?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install life-capture」即可一键安装,无需额外配置。
Life Capture 是免费的吗?
是的,Life Capture 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Life Capture 支持哪些平台?
Life Capture 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Life Capture?
由 Matilda Johnson(@epitomizelu)开发并维护,当前版本 v1.0.0。