Skip to main content

Boba Pet

An always-on-top pixel-art desktop pet for Windows that talks to Claude Code (and Codex, Antigravity, Gemini or Groq). Click it, type or say "Hey Boba", and the answer pops up in a speech bubble. It watches your Claude Code sessions, reacts when they finish or fail, and keeps you on track with tasks, focus timers and a hackathon mode.

Install (one line)

Open PowerShell and run:

irm https://raw.githubusercontent.com/AbdulRahmanAzam/boba-pet/main/install.ps1 | iex

That's it. The installer:

  1. installs uv if you don't have it,
  2. installs Boba Pet with its own private Python 3.12 (your Python is untouched),
  3. downloads the offline voice and search models (about 200 MB, one time),
  4. adds Boba Pet to the Start menu and starts the pet.

No admin rights, no git clone. To also start the pet with Windows, run $env:BOBA_PET_AUTOSTART="1" before the line above, or later run boba-pet-setup --autostart.

Already have Python 3.11+?

pip install boba-pet
boba-pet

or, with uv, just uvx boba-pet. The first start downloads the voice models in the background; run boba-pet-setup once to get them right away and add a Start menu shortcut.

Update / uninstall

uv tool upgrade boba-pet                       # update (or re-run the install line)
boba-pet-setup --uninstall-shortcuts; uv tool uninstall boba-pet   # remove

Your settings and models stay in %USERPROFILE%\.boba-pet and %USERPROFILE%\.claude-pet*.json; delete them to remove everything.

Requirements

  • Windows 10 or 11
  • One AI to talk through (the pet has no key of its own; pick it from the right-click menu > AI provider):
    • Claude Code (recommended): irm https://claude.ai/install.ps1 | iex, then sign in once with claude
    • Codex CLI (ChatGPT plan), Antigravity CLI (Google account), or a free Groq / Gemini API key

What it does

  • Chat in a speech bubble; the chat keeps context, shows tokens used (↑ input, ↓ output) and has a cheap Compact button that rolls the chat into a short note.
  • Quick menu: click the ✱ in the ask box for ask, talk, screenshot, new chat, compact, history, effort level and more.
  • Voice, fully offline: talk with the mic button (Whisper), say "Hey Boba" to wake it (Vosk), and have replies read aloud (Windows TTS).
  • Claude Code companion: it looks busy while a session works, celebrates when it finishes, sweats when tests fail and waves when Claude needs your permission. A usage meter shows your plan limits and today's tokens.
  • Projects: "open my portfolio project" finds the folder and opens it in VS Code with Claude Code running.
  • Tasks, reminders and focus timer, with a gentle distraction guard.
  • Hackathons: track deadlines, and click one for a workspace with a checklist, notes, focus sprints, idea/pitch/judge helpers and a prompt coach that suggests better Claude Code prompts while you build.
  • Morning tech briefing from real news feeds, every item linked to its source.
  • Screenshots: snip part of the screen and ask about it.
  • Computer tools (optional): the AI can open apps, change volume, type and so on. By default it asks you first for anything risky; set the mode in the menu, or turn it off.
  • Characters: several pixel-art pets; add your own with one file (see below).

Privacy

  • API keys you paste are saved only in %USERPROFILE%\.boba-pet\.env on your PC.
  • Speech recognition and the wake word run locally; audio never leaves the PC.
  • The pet reads Claude Code transcripts locally to react to sessions; their text is not sent anywhere.
  • Requests to the AI go through the provider you linked, on your own account.

Run from source (for contributors)

git clone https://github.com/AbdulRahmanAzam/boba-pet
cd boba-pet
uv venv --python 3.12 .venv
uv pip install --python .venv\Scripts\python.exe -r requirements.txt
.venv\Scripts\python.exe launch.py --setup   # optional: models + Start menu shortcut
.venv\Scripts\pythonw.exe claude_pet.py

In a clone, the pet keeps .env, models/ and shots/ next to the code (all git-ignored). Copy .env.example to .env if you use Groq or Gemini keys. Set BOBA_PET_PROJECTS (folders separated by ;) to choose where it looks for your projects.

Layout

File What it is
claude_pet.py The pet window, menus, chat and everything that ties the parts together
providers.py, account.py Talking to Claude Code, Codex, Antigravity, Groq and Gemini
chatlog.py Chat history, token counts and compaction
sprites.py, sprite_*.py Pixel-art characters
listener.py, wake.py, speak.ps1 Mic input (Whisper), wake word (Vosk), text to speech
cc_watch.py, pet_hook.py, pet_status.py, usage.py Claude Code session watching and usage meter
projects.py, vscode-ext/ Project search and the VS Code launcher extension
tasks.py, focus.py Tasks, reminders, focus timer visuals
hackathons.py, hackmode.py Hackathon tracker and hackathon mode
news.py Morning briefing from RSS/Atom feeds
computer.py, pet_mcp.py Computer tools and their MCP server
snip.py, ui_fx.py Screen snipping, fades, markdown and other UI helpers
launch.py, pet_setup.py, pet_paths.py Installed command, first-run setup, data folders

Add a character

Drop a sprite_<name>.py file next to sprites.py with a compose_<name>(...) function (copy sprite_bluebot.py to start), an optional NAME for the menu and an optional EXTRA_PALETTE. It shows up in the menu on the next start.

Contributing

Pull requests are welcome; see CONTRIBUTING.md.

License

MIT

Metadata

Release files for boba-pet 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for boba-pet 1.0.0
File Size Uploaded
boba_pet-1.0.0.tar.gz 159.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for boba-pet 1.0.0
File Interpreter ABI Platform
boba_pet-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 333.5 kB

Release files / boba_pet-1.0.0.tar.gz

Download URL boba_pet-1.0.0.tar.gz
Size 159.7 kB
Tags Source
SHA-256 checksum
How to use checksums
8ae0e8ab1b65a88db37c094746009f4577bb0b91191d02c1fdc61d3890d456a8
BLAKE2b-256 checksum
How to use checksums
618cc0b5efb0e7b8b6038ecae89131abdf2112b544e81c180ed634aec345dbb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release files / boba_pet-1.0.0-py3-none-any.whl

Download URL boba_pet-1.0.0-py3-none-any.whl
Size 173.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d9249140aacd85ed765ae75d2aa6dfcbbe8ae6c3727e97f5fc5fbf41123050d3
BLAKE2b-256 checksum
How to use checksums
0775e61432ec46e7fd67855589cdd7b417694fa6b42fb8bb9ddf3d1459ef0bfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page