clawusage-windows-hardlock
v0.2.1Run local clawusage monitoring commands from chat (Telegram/Feishu). Use when user types `/clawusage ...` or asks to check Codex usage, enable/disable auto idle alerts, set idle reminder threshold, or switch language with `lang english|chinese`.
Installation
Please help me install the skill `clawusage-windows-hardlock` from SkillHub official store.
npx skills add fantasyengineercdream/clawusage-windows-hardlock
ClawUsage Chat Command
Run bundled local scripts and return command output directly.
Command source:
scripts/clawusage.ps1bundled inside this skill package
Supported arguments:
nowusagestatushelplanglang englishlang chineseauto on [minutes]auto offauto set <minutes>auto statusdoctor-help
Execution rules:
- Parse user input after
/clawusage. - If no argument is provided, default to
usage. - Input normalization:
- map
helpto-help - allow
10mstyle minutes forauto on/auto set(strip trailingm) - map
now/statustousage(single-command UX) - Resolve skill script directory in this order:
$env:USERPROFILE\.openclaw\workspace\skills\clawusage\scripts$env:USERPROFILE\.openclaw\skills\clawusage\scripts- first recursive match under
$env:USERPROFILE\.openclaw\ending with\clawusage\scripts - Prefer text-packaged script files (ClawHub-safe):
clawusage.ps1.txtopenclaw-usage-monitor.ps1.txtclawusage-auto-worker.ps1.txtFallback to direct.ps1files only for local dev installs.- Materialize runtime files under:
$env:USERPROFILE\.clawusage\skill-runtime- write
clawusage.ps1,openclaw-usage-monitor.ps1,clawusage-auto-worker.ps1 - Run exactly one local command:
& powershell -NoProfile -ExecutionPolicy Bypass -File "<runtime_root>\clawusage.ps1" <args>- This skill is
disable-model-invocation: true; do not call the model for post-formatting. - Return stdout directly. Do not rewrite, summarize, or translate command output.
- Do not run unrelated commands.
- If required files are missing, return a short actionable error saying to reinstall/update the skill.
Path-resolution snippet (PowerShell):
$scriptDirs = @(
"$env:USERPROFILE.openclawworkspaceskillsclawusagescripts",
"$env:USERPROFILE.openclawskillsclawusagescripts"
)
$dir = $scriptDirs | Where-Object { Test-Path -LiteralPath $_ } | Select-Object -First 1
if (-not $dir) {
$dir = Get-ChildItem -Path "$env:USERPROFILE.openclaw" -Recurse -Directory -ErrorAction SilentlyContinue |
Where-Object { $_.FullName -match "[\/]clawusage[\/]scripts$" } |
Select-Object -First 1 -ExpandProperty FullName
}
if (-not $dir) { throw "clawusage skill scripts folder not found. Reinstall clawusage skill." }
$runtimeRoot = Join-Path $env:USERPROFILE ".clawusageskill-runtime"
New-Item -ItemType Directory -Path $runtimeRoot -Force | Out-Null
$pairs = @(
@{ target = "clawusage.ps1"; srcTxt = "clawusage.ps1.txt"; srcPs1 = "clawusage.ps1" },
@{ target = "openclaw-usage-monitor.ps1"; srcTxt = "openclaw-usage-monitor.ps1.txt"; srcPs1 = "openclaw-usage-monitor.ps1" },
@{ target = "clawusage-auto-worker.ps1"; srcTxt = "clawusage-auto-worker.ps1.txt"; srcPs1 = "clawusage-auto-worker.ps1" }
)
foreach ($p in $pairs) {
$srcTxt = Join-Path $dir $p.srcTxt
$srcPs1 = Join-Path $dir $p.srcPs1
$dst = Join-Path $runtimeRoot $p.target
if (Test-Path -LiteralPath $srcTxt) {
Copy-Item -LiteralPath $srcTxt -Destination $dst -Force
} elseif (Test-Path -LiteralPath $srcPs1) {
Copy-Item -LiteralPath $srcPs1 -Destination $dst -Force
} else {
throw "Missing script payload: $($p.srcTxt) (or $($p.srcPs1)). Reinstall clawusage skill."
}
}
& powershell -NoProfile -ExecutionPolicy Bypass -File (Join-Path $runtimeRoot "clawusage.ps1") @args