clawd-usage-winwidget

skill
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Pass
  • Code scan — Scanned 2 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

Claude usage limits in a tiny Windows widget + tray icon — with pixel Clawd who reacts to your Claude Code sessions, looks after your PC and chats with you, from the widget or your phone. PowerShell, no dependencies.

README.md

clawd-usage-winwidget

A tiny floating window + tray icon for Windows that shows how much of your Claude
plan limits you've used — the same numbers as /usage in Claude Code, refreshed
every minute. And a pixel Clawd who lives in it and reacts to what your sessions
are doing.

A session starts working, finishes, then waits for you

English · Русский

  • Official numbers only. Percentages come from claude -p "/usage" — the
    slash command runs headless, talks to Anthropic with your existing login and
    does not call the model or spend tokens.
  • No dependencies. Plain Windows PowerShell 5.1 + WPF, which ship with
    Windows. No Node, no npm, no installer. You only need Claude Code itself.
  • Clawd. The crab from Claude Code's welcome screen, built from the same block
    glyphs and with the same animations. He sleeps when nothing runs, runs around
    when a session works, waves when a session is waiting for you, sweats near the
    limit and lies belly-up when it's used up.
Widget with details expanded

Install

Requirements: Windows 10/11 and Claude Code
installed and logged in (claude on PATH).

git clone https://github.com/Enhed/clawd-usage-winwidget.git

or download the ZIP and unpack it anywhere. Then double-click start-widget.vbs
(it starts the widget silently, without a console window).

Start with Windows — run once in PowerShell from the widget folder:

