AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A pet for CLAUDE CODE using MODS
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Work in progress. Mochi works day to day, but parts are still changing, and some things may break. Feedback and issues are welcome.
On this page: Quick start · What she does · Shortcuts · How it works · Development · Privacy · Roadmap
xcode-select --install. Mochi builds from source, so this is required.Requirements: macOS 13 or later (the Liquid Glass look needs macOS 26; earlier versions use a frosted style), Claude Code 2.1 or later with the Claude desktop app, and the Xcode command line tools. The app is not notarised yet, so macOS may show a warning the first time you open it.
The full steps, with checks, are in CLAUDE-SETUP.md. In short:
# 1. Build the app where the plugin expects to find it
mkdir -p "$HOME/Documents/Claude Mods/Mochi Desktop"
cp -R mochi-desktop/. "$HOME/Documents/Claude Mods/Mochi Desktop/"
(cd "$HOME/Documents/Claude Mods/Mochi Desktop" && sh build.sh)
open "$HOME/Documents/Claude Mods/Mochi Desktop/Mochi.app"
# 2. In a Claude Code chat, install the plugin (choose the user scope)
/plugin marketplace add <path to this folder>
/plugin install pet-mod@mochi
Then start a new chat and send a message. Mochi should show "Working", then "Ready".
The images below are drawn by the app's own views with made-up chats, not captured from a screen, so no real chat names appear. Liquid Glass can't be drawn off screen, so a frosted panel stands in for it. See Development to regenerate them.
Her pose, her badge, and her colours tell you the state of your chats at a glance.
| Mochi | Meaning |
|---|---|
| Walking, dots on her badge | Claude is working |
| Wiggling, sound | Claude needs your OK or has a question |
| Hopping, green check | Claude has finished; she stays "ready" until your next message |
| Grey, squinting | A reply was interrupted or failed |
Her mood follows your limit. Past 70% of either limit her eyes get a lid, so she looks tired. With less than an hour left in the 5-hour window, a countdown sits on the right end of the usage bar. It is orange, then red in the last 30 minutes.
When a chat asks for your OK, her card has Allow and Deny buttons, so you can answer without switching to Claude. It is laid out like Claude's own permission dialog: the question, the whole command or path in a box, and Deny and Allow once with their keys. The mode keys are listed only in chats that can switch modes.
Claude gives her about 8 seconds to answer before its normal prompt appears, so click quickly. Requests that only read or search files, or run read-only commands like ls or git status, never show a card; Claude still asks you in its own window. Turn the card off in her right-click menu, and the normal prompt shows at once.
By default she only pops up for a chat that needs your OK. Finished work, usage warnings and her thoughts go to her list, not to a card or sound. Turn on everything from her right-click menu.
Click her to see your recent chats in boxes, grouped by what they are doing.
A label above her shows your 5-hour and weekly limits. Clicking it opens a box with the state (on track, getting high, almost out, or out of usage), both limits as bars, and when each one resets. Refresh asks Claude for the exact numbers, the same as /usage. If you are out of usage, the box shows when you can continue.
Three round buttons appear under her when you move the pointer near her.
While a live chat is in Auto mode (a model decides which requests to approve), gold sparkles appear around her. They go away when the mode changes.
The scroll button opens two tabs. This week shows the week's turns and approvals each day, that day's peak 5-hour usage, the most active chats, and your week limit. Diary shows twelve weeks as squares, the darker the busier, with the busiest day, active days and your streak. Mochi keeps a small daily count in ~/.claude/mochi/days.json, with no chat content.
Now and then she thinks out loud in a bubble above her: how long is left in her 5-hour window, a warning near the limit, chats that are ready, or a fun fact. One at a time, only when nothing needs you, and she stays quiet when you ask her to.
Six skins, chosen from her right-click menu under Skin.
Mochi Studio is a small app to change her body, eyes, accessory (none, bow, hat, or scarf), and name, with a live preview. It saves to the same file Mochi reads, opens with the look you saved, and previews her in the skin chosen in Mochi's menu, drawn the way Mochi draws it. Undo and redo (⌘Z and ⇧⌘Z) step back through every change.
These work from any app, even when Mochi is not in front.
| Key | What it does |
|---|---|
| F5 | Open a quick note |
| F6 | Start talking |
| F7 | Allow the request on her card |
| F8 | Deny it |
| F9 | Allow it and switch that session to Accept edits. Only from Manual, and only for that session. |
| F10 | Allow it and switch that session to Auto. From Manual or Accept edits, and only for that session. |
| Option-J | Open the chat that has waited longest for your OK |
flowchart LR
C[Claude chat] -->|plugin reports status and events| F[~/.claude/mochi/]
F -->|Mochi reads every second| M[Mochi on your screen]
M --> L[Click her: list of every chat]
M --> K[Cards beside her: finished, questions, approvals]
M --> U[Usage label above her]
U -->|click| CL[Runs /usage for exact numbers]
M --> Q[Pencil: quick note, starts a session]
M --> T[Microphone: speak into the note]
K -->|Allow or Deny| A[answers/ file]
A -->|plugin reads the answer| C
Mochi is built as a mod for Claude Code. A mod is a small TypeScript plugin that runs inside Claude Code and reacts to events, such as a chat finishing or a tool asking for approval. According to a report from IT-Connect, Anthropic announced mods on 1 October 2026, and they are enabled by default from Claude Code 2.1.287. That date comes from a single source, so check it against Anthropic's own documentation. Plugins, a related feature, were announced on 9 October 2025.
| Path | What it is |
|---|---|
pet-mod/ | The Claude Code plugin (TypeScript; its tests run with Bun). It reports what each chat is doing, and waits for her answer to an approval. Hooks are in pet-mod/hooks/register.ts. |
mochi-desktop/ | The macOS app that shows Mochi on your screen: one Swift file, main.swift, built with build.sh. |
mochi-studio/ | The macOS app for customising how Mochi looks (SwiftUI). |
media/ | Press and launch assets, and the screenshot renderer. See media/README.md. |
docs/ | Images used in the docs. |
test.sh | Runs every test and builds both apps. |
~/.claude/mochi/The plugin and the apps talk to each other only through plain files in this folder.
| File | What it holds |
|---|---|
sessions/<chat>.json | The status and recent events each chat reports. The plugin writes it, Mochi reads it. |
answers/<chat>.json | Your Allow or Deny, which the plugin picks up. |
presence.json | Mochi tells the plugin she is here and which requests she is showing. The plugin waits for her answer only while she is. |
usage.json | The newest plan-usage reading. |
days.json | The daily counts behind This week and Diary, with no chat content. |
look.json | Her look. Mochi Studio saves it, Mochi reads it. |
shortcuts.json | Which global shortcuts macOS accepted (0 is accepted, anything else is an error code). |
mochi.log | A log with times, so a failed step can be found afterwards. |
New work goes on the dev branch, with tests for each change. Every three days, dev is merged into main only if every test passes.
sh test.sh # all tests, then a build of both apps
sh mochi-desktop/build.sh # builds mochi-desktop/Mochi.app
sh mochi-studio/build.sh # builds mochi-studio/Mochi Studio.app
sh media/snapshots.sh # redraws the README screenshots
test.sh runs the plugin's approval tests (pet-mod/tests/approval.test.ts, with Bun), Mochi Desktop's and Mochi Studio's logic tests (mochi-desktop/tests/, mochi-studio/tests/), and builds both apps. It ends with ALL TESTS PASSED when everything passes.
The desktop tests run against the real code: test.sh appends the test file to main.swift, cut just before the app starts. media/snapshots.sh uses the same trick to draw the real views with made-up data into media/screenshots/. Run it after you change how something looks, then commit the new images. It needs only the Xcode command line tools, and it reads nothing from ~/.claude/mochi.
~/.claude/mochi/ and in the Claude app's own folders./usage does. Nothing is sent that you haven't already sent through Claude.Claude didn't have a pet, so I made one for myself. I wanted a companion that lives alongside my work: one that tells me when things finish, asks for my attention when a chat needs me, and shows how much of my limit is left, without my having to watch every chat.
MIT. See LICENSE.