A small pet that lives in the Claude Code side pane. kiwi stays alive only if you do the real things: read your hours, take it for a walk, cook the dish on your weekly menu, exercise, and tick your daily habits. It reads the weather for where you are and asks for the walk when the sky clears.
From a clone, for every session:
claude plugin marketplace add bsssm/keepkiwi claude plugin install kiwi@keepkiwi
Then in Claude Code: /reload-plugins, then /kiwi. Edits to the folder are picked up by /reload-plugins.
For one session only: claude --plugin-dir bsssm/keepkiwi.
| Command | Does |
/kiwi | open the pane (buttons for everything below, hotkeys r w c m 1–5 while the pane has focus) |
/kiwi read 40 [what] | log 40 minutes of reading; read start / read stop runs a timer |
/kiwi walk [where] | walk done; walk start when you leave |
/kiwi feed <dish> | cooked it. The menu dish fills the meter; anything else is half |
/kiwi move 30 | exercise minutes (ran, gym work too) |
/kiwi did 1 3 5 | tick habits by number; did all |
/kiwi habit add <name> | add a daily habit (habit remove <name>) |
/kiwi by 13:00 2 | by 13:00 have 2 habits ticked (by clear) |
/kiwi sometimes add painting 7 | a now-and-then item every 7 days; /kiwi sometimes painting marks it done |
/kiwi setup | run the three questions again |
/kiwi snooze 2 | no nudges for two hours |
/kiwi status / reset / close | one line of state / fresh egg / close the pane |
You can also just say it in a prompt: "walked to dolores, back to the memo", "read 40 min", "cooked shakshuka", "ran" all count.
It starts as an egg. First run, the pane asks three questions: your daily habits, a checkpoint ("by 13:00, 2 of them"), and the now-and-then list ("painting every 7 days"). Then day one begins.
Five meters: read, walk, cook, move, habits. A day scores how many are full (habits are full at all but one). 3 of 5 is a good day. Three good days in a row and the egg hatches. It grows with age (chick, young at 7 days, grown at 21). Under 3 of 5 and it's upset the next morning and the streak resets; two such days in a row and it's sick; three and it's an egg again. Nothing happens while you sleep, only on days that pass.
Nudges: when the walk is not done and the weather opens a dry window (48°F or more, before 19:00), a band appears above the prompt with real buttons: walk now, after this turn, snooze 1h. It stays quiet while a turn runs.
/config → kiwi: name, tone (soft / dry / coach), reading goal, exercise goal, habits (or set them in the pane), weekly menu (mon=lentil soup, wed=shakshuka), latitude / longitude / city, mirror file, open on start.
One request an hour to Open-Meteo for weather, with lat/lon rounded to two decimals. Nothing else. State is in Claude Code's plugin store and mirrored to the JSON file you set (default ~/knowledge/personal/kiwi.json), so a dashboard or Obsidian can read it.
Apple Watch first. HealthKit can't be read from a Mac, so an iPhone Shortcut writes one small file to iCloud and kiwi reads it. Two minutes to set up:
1. Shortcuts app on iPhone → Automation → + → Time of Day → 23:30, Daily → Run Immediately. (Make a second one for 07:00 so the morning sees last night's sleep.)
2. Add action Find Health Samples: type Steps, Start Date is today, Group by Day, result Sum.
3. Add Find Health Samples: Sleep Analysis, value is Asleep, Start Date is yesterday 18:00, result Duration in hours.
4. Add Find Workouts: Start Date is today; then Calculate Statistics Sum of Duration (minutes).
5. Add Find Health Samples: Resting Heart Rate, Sort by Start Date latest, Limit 1.
6. Add Text with: {"date":"<Current Date, format yyyy-MM-dd>","steps":<steps>,"sleepHours":<sleep>,"workoutMinutes":<workout>,"restingHR":<hr>}
7. Add Save File: to iCloud Drive, folder kiwi, name health.json, Overwrite on.
On the Mac the file appears at ~/Library/Mobile Documents/com~apple~CloudDocs/kiwi/health.json, which is kiwi's default healthPath. /kiwi health reads it on demand; otherwise it's read every five minutes. 6,000 steps (configurable) marks the walk done. Workout minutes fill the move meter. Sleep hours and resting heart rate show in the pane and in the log; under six hours is flagged.
Whoop next: the official API (developer.whoop.com) exposes sleep, recovery, workouts and heart rate through OAuth. kiwi+ runs that sync and writes the same file, so the mod never changes. Until then, Whoop → Apple Health export → the Shortcut above also works.
Inside Claude Code: /plugin configure kiwi@keepkiwi or /config → kiwi. Fields: name, tone (soft / dry / coach), reading goal, exercise goal, habits (or set them in the pane), weekly menu (mon=lentil soup, wed=shakshuka), latitude / longitude / city, mirror file, health file, steps for the walk, open on start.