Model or dataset
OpenBMB/MiniCPM-Desk-Pet avatar
OpenBMB/MiniCPM-Desk-Pet

MiniCPM Desk Pet: a 1B model that lives on your desktop and watches your coding agents

a local-first desktop pet powered by MiniCPM5

490 stars63 forksJavaScriptAGPL-3.0

At a glance

What is it?
An AGPL Electron-era desktop companion from OpenBMB that runs MiniCPM5-1B locally, reacts to coding agent activity, and narrates what Claude Code or Cursor just did.
Who is it for?
This is a small, opinionated wrapper rather than a general assistant, and it works because the scope is narrow. The model is a 1B parameter GGUF file that runs locally through a sidecar process, the reactions are driven by detecting editor activity rather than by any agent API, and the personality lives in adapter files you can swap.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 53 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 9, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A floating chat bubble over a local 1B model

MiniCPM Desk Pet is a desktop pet application: a small animated character that sits on your screen and talks to you through a floating bubble. The GitHub description calls it a local-first desktop pet powered by MiniCPM5, and the README describes the same thing with a caveat worth noticing. The README says powered by MiniCPM in general, then names `MiniCPM5-1B-GGUF` as the default model rather than the only one. The Model Management section makes that concrete: you can download the default model, point the app at any local `.gguf` file, rerun onboarding, or restart the model runtime.

So the description and the README are not quite saying the same thing. Read the description as a statement about what ships out of the box and the README as a statement about what the app is capable of. The app is an AGPL-3.0-only JavaScript project with 484 stars, and the last push was 2026-08-18 with v0.10.0 released on 2026-06-19.

The shortcuts are ordinary desktop app conventions. On macOS the key is `Cmd`, on Windows it is `Ctrl`:

- `Cmd/Ctrl+Shift+M` opens or closes the chat bubble - `Cmd/Ctrl+Shift+T` shows or hides thinking mode - `Esc` closes the bubble when the input has focus

On first launch the app walks through Environment Check, then Model Download, then Model Warm-up, then Ready to Use. That sequence is the whole setup story. There is no configuration file to write and no server to start.

What it does when a coding agent is working

The interesting half of the project has nothing to do with chat. The pet reacts to coding agent activity: it shows thinking, working, finishing tasks, waiting for attention, and going idle. Two features stand out. Task narration fires when a coding agent session finishes and puts a speech bubble on screen summarizing what the AI just did, which is the feature that turns a decoration into something you might keep. Idle alerts play a bell animation and a sound when a coding agent has been waiting for your input, which is aimed squarely at the workflow where you alt-tab away and forget.

The pet does not talk to Cursor, Claude Code or Codex. It scans your machine for installed coding agents and prompts you to connect them in one click, then infers state from their activity. That distinction matters for expectations: the Known Limitations section says coding agent reactions depend on each tool's integration behavior and may vary by version, which is the honest version of how fragile this class of integration is. A tool that changes how it reports state will change what the pet sees.

Release v0.10.0 tightened this side of the app, improving the quality of post-conversation summaries so the narration is more specific to what actually happened, and improving inference engine startup stability across platforms. Both are the kind of fix you only write after watching real sessions.

The sidecar, the vendored UI, and the submodule

The repository tree explains more than the README does. There is a `minicpm-sidecar/` directory, which is the inference engine the release notes refer to as the sidecar, and a `llama.cpp` entry alongside a `.gitmodules` file, which is how a GGUF model gets executed. There is a `go.sh` script. There is a vendored `clawd-on-desk/` directory, and the Acknowledgments section confirms the desktop pet UI is based on rullerzhou-afk/clawd-on-desk with full attribution in `NOTICE.md`.

That combination of directories is worth pausing on, because GitHub reports the project language as JavaScript while the tree contains a Go build script, a C++ inference library as a submodule, and a vendored third-party UI. The README's Developer Notes section sends you to `docs/development.md` for the real layout, and the presence of `CLAUDE.md` and `skills/` suggests the project keeps its own agent instructions in the repository.

Two other directories matter for behavior. `adapters/` is where persona adapters live, which is what the README means by switching or importing character adapters from Settings, MiniCPM. `assets/` holds artwork. `docs/` holds the developer documentation.

The model itself is not in the repository. Model weights come from the OpenBMB MiniCPM family and are downloaded separately, which is what lets the app stay under AGPL while the weights sit under a separate license.

Two license layers and one bundled dataset

The licensing story has three parts and the README is unusually explicit about them. The repository code is GNU AGPL-3.0-only, with the LICENSE file in the tree. The model weights are downloaded separately and governed by the OpenBMB MiniCPM Model License, which is a different document on a different repository. Artwork, third-party code, and datasets keep their own notices, and the README points at both `NOTICE.md` and `clawd-on-desk/NOTICE.md` for the specifics.

The bundled persona is where the third part gets concrete. The app ships a neko-style persona adapter, and the README states that the neko persona uses the neko30k dataset, NekoQA-30K from liumindmind, for fine-tuning data. So a character you get out of the box carries a dataset attribution and, depending on that dataset's terms, obligations beyond the AGPL text.

