Install
openclaw skills install @liuyewang/computer-usage-summaryPrivate local app, project, and billable reports
openclaw skills install @liuyewang/computer-usage-summaryUse local ActivityWatch data first. This skill supports macOS, Windows, and
Linux wherever the local ActivityWatch API and Python 3.9+ are available. The
intended privacy-balanced setup records
only foreground apps, sanitized window titles, and AFK state. Do not install
browser extensions, enable aw-sync, configure cloud storage, or expose the
local API.
Accurate historical app time and AFK time exist only from the time ActivityWatch starts recording. Do not infer them from process uptime, macOS system logs, browser history, or undocumented databases.
Use this section only when ActivityWatch is missing, stopped, or needs repair.
codesign --verify --deep --strict and
spctl --assess --type execute. Stop if validation fails unless the user
explicitly decides otherwise.python -m pip install tzdata once so Python can resolve
IANA time zones such as Asia/Singapore consistently.http://127.0.0.1:5600 server has currentwindow and
afkstatus buckets containing events. The default AFK threshold is 180
seconds.When the app, local API, buckets, or requested-range events are unavailable:
unavailable,
not zero.Screen Time reported and do not read private databases.scripts/activitywatch_summary.py --date today, use --period week or
--period month around an anchor date, or use inclusive --start YYYY-MM-DD --end YYYY-MM-DD dates. Add --timezone Area/City for reproducible local
timestamps. Keep --api-url on the loopback interface.active_seconds and afk_seconds only when ActivityWatch confirms
them. Describe foreground_sessions as observed foreground intervals, not
process launches.confirmed only when it directly supports the described activity.--rules file. Match only sanitized titles. Explain that the
first matching rule wins and never create or upload rules without consent.--format markdown --table apps for chat.--format tsv --table apps to copy directly into spreadsheet software.--format tsv --table timeline for chronological rows.--format csv --table apps --csv-bom --output report.csv for an
Excel-friendly file, only when the user asks to save one.--report client-timesheet for project/client billable rows.--report weekly-review for a compact review table.--report app-trend for local daily trend rows.status, reason, and source columns.For conversational summaries, always use the following four sections, in this order, unless the user explicitly asks for a simpler or shorter output:
Today at a glance
unavailable; do not
estimate them.What you did
confirmed ActivityWatch, Screen Time reported, live snapshot, or metadata clue).App table
unavailable metrics rather than omitting the table.Caveats
Keep these sections even when one contains little or no data. A request such as "简单一点", "简要输出", "只要结论", or "只给表格" is an explicit request for a reduced format; then omit or compress only the sections the user asks to remove. Do not infer a reduced format merely because the request is short.
For a requested export (TSV, CSV, or a saved report), follow the export
format the user requested instead of wrapping it in these conversational
headings. If the user asks for both a summary and an export, provide the four
conversational sections first and then the requested export.
--hide-titles if
the user wants a title-free export.