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)
- map
- 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\.openclaw\workspace\skills\clawusage\scripts",
"$env:USERPROFILE\.openclaw\skills\clawusage\scripts"
)
$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 ".clawusage\skill-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