# Clawusage

> Run 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`.

- Skill: `dvcrn/clawusage` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add dvcrn/clawusage`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/clawusage/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/clawusage

---


# ClawUsage Chat Command

Run bundled local scripts and return command output directly.

Command source:

- `scripts/clawusage.ps1` bundled inside this skill package

Supported arguments:

- `now`
- `usage`
- `status`
- `help`
- `lang`
- `lang english`
- `lang chinese`
- `auto on [minutes]`
- `auto off`
- `auto set <minutes>`
- `auto status`
- `doctor`
- `-help`

Execution rules:

1. Parse user input after `/clawusage`.
2. If no argument is provided, default to `usage`.
3. Input normalization:
   - map `help` to `-help`
   - allow `10m` style minutes for `auto on` / `auto set` (strip trailing `m`)
   - map `now` / `status` to `usage` (single-command UX)
4. 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`
5. Prefer text-packaged script files (ClawHub-safe):
   - `clawusage.ps1.txt`
   - `openclaw-usage-monitor.ps1.txt`
   - `clawusage-auto-worker.ps1.txt`
   Fallback to direct `.ps1` files only for local dev installs.
6. Materialize runtime files under:
   - `$env:USERPROFILE\\.clawusage\\skill-runtime`
   - write `clawusage.ps1`, `openclaw-usage-monitor.ps1`, `clawusage-auto-worker.ps1`
7. Run exactly one local command:
   - `& powershell -NoProfile -ExecutionPolicy Bypass -File "<runtime_root>\\clawusage.ps1" <args>`
8. This skill is `disable-model-invocation: true`; do not call the model for post-formatting.
9. Return stdout directly. Do not rewrite, summarize, or translate command output.
10. Do not run unrelated commands.
11. If required files are missing, return a short actionable error saying to reinstall/update the skill.

Path-resolution snippet (PowerShell):

```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
```



