Download PerritoDeck
Version 0.1.0 · free and open source · no account needed
You need two things: PerritoDeck on your computer, and Perrito on your tablet or phone. The computer does what your buttons ask, and the tablet shows them.
Not released yet. PerritoDeck is in early development, and the download links below start working on launch day. Until then, you can build it from the source code.
1. Install PerritoDeck on your computer
The desktop app sits in your tray, pairs tablets, and lets you lay out your buttons. This release has an installer for Windows. On Linux, build it from source for now. The Mac version isn't ready yet.
Windows Your system
Tested on Windows 11 with a real tablet
Windows 10 or 11, 64-bit. Installs just for you, no administrator needed.
Download installer (.exe)
Uses Microsoft Edge WebView2, which Windows 11 already has. The installer adds it on Windows 10 if it's missing.
Linux Your system
Build from source for now
64-bit (x86_64), X11 or Wayland. Tested in automated test runs, but not yet on a Linux desktop with a tablet, so this release has no Linux packages.
How to build it
- Packages come in a later release, once tested on real hardware
Needs WebKitGTK 4.1 (Ubuntu 22.04, Debian 12, Fedora 36 or newer). On Wayland, your desktop asks once per start to allow keyboard and mouse control.
macOS Your system
Not yet
The Mac version is written for macOS 10.15 Catalina or newer, Apple silicon and Intel, but it hasn't been tried on a real Mac. It comes in a later release, once it has been.
To press keys for you, PerritoDeck asks for Accessibility access in System Settings → Privacy & Security.
2. Install Perrito on your tablet
Any Android tablet or phone running Android 5.1 or newer, including Amazon Fire tablets.
- Direct downloadThe APK file, for sideloading or for Obtainium, which keeps it updated from GitHub.perrito-0.1.0.apk
- F-DroidThe free and open-source app store. Builds Perrito from source itself.Coming
- IzzyOnDroidAn F-Droid repository that gets new versions within days.Coming
- Google PlayNot on Google Play for now. Tablets and phones with the Play Store can use any of the above.Not for now
- Amazon AppstoreFor Fire tablets without sideloading.Later
- iPhone and iPadAn iOS app is written and waiting to be built and tested on real devices.Coming
System requirements
| Windows | Windows 10 or 11, 64-bit, with WebView2 (installed automatically if missing) |
| Linux | Built from source for now. x86_64 with GTK 3 and WebKitGTK 4.1; a tray that supports AppIndicator/StatusNotifier (GNOME needs the AppIndicator extension). Wayland input uses the Remote Desktop portal (GNOME and KDE Plasma). |
| macOS | Not in this release. The Mac version is written for macOS 10.15 or newer, Apple silicon or Intel. |
| Tablet or phone | Android 5.1 (Fire OS 5) or newer, on the same Wi-Fi as the computer or connected by USB |
| Plugins (optional) | The plugins that come with PerritoDeck (OBS, Proxmox, timers and more) need Python 3. Plugins written in JavaScript, and Stream Deck plugins, need Node.js 20 or newer. Without them, everything else works. |
| USB connection (optional) | Android's adb tool (Android SDK Platform-Tools) on the computer |
Getting Python 3 and Node.js
- Windows:
winget install Python.Python.3.13 and winget install OpenJS.NodeJS.LTS, or the installers from python.org and nodejs.org.
- macOS:
brew install python node, or the installers from python.org and nodejs.org.
- Linux: Python 3 is usually there already; Node.js is in your package manager (
nodejs).
First launch of an unsigned build
Until the apps are code-signed, your system warns you the first time you open them. That's expected for any app without a paid certificate, and you can check the file yourself first (below).
- Windows: SmartScreen says "Windows protected your PC". Click More info, then Run anyway.
- Android: the APK is signed (see below), but Android still asks before your browser or file manager installs an app from outside an app store. Allow it when it asks.
Check your download
Each release comes with a file called SHA256SUMS that lists a SHA-256 checksum, a fingerprint of the exact bytes, for every file. If your file's checksum matches its line there, you got exactly what was built from the published source, with nothing changed or cut off along the way. Download SHA256SUMS into the same folder, then run:
Windows (PowerShell)
Get-FileHash .\perritodeck-0.1.0-windows-x64-setup.exe -Algorithm SHA256
Linux, for the APK
sha256sum -c SHA256SUMS --ignore-missing
macOS, for the APK
shasum -a 256 -c SHA256SUMS --ignore-missing
(If your shasum doesn't know --ignore-missing, run shasum -a 256 perrito-0.1.0.apk and compare by eye.)
On Windows, compare the long hash with the line for that file in SHA256SUMS (upper or lower case doesn't matter); Get-FileHash works the same for the APK. On Linux and macOS each file should say OK.
Every file is built from the tagged source by GitHub Actions, in public, and the build log shows the same checksums.
Android: the signing certificate
The APK on this page and in GitHub Releases, which IzzyOnDroid and Obtainium use, is signed with the PerritoDeck release key. Copies from F-Droid are signed by F-Droid instead. The SHA-256 fingerprint of the release key's certificate is published here with the first signed release:
Not published yet
To check an APK from here or from GitHub Releases, run apksigner from the Android SDK's build tools:
apksigner verify --print-certs perrito-0.1.0.apk
The line with certificate SHA-256 digest: should end in the fingerprint above, and there should be no ERROR lines (warnings about files in META-INF/ are normal). Some tools show the fingerprint in capitals with colons between the pairs; it's the same value. If it doesn't match, don't install the file. Android won't install an update signed with a different key over the app you have, so this check matters most the first time. For the same reason, a copy from F-Droid can't be updated with the APK from here, or the other way round.
Command-line host
For servers, kiosks and scripting: the same host without a window, perritodeck-host, plus perritodeck-fakedeck, a test client that needs no tablet. They aren't downloads in this release: build them from source with Rust, then in host/ run cargo run -p perritodeck-host -- --pair to pair a tablet.
Build it yourself
Until the first release, this is the way to try PerritoDeck. On Linux, it's the way to run it for now. Everything is on GitHub under the Apache-2.0 licence (plugins and SDKs under MIT). You need:
- Rust (rustup; the right version installs itself) and Node.js 22 or newer, for the desktop app.
- JDK 17 and the Android SDK, for Perrito. Android Studio brings both.
- On Linux, the WebKitGTK development packages Tauri asks for.
- Desktop app:
cd host/app, npm ci, then npx tauri dev to run it, or npx tauri build for an installer.
- Tablet app:
cd android, then ./gradlew assembleDebug (.\gradlew.bat on Windows), and install android/app/build/outputs/apk/debug/app-debug.apk on the tablet.
- No tablet handy? In
host/, cargo run -p perritodeck-fakedeck -- pair <code> pairs a test client the way a tablet would, and -- watch shows its keys.
CONTRIBUTING.md has every build and test command, and how to send changes. Release notes will be on the releases page.