Skip to content

Instantly share code, notes, and snippets.

@hugs
Last active March 4, 2025 02:51
Show Gist options
  • Save hugs/7ba46b32d3a21945e08e785102246101 to your computer and use it in GitHub Desktop.
Save hugs/7ba46b32d3a21945e08e785102246101 to your computer and use it in GitHub Desktop.

📱Valet

A Decentralized Automated Testing Network

🙈 tl;dr:

Valet is a decentralized test automation network where developers run tests on real devices (iOS or Android), and device owners get paid for executing them. Using Nostr for discovery, Lightning for payments, and Raspberry Pi nodes for execution, it’s less expensive, more open, and more scalable than traditional test clouds. Built by Jason Huggins (Selenium, Appium, Sauce Labs), Valet is an experiment in P2P testing at scale. 🚀

🚖 Why Valet Network?

  • 💰 Pay only for what you use – No monthly or annual contracts required
  • 📱 Better coverage – Real devices in the real world
  • 🌎 Decentralized – A peer-to-peer network with no vendor lock-in
  • ⚡️ Instant Payments via the Lightning Network – Run tests, earn sats
  • 🖥️ Distributed computing with Raspberry Pi-based Valet hardware – Efficient, open-source hardware test execution

🛠 How It Works

1️⃣ Users Submit Jobs via Nostr

  • Define your job request in a Dockerfile + a test script (Usually Python or JS)
  • Pay in sats (~1 sat/min, ~$0.001/min USD) via the Lightning Network
  • Broadcast job requests to Nostr relays for discovery

2️⃣ Valet Nodes Run Tests

  • Raspberry Pi nodes bid for jobs via Nostr, executing tests as Data Vending Machines
  • Download & run tests in local Docker containers
  • Supports Appium, Selenium, OpenCV, and Tesseract APIs for real Android & iOS automation
  • Touch, mouse, and keyboard inputs sent via USB HID protocol to the device
  • Video and screenshots captured via HDMI screen mirroring

3️⃣ Results Delivered

  • Screenshots, video, & logs sent back to a file server or CI/CD pipeline
  • Work is validated, user and node reputation scores updated
  • Device data is cleared and/or factory reset

🌎 Who is Valet For?

  • 🧑‍🔬 Developers & Testers – Run automated tests on real devices, cheaper & faster than cloud services
  • 🧑‍💼 Device owners – Monetize idle devices by executing tests & earning Bitcoin instantly

🏃‍➡️ Run Your First Test Today! ➡️ valetnet.work

🧐 Who's Driving This?

👋 I’m Jason, and I make robots at Tapster. My thing is test automation, open source software, and any kinetic art involving motors and lights.

I specialize in test automation for hard-to-automate scenarios. That led me to start Selenium, Appium, Sauce Labs, working at Google, and even with the White House to help fix HealthCare.gov. For the last decade at Tapster, I've been focused on mobile, IoT, and point-of-sale testing—robots touching screens, pressing real buttons, solving weird automation challenges.

Lately, I've been obsessed with the idea of a decentralized automated testing network. Imagine Selenium Grid, but global, P2P, always available, and not run by any one company.

Some days I think, "Nah, too crazy." Other days, it's "F it, let's try and see what happens."

So here it is. This is 📱Valet. Let’s see what happens. 🚖


P.S. Until I make a proper landing page for this, if you're interested and would want to try it out, either star this (top-right corner of the screen), or leave a comment! 🙏

@asoaresb
Copy link

I want to try it out !

@ScottMonaghan
Copy link

You know I'm in.

@AKSarav
Copy link

AKSarav commented Feb 11, 2025

Count me in

@fijiaaron
Copy link

Color me skeptical. People (willingly) leasing their machines for other people's work hasn't worked since Napster -- or SETI.
Sadly, the real market for this kind of tool is bot scraping.

@hugs
Copy link
Author

hugs commented Feb 11, 2025

@fijiaaron very good to be skeptical! my hunch is that the right financial incentives weren't in place re: seti. it was an all volunteer effort (if i remember correctly).
there are many other options available for scraping elsewhere. i'll want valet focused on normie testing and prod monitoring for both web and mobile apps. we'll have to deal with scrapers as it comes up (and to your point, probably rather quickly).

@sklarow
Copy link

sklarow commented Feb 11, 2025

Let me know if I can help somehow. :)

@hugs
Copy link
Author

hugs commented Feb 12, 2025

