Publishing Apps

I made an app for MBTA transit times. (I’m not sure why the built-in transit app doesn’t include MBTA bus routes, only commuter rail.) I wouldn’t mind contributing it to a shared repository, but there needs to be some mechanism to pass secrets like API keys.

1 Like

I am trying to publish a custom written application, and when attempting to push as documented, the application still isn’t sticking in the list of installed applications.

pixlet push --api-token <YOUR API TOKEN> <YOUR DEVICE ID> examples/bitcoin.webp <INSTALLATION ID>

I’ve attempted to push this using the following formats:

pixlet push --api-token <YOUR API TOKEN> <YOUR DEVICE ID> examples/bitcoin.webp TEST ID
pixlet push --api-token <YOUR API TOKEN> <YOUR DEVICE ID> examples/bitcoin.webp "TEST ID"
pixlet push --api-token <YOUR API TOKEN> <YOUR DEVICE ID> examples/bitcoin.webp installationID=TEST ID
pixlet push --api-token <YOUR API TOKEN> <YOUR DEVICE ID> examples/bitcoin.webp installationID="TEST ID"

None of these options are working. What is the proper way to send in this installation ID to keep the application saved?

The installation id must be alphanumeric, so nothing besides letters and numbers, so try

pixlet push --api-token <YOUR API TOKEN> <YOUR DEVICE ID> examples/bitcoin.webp TestID

I have also tried this - it also did not save. It displayed once and never again.

I just tried that exact command but with my API token and device ID, and it stuck, so I don’t know what else might be going on. Does it show up on the phone app? Did the push command print any message?

No message is printed. It immediately is sent to the device and displays, and then never shows again. It isn’t showing on the phone app at all. Unsure what’s going on.

1 Like

Did you build pixlet from source? Hopefully I’m not mistaken since it worked for me, but you may need the latest code for this feature, so make sure to build from source:

I have the same issue when I use Pixlet push command - funny enough it worked once when I added at the very end after my HelloWorld.webp << “installationID”: “HelloWorld”>> then it did appear as Application in the Mobile App ONCE - but neither displayed it on Tidbyt in a re-occuring cycle nor could I repeat that after when using the exact same shell script.

Yes, I have tried both the already compiled version and the one built from source. Neither appear to work for me.

Edit: I have just rebuilt from source for the third time, and it now appears to have fixed the issue. I don’t know why it didn’t take the newest build before, but all appears to be working now. Thank you for the help with this!

1 Like

This is easily overlooked in the docs: the example given is just “123”.
Maybe “Bearer 123” would be better?


Yes, please fix this in the docs, it is not an easy error to figure out.

A public repository would be great! How well it will last over time is anyone’s guess.

So many projects over the years have had the ‘plugins’ mentality, and lots of great developers worked hard to make cool stuff… then the primary software evolves and things just break down and don’t work anymore.

Having a cool continuous integration environment can help. Having a feedback system that provides emails to contributors when the code fails to ‘build’ on the latest generation of the system would be good.

The effort to manage and maintain the repository is an interesting challenge. Having a donation option to help offset your costs would be an option, kinda like opensource support fees, but not a pay wall.

Making some contributors able to get donations for their contributions would be awesome, as long as, again, it does not become a paywall. [I don’t think/feel that is the spirit of Tidbyt.] Only something to motivate developers (by the consumer) to help keep things working over the long term. Maybe like Thingiverse’s ‘tip’ option where one can PayPal something to a designer as a friendly contribution for their efforts.

I am having fun with my Tidbyt, learning to deal with GO/Starlark, etc. I can see publishing some of the stuff I have done, for everyone to use. I am looking forward to the HDK, and that would be another dimension to the contributor site as well. Content could be a whole section, Icons, images, color schemes, frameworks, there are lots of areas that folks could contribute to the community.

I don’t think the licensing has to be complicated. Pick the most relaxed one, and only by agreeing to total disclosure and openness can a contribution be allowed. No pre-compiled stuff, no encoded/encrypted stuff, all free and open to modification by anyone that chooses to. If someone wants a proprietary app, that is fine. They shouldn’t post it to the community. They can have their own Shopify store or whatever to sell their stuff. Maybe?


@mark It does not appear that this update has been pushed to the latest compiled version in the git repo. When will the next full release via git take place for us to install this new update via Hombrew?

This is fixed in all the examples now, sorry about that. The API test tool in the docs automatically adds Bearer now too.


Just re-ran the release and it should be out now. Let me know if you’re still not seeing it.

1 Like

Perfect! Everything is working from the homebrew version now, too!

I’ve gotten my app to display in rotation on the Tidbyt using the instructions at

pixlet render
pixlet push --api-token <MY API TOKEN> <MY DEVICE ID> pacman.webp Pacman

Problem: although the app is in rotation, the time never updates because it’s a static webp file.

The only solution I can think of is to run the render/push on a local machine crontab. Am I missing something? There must be a better way.


It seems at this time, the webp is the only item we can push to the device. … From the main post of this thread:


I also ‘missed’ that the functional app could not be installed at this time (when I went through the SDK tutorial and API stuff) … but now I see why. I am looking forward to being able to have my own functional apps.

BTW, the stuff you’re doing is super awesome!


@kay, that is my approach. I’m using launchd on the Mac to render the webp every n seconds and push it to the device. I specify the -b flag when pushing to update the image in the background, so it does not get displayed immediately on the device. That maintains the rotation of the images on the device. So far it works well but running my script to do the rendering and push was kind of a pain to setup with launchd.


I’m doing this very approach for each of my apps, but running it from a VM on Google Cloud Platform. Render and push to the device every 5 mins. It’s disappointing we can’t do the processing in the cloud, but I understand this is still new and still being perfected.