# RunCat Neo: a running cat in the macOS menubar, with a JSON dashboard inside it

> RunCat Neo is a macOS menubar app whose running cat can be replaced with your own keyframe animation, and whose real feature is the Custom Metrics system: any local JSON file in a documented schema becomes a card on its dashboard, with samples for Claude Code usage, Codex and Bitcoin price. It ships through the App Store, requires macOS 26, and is written in Swift 6.2.

**runcat-dev/RunCatNeo** — A cute running cat animation on your macOS menubar.

- Repository: https://github.com/runcat-dev/RunCatNeo
- Website: https://runcat-dev.github.io/RunCatNeo/
- Stars: 916 · Forks: 72
- Language: Swift
- License: Apache-2.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/runcat-dev-runcatneo

## A menubar app whose real feature is the dashboard underneath

RunCat Neo is a cute running cat animation on your macOS menubar. The primary language is Swift, and the project description is as short as the feature list suggests.

What makes it more than a novelty is the Custom Metrics system. RunCat can watch any local JSON file in a documented format and render it as a card on the dashboard. The stated uses are Claude Code usage, GPU temperature, GitHub contributions, remaining reminders, or anything else you can write to a file.

That is a good deal of design for what looks like a desktop pet. The idea is that the metric source is a file on disk that some other program writes, and RunCat only has to read it and draw a card. You write the producer, the app handles the display, and the menu bar is where you end up seeing it.

The project distributes through the App Store, the homepage is runcat-dev.github.io/RunCatNeo, and the licence is Apache-2.0. The last push was on 2026-10-19, and the only release listed is 1.0.3 from 2026-07-15.

## The house rules come before the feature list

The README opens with a caution block, and the contents tell you what kind of project this is and what kind of maintainer it has.

The project is for macOS, so inquiries about a Windows version are not accepted. Issues and pull requests in languages other than English are not accepted. Issues that do not follow the issue template will be closed without question. And requests to add new runners are not accepted here; those are to be made in the Runner Gallery.

Stating this up front is unusual and, for a small volunteer project, sensible. The four rules each remove a predictable category of work from the maintainers: a platform question for a project that has one platform, a translation request for a project with a fixed contributor language, a template that exists for a reason, and a class of feature request that has its own home.

The last one is the most interesting, because it points at a structural decision. The runners, the animations that replace the cat, are managed in a separate gallery site rather than in this repository. The README says it twice, once in the caution block and once in the Custom Runners section.

A reader should take one thing from this block: this is a macOS only, English only, tightly scoped project with a single track of contribution.

## A high macOS floor and App Store distribution

The installation section is short, and one number in it is the most important thing in the whole document.

RunCat Neo is available for installation on the App Store, and the requirement is macOS 26 or higher.

```bash
https://apps.apple.com/us/app/runcat-neo/id6757801838
```

That floor is worth pausing on. macOS 26 is a recent system version, and requiring it means the app cannot be installed on any machine that has not moved to it, which in practice excludes a large share of Macs still in use. For a menubar novelty that also asks for access to system level status, the project has evidently chosen a modern target over a broad one.

App Store distribution also has consequences that matter for anyone thinking about forking or packaging it. The app is sandboxed and reviewed, and it is updated through the store rather than by a self hosted download, so there is no release tarball to grab.

The app ships in ten languages, and the README lists them with English marked as primary: Chinese in simplified and traditional forms, French, German, Japanese, Korean, Russian, Spanish and Vietnamese. That list is a good sign about the shape of the audience, which is a global community rather than a niche of one language.

## Xcode 26.5, Swift 6.2 and a named architecture

The requirements section describes the development side.

Development is with Xcode 26.5 or later, the app is compatible with macOS 26.3 or later, and it is written in Swift 6.2.

Then there is the architectural decision, which the README attributes by name. The project is built using an architecture called LUCA, with a link to an article describing it as a modern architecture for SwiftUI development. The repository also carries an ARCHITECTURE.md at the root, so the details are in the tree as well as in the linked article.

That combination, an external architecture with a write-up and a local document, is a good sign for a project that expects contributors. The top level of the repository backs that up. There is ARCHITECTURE.md, CODING_STYLE.md, CLAUDE.md and CONTRIBUTING.md, a LocalPackage directory for packages that are not part of the app, a UnitTest.xctestplan for the test plan, the Xcode project RunCatNeo.xcodeproj, the RunCatNeo source directory, and a docs directory.

A CLAUDE.md file and a CODING_STYLE.md sitting next to each other is the modern shape of an open source project that expects AI coding assistants to be used for contributions and wants them to follow the same conventions as humans. The unit test plan as a separate file is another sign of a project that treats testing as part of the build rather than an afterthought.

## Any JSON file becomes a card, and the samples show the contract

The Custom Metrics feature is the part of the app that other people can actually build on, and the repository documents it in three places.

```bash
docs/CustomMetricsSchema.md
docs/samples/claude-code/
docs/samples/codex/
docs/samples/bitcoin/
```