thanks to everyone who starred, commented, or reached out to me privately in the last 24 hours. unbelievable response! i'm now working to create a simple getting started guide and a (very basic) demo video of one test running on the network. (do you have an opinion on what the demo should be? 😬) either way, give me a day or two!

in the meantime, there are 3 levels to understanding the project: 1) the hardware, 2) the software running on the hardware, 3) the network

1) valet, the hardware

the thing to understand about the valet hardware is that it's very similar to another open source project, pikvm (https://pikvm.org/). valet is basically "pikvm... for mobile". tapster (my company) makes and sells valet (it's been out for about a year and in production at several client sites now). but the important thing to know is that the valet network will support any compatible hardware (not just the stuff i make and sell). anyway, to make your own valet unit, pikvm's "diy v2" guide (https://docs.pikvm.org/v2/) is not a bad place to start. essentially, you'll need a raspberry pi, an hdmi capture card, and a bunch of various cables and adapters. i'll make the differences from pikvm more clear in the getting-started guide. (they recommend just 2gb ram, but i'd lean towards more since we'll be doing more computer vision-powered automation and /might/ need the headroom.)

2) valet, the software on the hardware

the road to the current (final?) name of "valet" was long and winding... at one point the whole project was called "checkbox" (it's a box... that checks things, get it! ha!)... yeah, i'm glad i changed the name, too. however, i changed the name after i already wrote a bunch of code and shipped it to clients... so for now, we're stuck with some code named "checkbox". if you're familiar with selenium and appium... those projects are basically "just" http servers sending json back and forth. that's what checkbox server is, too.
i wrote a checkbox-server, which takes json requests from a connected client and controls direct access to the attached mobile device via the USB HID protocol (pretending to be a fake mouse, keyboard, or touchscreen stylus), and also grabs video and screenshots from the phone. i also wrote a checkbox client in python (very similar to any selenium or appium client you might be familiar with).
here are the links for those:
https://github.com/tapsterbot/checkbox-server
https://github.com/tapsterbot/checkbox-client-python

there are a few other important libraries, but that's enough for now... don't worry about figuring out how to install the checkbox server on the pi -- once you get your raspberry pi... i've written some docs and wrote an install script for getting all the software properly installed. (this is where we diverge from pikvm, we run our own software, but share hardware)
those docs are here: https://valetnet.dev/
and here: https://github.com/tapsterbot/valet

3) valet, the network

this is where there are a ton more docs... and a million rabbit holes to go down if you're not careful. we'll be using nostr. nostr is like twitter or bluesky, but with the decentralization dial turned up to 11.

here are some good links for learning about nostr:
https://nostr.com/protocol
https://github.com/nostr-protocol/nostr
https://github.com/nostr-protocol/nips

nostr specs are called "nips" (nostr implementation possibilities). there are a lot of nips, but at the moment, only nip-1 is required to be a card-carrying member of the nostr world. there are a bunch of other really interesting nips, too, but the one (besides nip-1) that we're most interested in for the valet network is nip-90 (data vending machine) https://github.com/nostr-protocol/nips/blob/master/90.md

if you don't want to read any docs, and you just want to download and try something, i recommend doing that, too! go to your favorite app store on your phone and install a nostr client. i like and use "primal" (i'm "[email protected]", follow me and say hello there!)

okay, that's enough for now!

🚖 valet all day!

@milicko
Copy link

milicko commented Feb 12, 2025

count me in

@DineshKuppan
Copy link

count me in

@jzaleski
Copy link

Love this!

@TunaTunado
Copy link

Loved the idea, count me in too!

@DIVYANSH645
Copy link

I really what to learn and try it out.

@byterey
Copy link

byterey commented Feb 16, 2025

how can i help?

@NoelOmo
Copy link

NoelOmo commented Feb 28, 2025

Count me in

@hugs
Copy link
Author

hugs commented Mar 2, 2025

just a quick update to those that might be wondering why i've been a little quiet lately. my initial announcement led to a surprising amount of (good) attention in a very short amount of time. some you can see (comments/stars here on github and linkedin), and some you can't see. basically, people are very interested in valet and want to help! some with their time and talent.. and some potentially with money. there are several different potential paths, each with their own pros & cons... the conversations regarding the money side are delicate so i'm not talking publicly about that just yet. sorry! i'm working to find the right path forward to set up valet and the valet network on the right initial path and towards success. hopefully i'll have more clarity on those background threads soon. in the meantime, please see my previous comment with a ton of links for things to learn and do! onward!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment