TokenEconomizer
코딩 에이전트를 위한 경험 기반 블랙박스 비용 제어
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A desktop pet for macOS and Windows that shows what Claude Code is doing.
Install · Try it in your browser · Tricks · FAQ · Privacy · Write a trick
Pusheen, the default pet, on a window ledge, following one Claude Code turn: thinking, editing, running a command, waiting on you, done.
Unofficial fan project. Not affiliated with, endorsed by or sponsored by Anthropic. Claude, Claude Code and Clawd are Anthropic's; the optional Clawd skin is fan art of their character. The optional fan pack is fan art of other people's characters (see Fan pack). Pusheen is fan art of Pusheen Corp.'s character, not affiliated with or endorsed by Pusheen Corp.
You need: a Mac (tested on macOS 27; it should run on macOS 12.3 or later), Claude Code, and Apple's free command line tools, which the installer offers to install if they're missing.
git clone https://github.com/jaysteezy-max/hangabout.git && cd hangabout && ./install.sh
~/.hangabout and starts it: Pusheen appears at the bottom right of your screen.~/.claude/settings.json and asks first. If you say yes, it backs that
file up as settings.json.hangabout-backup-<time> and leaves everything else in it as it was.Run ./install.sh again any time to update.
One command is added to ten hook events: SessionStart,
UserPromptSubmit, PreToolUse, PostToolUse, PostToolUseFailure, PermissionRequest, Notification, Stop,
StopFailure and SessionEnd. Each looks like this:
"SessionStart": [
{ "hooks": [{ "type": "command", "command": "/Users/you/.hangabout/hangabout-hook", "timeout": 10 }] }
]
Hooks you already have stay where they are. ./install.sh --add-hooks adds them without asking (for when you've
already decided), and ./uninstall.sh takes exactly these back out.
/plugin marketplace add jaysteezy-max/hangabout
/plugin install hangabout@hangabout
The plugin brings its own hooks, so Hangabout never edits your settings (Claude Code itself records that the plugin is
on). The first session you start afterwards builds Hangabout into the plugin's data folder (a few seconds; it also needs
the command line tools) and starts the pet. Use the plugin or install.sh, not both, or you'll get two pets.
You need: Windows 10 or 11, Claude Code, and Python 3 to add the hooks. The hook and the window watcher are built with the C# compiler that comes with Windows. The pet runs in Electron, which the installer downloads (150 MB) and checks against its published checksum.
git clone https://github.com/jaysteezy-max/hangabout.git; cd hangabout; powershell -ExecutionPolicy Bypass -File install.ps1
It installs into ~\.hangabout and asks before adding the same ten hooks to ~\.claude\settings.json. Each runs
hangabout-hook.exe directly ("args": [], no shell), so it works with or without Git Bash, and Pusheen follows Claude
Code's PowerShell tool as well as Bash. To uninstall, run powershell -ExecutionPolicy Bypass -File uninstall.ps1. For
now she lives on the main display above a taskbar at the bottom or top, and the plugin install is Mac-only.
Hangabout used to be called hookpet. In your old clone, git pull and run ./install.sh: it quits the old pet, keeps
her size and behavior settings, swaps the old hooks in settings.json for the new ones (after a backup) and deletes
~/.claude/hookpet. With the plugin, right-click the old pet → Quit hookpet, take the old plugin out, then install
the new one as above:
/plugin uninstall hookpet@hookpet
/plugin marketplace remove hookpet
| Do this | She does this |
|---|---|
| Hover her | Does a happy wiggle and shows her status bubble |
| Click her | Pins the status bubble open with your recent tool calls; Esc or a click elsewhere closes it |
| Drag her | Dangles from your cursor; shake her and she gets dizzy |
| Double-click | Hops |
| Click a window | Notices, with a little "!" |
| Right-click | Tricks, Behavior, Skin, Size, Chirp when Claude needs you, Reduce motion, Fan pack, Enter a code…, Quit |
| Claude Code is… | Pusheen | Status bubble |
|---|---|---|
| Thinking | Looks about, a spinning star | Opens for each new plan step |
| Editing | Writing on a page: new lines in green, an old one scratched out in red | Lines added and removed |
| Running a command | Presses Enter on a little terminal, then watches the output scroll | The command and how long it's run |
| Waiting on you | A paw up, hopping, glowing | Stays open until you answer |
| Done | A happy hop and confetti | Opens briefly: files and commands this turn |
| Stopped on an error | Slumped, glitching | Stays open with the reason |
| Quiet for half an hour | Napping | Closed |
With several Claude Code sessions open she follows the one that needs you most: waiting on you, then stuck, then busy, then the latest.
Right-click → Behavior sets how busy she is when Claude doesn't need her. Your choice is saved.
| Preset | What it's like |
|---|---|
| Calm | Mostly lingers and strolls. Long pauses, slow walks, rare tricks, hardly ever leaves the floor. |
| Normal | The default mix of wandering, fidgets, jumps to windows and trips to the screen's edges. |
| Erratic | Barely sits still. Fast trots, lots of jumping, edge trips and rare tricks far more often. |
Right-click → Skin picks who lives on your screen. Your choice is saved.
| Skin | Who |
|---|---|
| Pusheen | The default pet: fan art of Pusheen the cat as her classic loaf, side on, with her striped tail tucked in. She moves like a cat: pattering on little legs, stretching, washing, napping with z's, blushing when happy, and every fan costume fitted to her face. Not affiliated with or endorsed by Pusheen Corp. Available with Fan pack off. |
| Cappy | A capybara, side on, who waves a front paw instead of a hand. |
| Clawd | Fan art of Anthropic's Clawd, Claude Code's mascot. Not affiliated with or endorsed by Anthropic. |
| Clay | A faceless clay soldier in grey clay, after the Clay Soldiers Minecraft mod: a cube head, chunky arms and legs, drawn three-quarters. Original art. |
| Hatty Hattington | Fan art of Hatty from BattleBlock Theater, front on, with his top hat, tears and cane. Not affiliated with or endorsed by The Behemoth. In the menu while Fan pack is on. |
| Behemoth chicken | Fan art of The Behemoth's chicken mascot, three-quarters on: a white egg with a blue crest and wattle, who flaps a wing instead of a hand. Not affiliated with or endorsed by The Behemoth. In the menu while Fan pack is on. |
| Minecraft slime | Fan art of Minecraft's slime as a cute jelly cube, three-quarters on, with tall eyes and blush. It has no legs, so it hops everywhere, squashing and stretching like jelly, and pushes out little nubs of slime for hands. Its own tricks: it splits into three little slimes, super-bounces like a slime block, shakes off a leaf that sticks to it, and melts into a puddle now and then. Not affiliated with or endorsed by Mojang or Microsoft. In the menu while Fan pack is on. |
| Blue Knight | Fan art of the Blue Knight from Castle Crashers, side on, crouched in his game idle with his sword level and his shield propped at his side. His gear has weight: he sets it down for anything that needs his hands and it pops back after. Ice magic, a sword combo, a bow shot and a sandwich of his own. Not affiliated with or endorsed by The Behemoth. In the menu while Fan pack is on. |
Every trick plays with any skin, and the fan-pack costumes fit Clawd front on and every side-on skin in profile. A skin
is one file in web/skins/ (how to make one); fan-art skins of other people's characters show in the
menu only while Fan pack is on, except Pusheen, who is always available.
Core tricks, all original: dance, juggle, cartwheel, a sneeze, a paper plane, sneaking through the screen's edge and climbing its side, plus everyday fidgets (stretch, yawn, scratch, hop, sit, wave, look around, peeking over the Dock). On a window ledge she peeks over it, sits with her legs swinging, or goes fishing. Some moves answer what's happening: she waves when you come back to your Mac, yawns before she dozes off, trips now and then mid-walk, sometimes dances when Claude finishes clean, settles in by the fire with a coffee after a long turn, and leaves you a sticky note if Claude finishes while you're away. Pick any of them from right-click → Tricks.
Make your own. A trick is one file in web/tricks/: some poses with timings, and optionally something to draw. Try it
in the browser mockup before you install it. TRICKS.md walks
through it, and in this repo you can ask Claude Code to "make a new trick" (there's a new-trick skill for it).
Off by default. Turn it on with right-click → Fan pack. It adds ten fan-made tricks of other people's characters, and they're secrets: you find them by what you do, and right-click → Tricks counts how many you've found. Fix your failing tests, say, or drop her from way up, or keep a steady beat on her. Each one, once found, is in the Tricks menu and turns up on its own now and then.
They're original pixel art made as homage, after Dragon Ball, Berserk, Vinland Saga, Marvel's Silver Surfer and Spider-Man, Star Wars, Destiny, Portal 2 and Michael Jackson's moonwalk, not affiliated with or endorsed by any of those rights holders, and they'll be removed on request.
Hooks only reach Claude Code sessions started after they were added, so start a new session. If that doesn't help, run
./install.sh again: it says whether the hooks are in ~/.claude/settings.json. While Claude works,
~/.hangabout/state.json should keep changing.
The first session after installing builds Hangabout; if that failed, the reason is in build.log in the plugin's data
folder (~/.claude/plugins/data/hangabout-*/). Some setups skip plugin hooks altogether: an organization's
allowManagedHooksOnly policy, or a host app's own plugin security layer. In that case use install.sh instead.
Two copies are each getting Claude Code's hooks, and every new session starts any that isn't running.
install.sh are both installed. Keep one: ./uninstall.sh, or /plugin uninstall hangabout@hangabout."hooks" section of ~/.claude/settings.json, look for a command other than ~/.hangabout/hangabout-hook.
Back the file up, delete those entries (there's one per event), quit that copy and remove its folder.
./uninstall.sh only removes hooks that run hangabout-hook (or hookpet-hook, its old name), so it won't catch
the others.No. The hook is a small native program that takes about 5 ms per event, prints nothing and always exits 0, so it can't block or change anything Claude does.
Right-click → Enter a code… and type the code with your arrow keys and letters, then press Return. It turns the Fan pack on and finds every secret at once.
↑ ↑ ↓ ↓ ← → ← → B A
Not yet: she lives on your main display (the one with the menu bar).
Clawd on Desk is a bigger, cross-platform app (Windows, macOS, Linux) that follows many coding agents and can approve permission requests for you. Hangabout is deliberately small: a native macOS app just for Claude Code that only watches (it never approves or blocks anything), uses no network, roams across your actual windows, and is made to be extended one trick file at a time. Both are unofficial fan projects.
./uninstall.sh
It asks once, then quits Hangabout, removes its hooks from ~/.claude/settings.json (after a backup), and deletes
~/.hangabout and its saved preferences. Your other settings and hooks stay as they are.
With the plugin: right-click → Quit Hangabout, then /plugin uninstall hangabout@hangabout.
Everything stays on your Mac. Hangabout makes no network requests: no telemetry, no accounts, no update checks.
hangabout-hook) reads each event Claude Code sends it and writes a small state.json next to itself:
per session, the mood, the current tool call as Claude Code prints it (for example Update(page.mts) or the first
40 characters of a command), the first line of your prompt (up to 80 characters), the titles of the plan's steps,
line counts for edits, the last 8 tool calls, and where the session's transcript is. A session is dropped when it
ends, or after 24 hours.A ready-to-run download has to be signed and notarized by Apple, which needs a paid Apple Developer account. Without
that, macOS blocks a downloaded app. Apps you build yourself aren't blocked, so install.sh builds on your Mac in a few
seconds. A notarized download could come later if the project gets a developer account.
Claude Code ── hook events ──▶ hangabout-hook ──▶ state.json ──▶ Hangabout.app ──▶ web/pet.html (the pet)
│
your windows, mouse, menu ┘
| Path | What it is |
|---|---|
web/pet.html | The whole pet: pixel engine, behavior, the status bubble. Opened in a browser it's a mockup desktop with buttons for every state and trick. |
web/tricks/ | One file per trick (core/ ships on; fan/ is the fan pack). |
app/Hangabout.swift | The app: a transparent, click-through layer over your main screen hosting the page. |
app/HangaboutHook.swift | The hook: turns Claude Code events into state.json. |
install.sh, uninstall.sh, build.sh | Install, remove, build. scripts/hooks.py edits settings.json. |
app/win/, *.ps1 | Windows: the app in Electron (main.js, preload.js), the hook and window watcher in C#, and their install, remove and build scripts. |
.claude-plugin/, hooks/ | The Claude Code plugin. |
Tricks, fixes and ideas are welcome: see CONTRIBUTING.md. To try changes, open web/pet.html in
a browser (or run python3 -m http.server -d web and open http://localhost:8000/pet.html).
MIT for the code. Clawd, Claude and Claude Code are Anthropic's (the Clawd skin is fan art); fan-pack characters belong to their owners.