If you plan to modify the pet and distribute it, the AGPL obligation is the one you have to plan around. If you plan to modify the bundled persona, you need to read the dataset terms as well. Those are two separate questions and the README keeps them separate on purpose.

Platform support that the requirements table and the releases disagree about

Two documents describe platform support and they do not match. The README System Requirements table lists exactly two rows: macOS 14.0 or newer on Apple Silicon, M1 through M4, about 2 GB disk space, and Windows x64 with Vulkan support, about 2 GB disk space. The v0.10.0 release notes list three platforms in their own table.

| Platform | Package | Inference backend | | --- | --- | --- | | macOS (Apple Silicon) | MiniCPM Desk Pet-*-arm64.dmg | Metal GPU | | Windows x64 | MiniCPM-Desk-Pet-Setup-*-x64.exe | CPU / Vulkan GPU | | Windows ARM64 | MiniCPM-Desk-Pet-Setup-*-arm64.exe | CPU |

Windows ARM64 exists as a shipped installer with a CPU-only inference backend, and the same release notes describe improving Windows ARM64 support completeness, yet the requirements table has no ARM64 row. Both statements come from the project. The practical read is that ARM64 Windows builds exist and are actively being improved, but the requirements table has not caught up, and CPU-only inference is what you get there.

The macOS side is better documented. If Gatekeeper blocks the first launch you right-click the app and choose Open, or clear the quarantine flag:

bash
xattr -cr /Applications/MiniCPM Desk Pet.app

The Known Limitations section is candid about scope: macOS Apple Silicon is the primary tested release target, first launch needs a network connection unless you bring your own model file, and response speed depends on your chip, your memory pressure, and which model you picked. The Roadmap adds broader Linux validation, which is worth reading carefully because no Linux package appears in the installation instructions at all.

What to expect from a 1B model on a desktop

The default model is `MiniCPM5-1B-GGUF`, roughly a billion parameters, running on whatever CPU or GPU your machine has. That number sets the ceiling on what the narration feature can do. Summarizing what a coding agent just did is a summarization task over a short context, which is a reasonable fit for a small model. Open-ended chat is a different story, and the README hedges by tying response speed to chip, memory pressure, and model choice rather than promising a particular experience.

Two download paths are offered and the app picks between them. Smart model download lets it fetch from Hugging Face or ModelScope and choose the better source for your network, which is a practical concession to the fact that one of those hosts is often slow from some regions. You can also skip the download entirely and select a local `.gguf` file.

The Roadmap entries read like an honest list of what people complained about: clearer model download diagnostics and retry guidance, faster first launch, a smaller app footprint, more persona presets, and richer narration for long-running coding sessions. None of them are glamorous. For a 484-star project with 13 open issues, that is a reasonable signal of where the friction actually was.

What the app does not attempt is worth saying too. There is no plugin API in the README, no documented way to script the pet, and no account system. Persona adapters are the extension point, and the reactions are the integration point. If you were expecting an assistant that can be wired into your own tooling, this is not that, and the repository layout reflects a focused product rather than a platform.

Editorial conclusion

This is a small, opinionated wrapper rather than a general assistant, and it works because the scope is narrow. The model is a 1B parameter GGUF file that runs locally through a sidecar process, the reactions are driven by detecting editor activity rather than by any agent API, and the personality lives in adapter files you can swap. If you want a chat window that notices when a coding session stalls, this fits on a desktop without a cloud key. Start by reading `minicpm-sidecar/` and `adapters/` in the tree, because those two directories are where the behavior actually lives, and treat the macOS Apple Silicon build as the only path the project itself calls tested.

Frequently asked questions

What is the latest MiniCPM model?

The desktop pet ships with MiniCPM5-1B-GGUF as its default and points to the Hugging Face repository openbmb/MiniCPM5-1B-GGUF for the weights. The app is not locked to it, since the Model Management page also accepts any local `.gguf` file you select yourself.

What do desktop pets do?

Most desktop pets are decorative characters that sit on the screen and occasionally react. This one adds a chat bubble over a local model and a set of coding agent reactions: thinking, working, task finished, waiting for input, and idle. The idle alert with a bell animation is aimed at people who alt-tab away from a running agent session.

Is the model inference done locally or in the cloud?

Locally, once the weights are on disk. The README states that after the model is downloaded, everyday chat runs on your machine, and the inference engine lives in the repository as a `minicpm-sidecar/` directory with llama.cpp present as a submodule. A network connection is needed on first launch unless you supply a local model file.

What are the system requirements for MiniCPM Desk Pet?

About 2 GB of disk space on either platform. The README lists macOS 14.0 or newer on Apple Silicon and Windows x64 with Vulkan support, and calls macOS Apple Silicon the primary tested platform. The v0.10.0 release notes also ship a Windows ARM64 installer with a CPU-only inference backend, which the requirements table does not list.

Official sources

  1. Issues
  2. License: AGPL-3.0
  3. OpenBMB/MiniCPM-Desk-Pet on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/openbmb-minicpm-desk-pet.svg)](https://hysenlabs.com/projects/openbmb-minicpm-desk-pet)