Skip to content

l-chin/bit-therapy

 
 

Repository files navigation

BitTherapy (Desktop Pets)

This is the source code of my macOS app BitTherapy, which brings Desktop Pets to macOS! 🚀

Like the app? Join our Discord!

🎮 Supported Systems

The app is currently available for macOS only via the App Store.

Is this coming to Windows or Linux? Yes... But... Hear me out...

I'm currently rewriting the app in C++ with QT, the primary goal is to learn more about the language.

Previously, I've also started porting the app in other languages (no ETA available):

🤔 What's a Desktop Pet?

It's just a cute little pet or animal that lives in your computer.

The most popular one was probably the eSheep for Windows 95.

Hope you like them too!

📲 Get the app

For daily use I recommend getting the App from the App Store.

Alternatively, you can download the latest release from GitHub or build from source (see below).

Get it on the App Store

🔥 Screenshots

Homepage, light mode Settings, dark mode

🎨 Create custom pets

Starting from version 2.20 you can now create custom pets, please check the documentation.

You do not need any programming knowledge or Xcode to create your own pets, just design your characters and follow the instructions, good luck!

🙏 Contribute

Contributors get a shout out in the app, just saying... 😏 Contributors, dark mode

If you wish to improve support for your language, join our Discord and let us know!

⛓️ Command Line

🔔 Interoperability

Since version 2.48 you can use DistributedNotificationCenter to send basic commands to your pets.

Here's the payload:

{
    "subject": "sloth",
    "action": "eat",
    "x": 100,
    "y": 100
}
  • x and y are optional
  • subject is the id of a species
  • action the id of an animation You can look up species and their animations here.

Sample Python script to send out notifications:

from Foundation import NSDistributedNotificationCenter, NSDictionary

def send_notification():
    notification_name = "it.curzel.pets.Api"
    message = {...}
    user_info = NSDictionary.dictionaryWithDictionary_(message)
    center = NSDistributedNotificationCenter.defaultCenter()
    center.postNotificationName_object_userInfo_deliverImmediately_(
        notification_name, None, user_info, True
    )

if __name__ == "__main__":
    send_notification()

🛠️ Build from Source

  1. Download and setup Xcode
  2. Open the Sources/swift/BitTherapy.xcworkspace
  3. Give Xcode some time to figure out dependencies...
  4. Run

About me

I have a YouTube Channel which has been gathering lots of dust lately.

About

Desktop Pets for macOS!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 55.6%
  • Python 38.8%
  • Rust 5.6%