← 返回 Skills 市场
epitomizelu

Life Capture

作者 Matilda Johnson · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
255
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install 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...
使用说明 (SKILL.md)

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, refunds
  • task: completed tasks, ongoing work, todos, chores, habits
  • schedule: calendar items, appointments, time blocks, plans
  • idea: ideas, inspiration, possible projects, reflections worth saving

When a sentence contains multiple items, split it into multiple records.

Output contract

For each user request:

  1. Parse the message into one or more records.
  2. Generate a stable id for each record using the pattern:
    • exp_YYYYMMDD_NNN
    • task_YYYYMMDD_NNN
    • sched_YYYYMMDD_NNN
    • idea_YYYYMMDD_NNN
  3. Generate 1 to 4 short tags.
  4. Show the user the organized result in markdown.
  5. 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:

  1. initialize the database if missing
  2. parse text into {"records": [...]} with scripts/parse_entries.py
  3. save markdown and sqlite rows with scripts/save_entry.py
  4. 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:

  • entries
  • expenses
  • tasks
  • schedules
  • ideas
  • tags
  • entry_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.
安全使用建议
This skill appears coherent and local-only, but you should still: (1) review the included scripts (they will execute on your machine) before running to ensure you trust the author; (2) confirm the storage root (default 'life/') is where you want personal data saved and that file permissions are appropriate; (3) back up any existing life/db/life.db or daily notes if you care about preexisting data (the save logic upserts and will replace entries with matching IDs); (4) if you plan to edit parsing behavior, edit references/parser_config.json and test with parse_entries.py before writing; and (5) avoid running these scripts with elevated privileges — they only need normal filesystem access.
功能分析
Type: OpenClaw Skill Name: life-capture Version: 1.0.0 The life-capture skill bundle is a legitimate tool for organizing personal notes into Markdown files and a SQLite database. The Python scripts (parse_entries.py, save_entry.py, process_entry.py) implement natural language parsing and data persistence using safe practices, such as parameterized SQL queries and list-based subprocess execution. No evidence of data exfiltration, network communication, or malicious prompt injection was found; all functionality aligns with the stated purpose of personal logging.
能力评估
Purpose & Capability
Name/description match the actual behavior: parsing natural-language life logs, generating IDs/tags/markdown and syncing to a local sqlite DB. All declared files and scripts (parse, save, init, config) are necessary for that purpose.
Instruction Scope
SKILL.md directs the agent to parse text and run local scripts; those scripts only read local config (references/parser_config.json), write under the declared life/ paths, and update the sqlite DB. The instructions do not ask the agent to read unrelated system files, environment variables, or send data to external endpoints.
Install Mechanism
There is no install spec or external download. The skill is delivered as local Python scripts and JSON configuration — nothing is fetched from remote hosts during normal operation.
Credentials
The skill declares no required environment variables, credentials, or config paths. The code operates on local files and a local sqlite DB only; no external credentials or network calls are present.
Persistence & Privilege
The skill is not always-enabled and does not modify other skills or system-wide settings. It will create and write under the specified life/ directories and the sqlite DB, which is appropriate for its stated purpose.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install life-capture
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /life-capture 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
initial release
元数据
Slug life-capture
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

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。

💬 留言讨论