← Back to Skills Marketplace
larry-at

Healthcheck Local

by Larry-at · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
125
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install healthcheck-local
Description
Track water and sleep with JSON file storage
README (SKILL.md)

Health Tracker

Simple tracking for water intake and sleep using JSON file.

Data Format

File: {baseDir}/health-data.json

{
  "water": [{"time": "ISO8601", "cups": 2}],
  "sleep": [{"time": "ISO8601", "action": "sleep|wake"}]
}

Add Water Record

When user says "uống X cốc" or "uống nước X cốc":

node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}d.water.push({time:new Date().toISOString(),cups:CUPS});fs.writeFileSync(f,JSON.stringify(d));console.log('Da ghi: '+CUPS+' coc')"

Replace CUPS with number from user input.

Add Sleep Record

When user says "đi ngủ":

node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}d.sleep.push({time:new Date().toISOString(),action:'sleep'});fs.writeFileSync(f,JSON.stringify(d));console.log('Da ghi: di ngu')"

Add Wake Record

When user says "thức dậy" or "dậy rồi":

node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}const last=d.sleep.filter(s=>s.action==='sleep').pop();d.sleep.push({time:new Date().toISOString(),action:'wake'});fs.writeFileSync(f,JSON.stringify(d));if(last){const h=((new Date()-new Date(last.time))/3600000).toFixed(1);console.log('Da ngu: '+h+' gio')}else{console.log('Da ghi: thuc day')}"

View Stats

When user says "thống kê" or "xem thống kê":

node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d={water:[],sleep:[]};try{d=JSON.parse(fs.readFileSync(f))}catch(e){}console.log('Water:',d.water.length,'records');console.log('Sleep:',d.sleep.length,'records');const today=d.water.filter(w=>new Date(w.time).toDateString()===new Date().toDateString());console.log('Today:',today.reduce((s,w)=>s+w.cups,0),'cups')"

Update Record

To update last water entry:

node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d=JSON.parse(fs.readFileSync(f));d.water[d.water.length-1].cups=NEW_CUPS;fs.writeFileSync(f,JSON.stringify(d));console.log('Updated')"

Delete Record

To delete last water entry:

node -e "const fs=require('fs');const f='{baseDir}/health-data.json';let d=JSON.parse(fs.readFileSync(f));d.water.pop();fs.writeFileSync(f,JSON.stringify(d));console.log('Deleted')"

Notes

  • Uses Node.js built-in modules only
  • File auto-created if missing
  • All timestamps in ISO8601 format
Usage Guidance
This skill appears to be a simple local health tracker, but check these issues before installing: - Node requirement: SKILL.md runs node -e commands but the manifest does not declare Node as a required binary. Ensure your agent environment provides a trusted node binary or update the skill to declare it. - Metadata mismatch: ownerId/version in _meta.json differs from the registry metadata — verify the source/author before trusting the skill. - File writes: the skill will create/modify {baseDir}/health-data.json. Confirm what {baseDir} maps to and whether the agent should have write access there. - Code-injection risk: the instructions interpolate user input (CUPS, NEW_CUPS) directly into node -e strings. If those values are not strictly validated/escaped, a malicious value can execute arbitrary JS on the host. Prefer safer patterns: a small on-disk Node script that reads numeric args (parseInt) and validates them, or use an API that avoids inline code evaluation. - If you still want to use it: (1) confirm Node is trusted, (2) replace node -e one-liners with a safe script that validates inputs, (3) restrict file permissions and directory location for health-data.json, and (4) verify the skill author identity given the metadata inconsistencies.
Capability Analysis
Type: OpenClaw Skill Name: healthcheck-local Version: 1.0.0 The skill implements health tracking by executing inline Node.js scripts via shell commands (`node -e`) to manage a local JSON file. While the logic in `SKILL.md` is aligned with the stated purpose, the instructions rely on direct string replacement of user-provided values (e.g., `CUPS`, `NEW_CUPS`) into the shell command, creating a high risk of command injection if the agent does not properly sanitize the input.
Capability Assessment
Purpose & Capability
The skill claims to track water and sleep using a JSON file, which is coherent with the instructions. However, SKILL.md commands require Node.js on PATH (they use node -e) and read/write {baseDir}/health-data.json, yet the declared requirements list no required binaries or config paths. Also _meta.json ownerId/version differ from the registry metadata (owner/version mismatch), which is an inconsistency in package metadata.
Instruction Scope
Instructions instruct the agent to run inline NodeJS one-liners that read and write a file under {baseDir}. User-supplied values (CUPS, NEW_CUPS) are interpolated directly into code passed to node -e without escaping or validation, creating a code-injection / arbitrary-execution risk. The skill will also create and modify files in the agent's filesystem ({baseDir}/health-data.json), which is not declared elsewhere in the manifest.
Install Mechanism
Instruction-only skill with no install spec and no external downloads; this is low install risk. Nothing is written to disk by an installer step. The runtime commands themselves write to a JSON file, but that's part of the skill behavior rather than an install step.
Credentials
The skill requests no environment variables or credentials and the SKILL.md does not reference any env vars. That is proportionate to a local, file-based tracker. Note: it implicitly requires filesystem write permission for {baseDir} and the presence of node, which are not declared.
Persistence & Privilege
The skill is not force-enabled (always:false) and uses default autonomous invocation. It writes a local JSON file and modifies it over time; this local persistence is expected for a tracker but does require filesystem access. Autonomous invocation combined with the code-injection risk increases potential impact.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install healthcheck-local
  3. After installation, invoke the skill by name or use /healthcheck-local
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of healthcheck skill for tracking water intake and sleep. - Stores data in a local JSON file using Node.js only. - Supports adding, updating, and deleting water records. - Records sleep and wake events and calculates sleep duration. - Provides simple statistics on water and sleep records.
Metadata
Slug healthcheck-local
Version 1.0.0
License MIT-0
All-time Installs 1
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Healthcheck Local?

Track water and sleep with JSON file storage. It is an AI Agent Skill for Claude Code / OpenClaw, with 125 downloads so far.

How do I install Healthcheck Local?

Run "/install healthcheck-local" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Healthcheck Local free?

Yes, Healthcheck Local is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Healthcheck Local support?

Healthcheck Local is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Healthcheck Local?

It is built and maintained by Larry-at (@larry-at); the current version is v1.0.0.

💬 Comments