Macagotchi is a virtual pet application that runs on a computer (macOS and RaspberryPi codebases are also available). It interacts with the user by displaying a virtual pet on the screen while it scans for nearby Wi-Fi networks, and it will become happy when it’s found new SSIDs. Your Macagotchi will also track how many days in a row you’ve been able to keep it happy, unlocking changes to the UI. While the code is very different, the idea is based on the excellent pwnagotchi project. The difference here is that Macagotchi doesn’t do anything sinister which might get you arrested or annoy people sitting around you. But seriously, check it out.
As pwnagotchi's less sinister cousin it only collects SSIDs to keep score, which it keeps locally in a hashed log. It doesn’t export data, and doesn’t contain any marketing or tracking code. By design, if you want to share how many SSIDs you’ve collected and/or how happy your Macagotchi is, take a screenshot.
If you’d prefer not to do a step by step install of the source code, you can download the finished installers: for macOS and Windows.
A Raspberry Pi version is currently in development and I’ll be releasing the code and hardware specs very soon.
-
- The program displays a virtual pet image that represents the current state of the pet.
- The pet's image changes based on various conditions and events.
-
- Users can press F2 to edit their Macagotchi’s name and press return to save it.
-
- The program scans for nearby Wi-Fi networks using a modified version of the amazing winwifi python library made by changyuheng.
- It retrieves the list of network SSIDs.
- Scanned networks are hashed and then stored in a file for future reference.
-
- Macagotchi will remember how many days in a row the user has been keeping it happy, unlocking UI updates.
-
- Macagotchi will become happy, friendly or hungry depending on how well you feed it.
- Your Macagotchi will leave messages on the screen, explaining to users how it feels and giving you suggestions on how to help it feel better. For example, when a Macagotchi is hungry, the on screen message might say “Can we go on a walk?”, or when your Macagotchi is waking up, the message might read “I’ve been asleep for x days.”
-
- Pressing "w" toggles between war driving and normal mode.
- In normal mode, the first scan will happen 30 seconds after startup, and then 5 minutes for every scan after that.
- In war driving mode, every scan happens 30 seconds after the last.
- By default, war driving mode is switched off.
Python 3.x:
Macagotchi is written in python, so you'll need to have it.
pygame library:
Macagotchi uses pygame to display an application window. pip install pygame
winwifi:
Macagotchi uses a modified version of winwifi (made by changyuheng) to scan for networks on windows. To install the modified version,run pip install git+https://github.com/SpaceMonkeyAlfa/winwifi
pyinstaller:
Not necessary, but if you want to package the source code into an exe, pyinstaller is very helpful. pip install pyinstaller
- logo.png: Represents the logo image used for the program.
- logo.ico: Used for packaging in PyInstaller to produce the icon of the .app or .exe
- address.txt: Stores the hashed addresses of scanned Wi-Fi networks.
- longestStreak.txt: Stores the longest streak of consecutive program usage.
- stats.txt: Stores the Macagotchi’s name.
- loyalty.txt: Stores dates of consecutive program usage.
- totalLog.txt: Stores the total number of Wi-Fi networks scanned.
If you want to skip the manual build, you can download the finished installers for free at itch.io: here for macOS and Windows. Raspberry Pi codebase is also available here.
Download the .zip or clone the repository. Run macagotchi.py .