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.

Updates

Boba updates itself. Once you've linked an AI, it checks for a new release and asks Update now or Later (Later asks again the next day). Update now restarts the pet on the new version in a few seconds. You can also check any time: right-click > Check for updates.

On v1.0.0 (before self-updates existed)? Update once by hand: pip install -U boba-pet, or run the install line again.

Uninstall

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.
  • Water reminder: every hour Boba rings a chime and tells you to drink a glass of water, and counts your glasses for the day (goal 8). It waits while you're away from the PC.
  • Keystroke counter: counts the keys you press each day and adds them to an all-time total, with a 7-day chart, best-day records and 100k milestones. Only the number is stored, never which keys; software-typed keys don't count.
  • 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.
  • News briefings, 3 a day: a morning briefing with your tasks and the top AI & tech news, then a short update with anything new every 4 hours. Real news feeds, every item linked to its source, and no story is shown twice.
  • 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, water.py, keys.py Tasks, reminders, focus timer visuals, hourly water reminder, keystroke counter
hackathons.py, hackmode.py Hackathon tracker and hackathon mode
news.py News briefings 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.1.2

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.1.2
File Size Uploaded
boba_pet-1.1.2.tar.gz 171.7 kB Details

Built distribution (wheel)

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

Total release size: 358.6 kB

Release files / boba_pet-1.1.2.tar.gz

Download URL boba_pet-1.1.2.tar.gz
Size 171.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b95212a88e5d468700decf3223cbf5dc9b8722ad30f358975cad9ee5ff9e25d0
BLAKE2b-256 checksum
How to use checksums
591bbdf29fdea0afdb27e413a949b87479402ee84c4b9184643e5acb2077d730
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 11, 2026.

Transparency log

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

Download URL boba_pet-1.1.2-py3-none-any.whl
Size 186.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0e2389db118cf615b3ed906306e3a1feb52e20888c8ca482d158d367c8c532a
BLAKE2b-256 checksum
How to use checksums
93783f9f7db00e319f144a940a30e5ecc03a805a487d0afcd8d6d40a87a81ce6
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 11, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.3

2 release files

This release

1.1.2 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

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