Skip to content

coffee-and-fun/purr-status

Repository files navigation

purr-status

Talk to your Litter-Robot through Claude.

Ask "how's the cat box?" and get a real answer. Tell Claude to run a clean cycle and it actually does. Get a daily summary every morning, set alerts for when the drawer is full, and stop opening the Whisker app for routine checks.

Works with Litter-Robot 3 Connect and Litter-Robot 4.

Not affiliated with Whisker. This plugin uses the same cloud the official mobile app uses, by way of the open-source pylitterbot project. Whisker can change their API at any time and break this plugin. See the disclaimer at the bottom.


What you can do

Once it's installed, just talk to Claude in plain English:

  • "How's the cat box?" — current status, drawer level, recent cycles
  • "Run a clean cycle on Meowbot" — triggers the rotation, refuses if a cat is detected inside
  • "When will the drawer be full?" — predicts based on recent activity
  • "Morning briefing" — one-paragraph summary of every robot, alerts, predictions
  • "Alert me when the drawer is over 80%" — saves a threshold, fires next time you ask
  • "Lock the panel until tomorrow" — kid-proof / accident-proof your unit
  • "Sleep mode 10 PM to 6 AM" — the robot stays quiet while you sleep
  • "Reset the drawer — I just emptied it" — clears the cycle counter

Multi-cat households on LR4 can also ask things like "who used the box more today, Mochi or Pepper?" — Claude uses the per-cycle weight readings to tell them apart.


Install (3 minutes)

Step 1 — Get the plugin file

Download purr-status.plugin from Releases.

Step 2 — Drop it into Claude

In the Claude desktop app, drag purr-status.plugin onto the window. Approve the install when it asks.

Step 3 — Restart Claude

Fully quit (⌘ Q on Mac) and reopen so the plugin's background server starts up.

Step 4 — Sign in once

Open Terminal and paste this command. It will figure out where Claude installed the plugin and run the login script:

node "$(find "$HOME/Library/Application Support/Claude" -name purr-login.js -path '*purr-status*' 2>/dev/null | head -1)"

On Windows or Linux, replace $HOME/Library/Application Support/Claude with the equivalent Claude data folder for your OS.

You'll be prompted for your Whisker email and password — the same ones you use in the Whisker mobile app. Your password is hidden as you type it. Once you see "Signed in", close the Terminal.

That's it. You're done. Your password is saved nowhere — only a refresh token, in ~/.purr-status/credentials.json, readable only by you.

Step 5 — Try it

Open Claude. In a new chat, type:

How's the cat box?

You should get a quick status reply.


Common questions

Will Claude ask permission every time?

No. After the first install, every tool is auto-approved at the connector level. The only safety check that still blocks an action is the cat-detect: if your cat is sitting in the box right now, Claude will refuse to start a clean cycle — that's intentional.

If you ever do want approval prompts back, you can change it in Claude's settings under the connector for purr-status.

Where's my data going?

Nowhere new. The plugin runs on your computer and talks directly to Whisker's cloud, the same one your phone app uses. There's no purr-status server in the middle.

Is my Whisker password stored anywhere?

No. The login script exchanges your password for a refresh token immediately, then forgets the password. Only the refresh token is written to disk, at ~/.purr-status/credentials.json, with permissions that only your user account can read.

What if I change my Whisker password?

Run the login command from Step 4 again. It overwrites the saved token. You'll need to re-enter your new password once.

What if I have more than one robot?

Refer to them by their nickname (the name you set in the Whisker app), not the serial number. Claude will ask which one you mean if there's any ambiguity.

How do I update the plugin?

Drag the newer purr-status.plugin onto Claude — it'll replace the old one. Restart Claude. Your saved login carries over.


If something breaks

"This plugin file has invalid characters" when installing. You're on an old version (≤ 0.2.x). Grab the latest release.

Claude says "you're not signed in" but you ran the login script. Re-run the login command in Step 4 — your token may have expired or been revoked. If that doesn't help, run with DEBUG=1:

DEBUG=1 node "$(find ... )"   # the same find command from Step 4

and open an Issue with the output.

"Whisker API rejected the request" or 4xx errors. Whisker may have rotated their API. Check Issues — if no one has reported it yet, please open one. Fix usually involves updating a constant from the latest pylitterbot release.

Clean cycle didn't actually start, even though Claude said it did. The unit may be offline, in an error state, or have a cat inside. Ask Claude "is everything OK with the box?" — it'll surface anything blocking.


Disclaimer

This plugin is an unofficial integration. Whisker (the maker of Litter-Robot) does not publish or endorse this. The Whisker API isn't documented and they can change it without notice — when they do, this plugin will break until someone updates the constants and ships a new release.

Use at your own risk. The plugin source is open — read every file before you trust it. If you see anything off, file an issue.


Credits

The hard part — figuring out the Whisker API in the first place — was done by the pylitterbot community. This plugin is a Node port that follows their lead and updates when they update.

Built by Coffee & Fun LLC. MIT licensed. Cats lightly inconvenienced.

About

Status, stats, and remote control for Litter-Robot 3 Connect and Litter-Robot 4 (unofficial Whisker API).

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors