Skip to content

BlueOcean223/hey-clawd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

144 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

hey-clawd

English ยท ็ฎ€ไฝ“ไธญๆ–‡

thinking building wizard music dump

A macOS menu-bar desktop pet โ€” Clawd reacts in real time to what your AI coding assistant is doing. It integrates with Claude Code, Codex CLI, Cursor, Gemini CLI, GitHub Copilot CLI, CodeBuddy and Pi, and plays different animations for idle / thinking / working / error / sleep states. For Claude Code and CodeBuddy it can also surface tool-use permission prompts as floating bubbles so you never have to return to the terminal just to click "allow".

Highlights

  • Reacts to 7 AI coding tools โ€” Claude Code, CodeBuddy, Cursor, Gemini CLI, Copilot CLI via hooks; Pi via extension; Codex CLI via JSONL log monitoring.
  • Permission bubbles โ€” approve or deny tool use for Claude Code / CodeBuddy without leaving your editor; passthrough tools (TaskCreate, TaskUpdate, โ€ฆ) auto-allow.
  • Custom Core Animation SVG pipeline โ€” no WebView. 50+ hand-drawn states on a 15ร—16 pixel grid, cached via LRU.
  • Lightweight & native โ€” Swift 6 + AppKit/Core Animation. No WebView, no embedded JS runtime. Low CPU and memory footprint.
  • Menu-bar only (LSUIElement) with mini edge-hugging mode, eye tracking that follows your cursor, and a Do-Not-Disturb toggle.
  • Auto-updating via Sparkle (EdDSA-signed appcast).
  • Single external dependency: Sparkle. Everything else is Swift 6 + stdlib.

Requirements

  • macOS 12 (Monterey) or newer
  • Node.js (for bundled installers to register hooks/extensions into Claude Code / Cursor / Gemini / CodeBuddy / Pi on first launch)

Install

Download the release

Grab the latest .dmg from GitHub Releases, drag hey-clawd.app into /Applications, and launch. The app lives in the menu bar โ€” right-click the Clawd icon to open the tray menu.

If macOS Gatekeeper blocks launch, first try right-click โ†’ Open once. If you see messages like โ€œapp is damagedโ€, โ€œApple could not verifyโ€, or the app simply refuses to open, remove the quarantine flag manually:

xattr -dr com.apple.quarantine /Applications/hey-clawd.app

Then launch the app again.

On first launch it starts a local HTTP server on 127.0.0.1:23333 (falls back to 23334โ€“23337) and runs the bundled installers to register hooks/extensions into any detected AI tools. Tools that aren't installed are skipped. You can re-run registration anytime from the tray menu โ†’ Register Hooks.

Build from source

# Swift Package Manager (debug)
swift build
.build/debug/hey-clawd

# Release build
swift build -c release

# Xcode (matches CI)
xcodebuild -project hey-clawd.xcodeproj -scheme hey-clawd -configuration Release archive

Supported integrations

Tool Method Direction Permission bubble Terminal focus
Claude Code hook bidirectional โœ… โœ…
CodeBuddy hook bidirectional โœ… โœ…
Gemini CLI hook one-way โ€” โœ…
Cursor hook one-way โ€” โœ…
Copilot CLI hook one-way โ€” โœ…
Codex CLI JSONL monitor read-only โ€” โ€”
Pi extension one-way โ€” โœ…

See docs/integrations/platform-comparison.md for the full event-coverage matrix and per-tool deep dives in docs/integrations/.

How it works

IDE hooks / Pi extension / CodexMonitor  โ†’  HTTP POST /state  โ†’  HTTPServer  โ†’  StateMachine  โ†’  PetView (Core Animation)
IDE hooks                                โ†’  HTTP POST /permission  โ†’  HTTPServer  โ†’  BubbleStack  โ†’  allow/deny
  • StateMachine โ€” priority-based aggregator (priority 0โ€“8) across concurrent sessions. Higher-priority states override lower ones; one-shot states (attention, error, notification) play once then revert.
  • SVG pipeline โ€” SVGParser โ†’ SVGDocument (LRU cache) โ†’ CALayerRenderer โ†’ CAAnimationBuilder (CSS keyframes โ†’ Core Animation). See docs/rendering-system.md.
  • Integration bridge (hooks/) โ€” CommonJS hook handlers (clawd-hook.js, cursor-hook.js, gemini-hook.js, codebuddy-hook.js, copilot-hook.js), the Codex JSONL monitor (codex-remote-monitor.js), plus the Pi extension/installer pair (pi-extension.ts, pi-install.js). Each integration ultimately maps tool lifecycle events to pet states and POSTs to the local HTTP server. Port discovery: ~/.clawd/runtime.json first, then scans 23333โ€“23337.
  • HTTP endpoints โ€” /state, /permission, /status, /quit, plus /debug/svg and /debug/reset for development.

State gallery

A peek at the raw SVG states. These are CSS-animated and rendered natively by the Core Animation pipeline at runtime โ€” what you see in GitHub is the exact same source file the app consumes.

Idle Typing Thinking Wizard Happy
idle typing thinking wizard happy
idle-living working-typing working-thinking working-wizard happy
Smoking Reading Music Dozing Sleeping
smoking reading music doze sleeping
idle-smoking idle-reading idle-music idle-doze sleeping

Full catalog of 50+ states: docs/svg-catalog.md.

Develop

# Swift test target (SVG parsing/rendering, HTTP server, Codex monitor, state machine)
swift test

# Permission-bubble integration tests (hits a running app)
./test-bubble.sh all         # or: single | stack | passthrough | disconnect | dnd

# SVG animation visual smoke test (hits /debug/svg on a running app)
./test-animations.sh

# Hook-side Node tests
cd hooks && node test/pi-install.test.js && node test/codex-remote-monitor.test.js && node test/hook-cleanup.test.js

Further docs:

License

MIT โ€” retains the original copyright from clawd-on-desk.

Acknowledgements

About

๐Ÿพ A native macOS desktop companion for Claude Code. Bring Clawd to life with a sleek, lightweight experience built with Swift.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors