{"id":50471851,"url":"https://github.com/ntd4996/agentpet","last_synced_at":"2026-06-06T05:03:13.846Z","repository":{"id":361587891,"uuid":"1255014875","full_name":"ntd4996/agentpet","owner":"ntd4996","description":"A native macOS menu bar app with a desktop pet that monitors your AI coding agents (Claude Code, Codex, Gemini CLI) in real time.","archived":false,"fork":false,"pushed_at":"2026-06-01T09:41:49.000Z","size":34136,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-01T11:28:52.916Z","etag":null,"topics":["ai-agents","claude-code","codex","desktop-pet","developer-tools","macos","menubar","productivity","swift","swiftui"],"latest_commit_sha":null,"homepage":"https://ntd4996.github.io/agentpet/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ntd4996.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-31T09:40:06.000Z","updated_at":"2026-06-01T09:41:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ntd4996/agentpet","commit_stats":null,"previous_names":["ntd4996/agentpet"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ntd4996/agentpet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ntd4996%2Fagentpet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ntd4996%2Fagentpet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ntd4996%2Fagentpet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ntd4996%2Fagentpet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ntd4996","download_url":"https://codeload.github.com/ntd4996/agentpet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ntd4996%2Fagentpet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33969883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","claude-code","codex","desktop-pet","developer-tools","macos","menubar","productivity","swift","swiftui"],"created_at":"2026-06-01T11:00:23.796Z","updated_at":"2026-06-06T05:03:13.819Z","avatar_url":"https://github.com/ntd4996.png","language":"Swift","funding_links":["https://buymeacoffee.com/ntd4996"],"categories":["AI Usage/Status"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/banner.png\" alt=\"AgentPet\" width=\"100%\" /\u003e\n  \u003cp\u003e\n    \u003cimg src=\"https://img.shields.io/badge/platform-macOS%2013%2B-black\" alt=\"macOS 13+\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/license-MIT-blue\" alt=\"MIT\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Swift-SwiftUI-orange\" alt=\"Swift\" /\u003e\n    \u003ca href=\"https://github.com/ntd4996/agentpet/actions\"\u003e\u003cimg src=\"https://github.com/ntd4996/agentpet/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/ntd4996/agentpet\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/ntd4996/agentpet?style=social\" alt=\"GitHub stars\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\u003cb\u003eIf AgentPet helps your workflow, please \u003ca href=\"https://github.com/ntd4996/agentpet\"\u003egive it a star\u003c/a\u003e — it really helps!\u003c/b\u003e\u003c/p\u003e\n  \u003cp\u003e\n    \u003cb\u003eEnglish\u003c/b\u003e ·\n    \u003ca href=\"docs/readme/README.vi.md\"\u003eTiếng Việt\u003c/a\u003e ·\n    \u003ca href=\"docs/readme/README.zh-Hans.md\"\u003e简体中文\u003c/a\u003e ·\n    \u003ca href=\"docs/readme/README.ja.md\"\u003e日本語\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\nRun several coding agents at once (Claude Code, Codex, ...) and AgentPet tells you, at a glance, which one is **working**, which one is **done**, and which one is **waiting for your input**, so you stop tab-hunting across terminals. A little pet floats on your desktop and reacts to it all.\n\n## Why\n\nRunning multiple agents in parallel means constantly switching windows to check who needs you. AgentPet surfaces that in two places:\n\n- **Menu bar monitor** for the details: every running agent, its state, what it's doing, and a live timer.\n- **Desktop pet** for an ambient signal you can read without breaking focus.\n\n## Features\n\n- **Multi-agent monitor** in the menu bar: live list of every agent with a colored status dot, the project, what it's doing (running tool / waiting reason), and a per-state timer that counts in real time.\n- **At-a-glance menu bar icon**: shows the number of running agents, and turns **orange with a count** when one needs your input.\n- **Desktop pet** that reacts to the aggregate state (working / waiting / done / celebrate), with an optional **chat bubble** (built-in or fully custom messages).\n- **Native notifications** when an agent finishes or needs input.\n- **Claude Code, Codex \u0026 Gemini CLI** integration via hooks, with one-tap install from Settings (precise working / waiting / done / idle, including \"needs your input\").\n- **Universal wrapper** `agentpet run -- \u003ccommand\u003e` to monitor *any* CLI agent (working/done), no per-agent setup.\n- **Pet system**: browse an online pet library and download with one click, map each animation to a state, resize, and customise chat lines.\n- **Polished, native Settings** (tabbed, dark) that never steals focus.\n\n## Screenshots\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/screenshot-menubar.png\" width=\"360\" alt=\"Menu bar monitor\" /\u003e\n  \u003cimg src=\"assets/screenshot-settings.png\" width=\"360\" alt=\"Settings\" /\u003e\n  \u003cimg src=\"assets/screenshot-pet.png\" width=\"360\" alt=\"Pet\" /\u003e\n  \u003cimg src=\"assets/screenshot-notification.png\" width=\"360\" alt=\"Notification\" /\u003e\n  \u003cbr/\u003e\n  \u003cimg src=\"assets/demo.gif\" width=\"600\" alt=\"Pet reacting to agent activity\" /\u003e\n\u003c/div\u003e\n\n## Requirements\n\n- **macOS 13 Ventura or later** (macOS 14 Sonoma+ recommended; the keyboard-focus-ring cleanup uses APIs available on macOS 14+).\n- **Apple Silicon (M1/M2/M3/M4) and Intel Macs** are both supported.\n- macOS only, by design. There is no Windows or Linux version.\n- To build from source: Xcode 16 / Swift 6.\n\n## Install\n\n### Homebrew\n\n```bash\nbrew install --cask ntd4996/tap/agentpet\n```\n\n### Direct download\n\nGrab the latest `AgentPet.dmg` from [Releases](https://github.com/ntd4996/agentpet/releases), open it, and drag AgentPet to Applications.\n\n### Build from source\n\n```bash\ngit clone https://github.com/ntd4996/agentpet.git\ncd agentpet\n./scripts/build-app.sh release\nopen build/AgentPet.app\n```\n\n\u003e **Note:** the current build is Developer ID-signed but **not yet notarized**, so macOS may block the first launch. Remove the quarantine flag once:\n\u003e ```bash\n\u003e xattr -dr com.apple.quarantine \"/Applications/AgentPet.app\"\n\u003e ```\n\u003e A fully notarized build (no warning) is on the way.\n\nOn first launch, open **Settings → General** and click **Install** next to Claude Code, then **Enable** notifications.\n\n## Usage\n\n**Claude Code** (recommended): install the hook from Settings. AgentPet then reflects each session's real state (including \"waiting for input\").\n\n**Any other CLI agent**: wrap it.\n\n```bash\nagentpet run -- \u003cyour-agent-command\u003e     # e.g. agentpet run -- aider\n```\n\nThe session shows as *working* while it runs and *done* when it exits.\n\n## Pets\n\nPets use the open Codex pet-pack format (`pet.json` + an 8×9 spritesheet). You can:\n\n- **Browse** the online library and download a pet with one click (Settings → Pet → Browse pets).\n- **Map animations**: pick which sheet animation plays for each state.\n- **Delete** pets you no longer want.\n\nA starter pet is installed automatically on first launch. AgentPet bundles no pet art; packs are added at runtime.\n\n## Roadmap\n\n- Notarized DMG + Homebrew cask\n- Click an agent to reveal its terminal\n- Per-project pets\n\n## Tech\n\nSwift + SwiftUI, a Unix-socket daemon for agent events, and a tiny CLI helper, all in one SwiftPM package. See [`docs/specs`](docs/specs) for the design.\n\n## Support\n\nIf AgentPet saves you some tab-hunting, here's how to help:\n\n- ⭐ **[Star the repo](https://github.com/ntd4996/agentpet)** so more people find it.\n- ☕ **[Buy me a coffee](https://buymeacoffee.com/ntd4996)** if you'd like to fuel more features.\n\nBuilt by **[Nguyễn Thành Đạt (@ntd4996)](https://github.com/ntd4996)**.\n\n## Acknowledgements\n\nThe Codex pet-pack format and the online pet library are provided by\n**[Petdex](https://github.com/crafter-station/petdex)** (MIT). AgentPet is an\nindependent, interop client: it reads packs in Petdex's format and lets you\ndownload them from Petdex's public API. AgentPet bundles no pet art; every pet\nasset is owned by its respective submitter under their own license. If you hold\nrights to a character, please direct takedowns to Petdex.\n\n## License\n\nMIT, see [LICENSE](LICENSE). Application code only; pet assets are not part of this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntd4996%2Fagentpet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fntd4996%2Fagentpet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fntd4996%2Fagentpet/lists"}