The schema document defines the format the JSON file has to follow, and the samples directory holds working examples. Three are named: a Claude Code statusLine sample, a Codex integration sample, and a Bitcoin price sample.

Those three samples are the most useful thing in the documentation, because they describe three different kinds of producer. A status line sample comes from an existing tool that already emits a JSON status, so the work is a small adapter that writes that status to the path RunCat watches. A Codex integration sample is a similar thing for a different assistant. The Bitcoin price sample is a program that fetches a value and writes it, which is the general case.

The stated purposes cover the range: Claude Code usage, GPU temperature, GitHub contributions, remaining reminders, or anything else you can write to a file. The last one is the important one, because it means the feature is not tied to the samples at all.

The alternative to this approach is to write a separate menubar app per metric, each with its own network code, its own preferences and its own update loop. RunCat's design replaces that with a file format, which means the only thing you have to agree on with the app is a path and a JSON shape.

## Runners are keyframe animations, and they belong to the gallery

Custom Runners are the other half of the personalisation story, and they follow the same separation of concerns.

By creating your own keyframe animations, you can have any runner you like dashing across your menu bar. Resources for custom runners are showcased and distributed in the Runner Gallery, a separate site at runcat-dev.github.io/RunnerGallery.

The README is explicit about the boundary: runners are managed in the gallery, not in this repository. If you want a new runner added, or you want to share one you made, the instruction is to head to the Runner Gallery instead of opening an issue here.

That is a good piece of project design, even though it looks like a restriction. The repository stays a codebase, the gallery becomes a catalogue of assets, and the boundary between them is stated in three different places so that no contributor has to guess.

The keyframe approach also explains how the animation is expressed. A runner is not a sprite sheet or a video file but a sequence of keyframes, which is the format an animation tool already produces and which keeps the asset small enough to distribute in a gallery.

## A community space for contributors, not for feature requests

The final section describes the community arrangement, and the distinction it draws is the point.

The RunCat Developers' Community is a space for RunCat contributors to communicate closely regarding development and operations, and anyone interested in contributing is welcome. However, the README notes that this is a place for discussing features, not for submitting requests, and that requests should be created as an issue according to the template. The portal is at runcat-dev.github.io.

So there are two channels with two rules: the community space for people who are working on the project, and the issue tracker for everyone else. Combined with the caution block at the top, that gives the project a clear contribution model, which is the mark of a project that has contributors rather than users.

The remaining repository facts are ordinary: Apache-2.0 with the licence text at the root, a docs directory holding the images and the samples, an .github directory, and the single release 1.0.3 from 2026-07-15 followed by continued pushes through October 2026.

For an adopter, the practical summary is that this is a small, opinionated macOS app that does one unusual thing well, namely turning a JSON file into a menubar card, and that everything else about the project has been arranged to keep that one thing easy to extend.

## Conclusion

Adopt RunCat Neo if you want a macOS menubar that shows a metric you produce yourself, and if you are happy to write a small JSON file and keep it updated. Do not adopt it on Windows, since the project says it is macOS only and does not take Windows questions, and do not expect it to be a general dashboard, because the card model is limited to a documented JSON schema. Before you install, check that you are on macOS 26 or higher, since that is the stated requirement, and if you want a custom runner, build the keyframe animation yourself and share it through the Runner Gallery rather than opening an issue here, because the project states that runner requests are not accepted in this repository.

## FAQ

### What system requirements does RunCat Neo have?

Installation requires macOS 26 or higher, and the app is distributed through the App Store. For development it needs Xcode 26.5 or later, is compatible with macOS 26.3 and later, and is written in Swift 6.2.

### How does the RunCat Neo custom metrics feature work?

RunCat can watch any local JSON file in a documented format and render it as a card on the dashboard. The format is defined in docs/CustomMetricsSchema.md, and the repository ships samples for a Claude Code statusLine, a Codex integration and a Bitcoin price.

### Can I add my own runner to RunCat Neo?

You can create your own keyframe animations, but runner requests are not accepted in this repository. Runners are managed and shared in the Runner Gallery, and the README asks you to go there instead of opening an issue here.

### Is there a Windows version of RunCat Neo?

The project is for macOS and states that it does not accept inquiries about a Windows version. It is written in Swift and requires macOS 26 or higher to run.

### In which languages is RunCat Neo available?

The App Store listing covers ten languages, with English as the primary one: Chinese in simplified and traditional forms, French, German, Japanese, Korean, Russian, Spanish and Vietnamese.

## Sources

- [License: Apache-2.0](https://github.com/runcat-dev/RunCatNeo/blob/main/LICENSE)
- [Project website](https://runcat-dev.github.io/RunCatNeo/)
- [README](https://github.com/runcat-dev/RunCatNeo/blob/main/README.md)
- [Releases](https://github.com/runcat-dev/RunCatNeo/releases)
- [runcat-dev/RunCatNeo on GitHub](https://github.com/runcat-dev/RunCatNeo)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/runcat-dev-runcatneo