$a = New-ScheduledTaskAction -Execute "wscript.exe" -Argument "`"$PWD\start-widget.vbs`""
$t = New-ScheduledTaskTrigger -AtLogOn
Register-ScheduledTask -TaskName "clawd usage widget" -Action $a -Trigger $t -RunLevel Limited

Only one copy runs at a time, so a manual start next to autostart is harmless.

Windows hides new tray icons in the overflow (^). To keep it visible:
Settings → Personalization → Taskbar → Other system tray icons → clawd-usage-winwidget.

What it shows

  • Big number — current session (the 5-hour window), straight from the server.
    The bar goes green → yellow (60%) → red (85%).
  • resets in 3h 03m — time until the window resets, from the exact reset time
    in /usage.
  • WEEK — weekly limit and time to reset. FABLE · WEEK — the separate
    weekly Fable limit; hidden if /usage doesn't report it.
  • SESSIONS — how many Claude Code sessions are running, how many are
    working and how many are waiting for you. Hover for the list: ▶ working,
    ? waiting (permission, question, dialog — what exactly is in brackets),
    ○ idle, plus the folder. Handy for catching a forgotten agent quietly
    burning your limit.
  • Service status — green "All Claude systems operational", or yellow/red
    with the active incident and affected components. Click opens
    status.claude.com.
  • Tray icon — the same percentage as a colored number; the tooltip adds the
    week and Fable.
  • Bottom line — your plan and account email (red "not logged in" if auth
    expired) and the time of the last /usage answer, marked "stale" if it's old.

The ▾ in the header expands details (remembered between runs):

  • LAST 24 HOURS / LAST 7 DAYS — requests, sessions and the "What's
    contributing to your limits usage?" breakdown from /usage: share on large
    context, always-on context, subagent-heavy sessions, top MCP servers, skills
    and subagents. Claude Code itself calls this approximate and counts only this
    computer.
  • Version — your Claude Code version. If a newer one is out the line turns
    yellow: hover for the official CHANGELOG between your version and the latest,
    click to run claude update in a separate window; otherwise a click opens
    Claude Code's changelog. Next to it is the widget's own version: hover for what's
    new in it, click for its CHANGELOG.md on GitHub.

Left-click the tray icon to show/hide the window; right-click for the menu:
refresh, larger/smaller, look the computer over, open config, language, Clawd's session, exit. Drag the window anywhere —
the position is saved.

Clawd

No Claude Code running — burrows into the sand and sleeps
No Claude Code running — burrows into the sand and sleeps
Click him — a random Claude Code animation and a heart
Click him — a random Claude Code animation and a heart
Session limit used up — belly-up; click and his soul floats out
Session limit used up — belly-up; click and his soul floats out
The 5-hour window resets — celebration and confetti
The 5-hour window resets — celebration and confetti
Hearts are his health — the session limit left
Hearts are his health — the session limit left
The sky follows real time of day and live weather
The sky follows real time of day and live weather
situation Clawd
Claude Code isn't running burrows into the sand and sleeps, "z"s float up
sessions are idle wanders, looks around, follows your cursor, whistles; sometimes waves or stretches
10 minutes with no mouse over the window dozes standing up, sometimes startles
a session is working runs edge to edge with a focused squint, dust flying
a session is waiting for you wide eyes, jumps and waves, yellow "?" above
a session just finished crouches and throws his arms up, like in Claude Code
you click him a random Claude Code animation — jump, spin, peekaboo, wink, boop, sneeze, coin hop… — and a heart
the 5-hour window resets celebrates: two jumps, green "!", confetti
session above the red threshold sweats and darts his eyes
session at 100% lies belly-up with X eyes; click him and his soul floats out on a string, anime-style

The three hearts in the header are his health, tamagotchi-style: how much of the
session limit is left. Each half-heart is about 16.7%; zero hearts only at 100%.
Health changes how he behaves on top of everything above — full of energy he
walks faster and hops, tired he yawns and slows down, barely alive he staggers,
sweats and sometimes trips over.

Right-click Clawd for developer mode: force any state, play any animation, set
the hearts, pick time of day and weather, or play everything as a demo.
"Auto" goes back to live data.

Sky

Behind the numbers there's a faint sky that fades into the window edges. It
follows real sunrise and sunset for your location: the sun moves along an arc,
at night there's the moon in its actual phase and twinkling stars. Weather adds
clouds drifting with the wind, drizzle, rain, showers, snow (that settles under
Clawd's feet), fog and thunderstorms. Hover for city, temperature, weather, wind,
sunrise and sunset.

Weather comes from Open-Meteo, falling back to
met.no where Open-Meteo is blocked; both need no key.
Location is looked up once per run by IP via ipwho.is — set
weatherLat / weatherLon to skip that. Without network the sky still follows
the clock. Turn it off with showSky.

Clawd's panel: tips and chat

An icon in the header opens a panel beside the widget; it stays open until you
close it with the cross or the icon, and stays on top only if the widget does
(topmost). The icon tells what's waiting: a bell — a
reminder went off, a blue chat — Clawd answered, a lamp with a number — tips
(yellow if urgent), a grey chat — nothing, just talk.

Tips. Every half hour Clawd quietly looks the computer over:

  • drives running out of space, and how much sits in Temp, Downloads, the Recycle
    Bin, crash dumps and npm / pip / Yarn / scoop caches;
  • new entries in autostart (what was there on the first run is taken as known);
  • apps not started for 90+ days — by Windows' own record of launches from Start,
    the taskbar and Explorer; apps in PATH or run as services count as used;
  • a restart Windows Update is waiting for, a long uptime, a program eating lots of
    memory or keeping the CPU busy two checks in a row.

Each tip links to the right place and has Do it (Clawd answers with a script
to approve), Refine (your next message goes to him with the tip, e.g. "all
but scoop") and Dismiss; it comes back after a
while if it's still true (a day; a month for unused apps). The check is local and
read-only — no network, no tokens. "Look the computer over now" in the tray menu
runs it right away. Turn it off with showAdvisor.

Chat. Ask Clawd anything about the computer, answer a tip ("clean it all up,
but leave Redis alone") or ask for a reminder ("on Monday at 10 remind me to call
the client", "in 20 minutes — hang the laundry"). Each message is a headless
claude -p call in a conversation of its own (your Claude Code sessions are not
touched), with the current tips, time and reminders attached. Clawd may look
around but can't change anything himself: no write tools, MCP servers off, only
read-only commands allowed. A change comes as a script you see in full, with
Run, Refine (write what to change — the script is replaced) and Not
now
. Reminders are kept by the widget and fire on time with a card to
put them off, a bell in the header and a hop from Clawd — even with the panel
closed. The chat uses your plan's limits; the model is chatModel (Sonnet by
default), showChat turns it off.

Reminders and lists. A reminder that goes off shows as a card in the
bottom-right corner, like a phone notification: put it off — +15m, +1h, +3h,
tomorrow 9:00 or any time — or mark it done; it waits until you answer. The panel has three tabs: Chat, Reminders and Lists.
Reminders shows what's coming (Change, +1 hour, Delete) and a form to add one:
the "when" field understands 18:30, tomorrow 10, +20m, mon 9:00,
19.10 14:00 and shows what it made of it. Lists keeps shopping and any other
lists with checkboxes — add several items at once with commas, tick them off,
remove the ticked ones, start a new list with "+". Both are plain files in Clawd's
home, so the chat ("add milk to shopping") and Clawd on your phone ("what do I need
to buy?") work with the same ones.

Clawd's home and his own session. The chat works in Clawd's home folder
(clawdHome). Reminders are plain files there (lists too, in lists\) —
reminders\2026-11\2026-11-16 10-00 Pay the taxes.md with an at: line — so
anyone can make one: the chat, Clawd's session, or you by hand; fired ones move to
reminders\done. After each check the tips are written to tips.md there. With
clawdSession the widget also keeps Clawd's own interactive Claude Code session
running in that folder with Remote Control — talk to him from the Claude app on
your phone: he reads tips.md, makes reminders and keeps notes in the same home.
He is told about all this by clawd-session-prompt.md. While that session is
idle Clawd can still fall asleep; when you talk to him he runs around.

The panel and the phone are two conversations with one Clawd: the panel shows the
phone conversation in the same feed (marked "Remote Control"), its chat gets the
latest part of it as context, and the panel's conversation is written to
chat-log.md in the home for the phone session to read. "+" in the panel starts
a new conversation there and hides the phone conversation so far; on the phone
/clear starts a new one in the same Remote Control entry, and the feed follows.

Where the data comes from

what source how often
limits and stats claude -p "/usage" --output-format text every 60 s
sessions ~/.claude/sessions/<pid>.json, kept by Claude Code itself; only live processes count every tick
account claude auth status every 10 min
latest version downloads.claude.ai/claude-code-releases/latest (or stable if autoUpdatesChannel says so) — the same URL the official installer uses hourly
changelog raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md only when an update is available
status status.claude.com/api/v2/summary.json every 2 min
weather Open-Meteo / met.no, location via ipwho.is every 15 min

/usage takes about two seconds, so it runs asynchronously and the window never
freezes. If it doesn't answer, the widget keeps the last numbers and marks them
stale.

Don't run claude -p "/usage" by hand from Git Bash: MSYS rewrites /usage
into a path (C:/Program Files/Git/usage) and the prompt goes to the model,
spending tokens. PowerShell and cmd are fine.

config.json

Created next to the script on first save; open it from the tray menu. Changes
are picked up on the fly, no restart needed.

key meaning
language en or ru (also in the tray menu)
scale window scale, 0.6–4.0 (default 1.35; also "Larger" / "Smaller" in the tray menu)
opacity window opacity, 0–1
topmost keep the window above all others
warnPercent / critPercent yellow and red thresholds
expanded details expanded
showStats / showStatus / showSessions / showAccount show the corresponding block
showMascot / showSky Clawd and the sky behind him
weatherLat / weatherLon coordinates for weather; empty — by IP
showAdvisor Clawd's tips about the computer
showChat / chatModel / chatTimeoutSeconds the chat with Clawd; its model; a reply taking longer is cancelled (300 s)
advisorDiskGB / advisorJunkGB free space to warn below; size of temp files and caches worth mentioning, GB
advisorUnusedDays / advisorUptimeDays / advisorMemPercent when an app counts as unused; when to suggest a restart; memory share of one program worth a word
runAsAdmin run the widget itself as administrator: at start it asks UAC and restarts elevated (declined — runs as usual). Elevated, the tips also read Prefetch (the exact last start of every program, terminal ones included), Windows Temp and Windows Update downloads
clawdHome Clawd's home folder: the chat works there, reminders and tips.md live there, and so does his own session; empty — %USERPROFILE%\Clawd
clawdSession keep Clawd's own Claude Code session running in his home with Remote Control (named after the widget, clawdSessionName), to talk to him from the phone or claude.ai (default off; also in the tray menu). Started with the widget and again if it's gone; starts its own conversation and comes back to it. Skipped while another session runs in that folder
clawdSessionAdmin / clawdSessionHidden run that session as administrator; without a window (default on; a folder Claude Code hasn't trusted yet still opens in a window, to answer the trust question)
refreshSeconds, usageIntervalSeconds, versionIntervalSeconds, statusIntervalSeconds, accountIntervalSeconds, weatherIntervalSeconds, advisorIntervalMinutes polling periods, seconds
left / top window position, written when you drag it

Troubleshooting

Errors in the update loop never crash the widget: the bottom-right corner shows
"error" and details go to widget-error.log next to the script.

If you edit the scripts: .ps1 files must stay UTF-8 with BOM — without it
Windows PowerShell 5.1 reads them as ANSI and breaks on non-ASCII text. Syntax
check:

foreach ($f in @('.\widget.ps1') + (Get-ChildItem .\lib\*.ps1).FullName) {
    $err = $null
    [void][System.Management.Automation.Language.Parser]::ParseFile((Resolve-Path $f), [ref]$null, [ref]$err)
    if ($err) { $f; $err }
}

How it's built

widget.ps1 is the entry point: single instance, loads the modules from lib\
and runs the WPF loop. The window layout is in widget.xaml. Modules are
dot-sourced into one shared script scope in a fixed order; each may rely on the
ones loaded before it. All UI text lives in lib\i18n.ps1 — adding a language
is one more table there.

tools/ holds the recorder that made the GIFs in this README: it boots the
widget with scripted fake data and renders frames straight from WPF. It needs
ffmpeg and Pillow; the widget itself doesn't.

License

MIT


Not affiliated with Anthropic. Clawd and Claude are Anthropic's.

Reviews (0)

No results found