1
Create the project
2
Build and preview locally
niblet devices to find the device ID, then niblet apps preview . --device <DEVICE_ID>. The temporary preview expires
after five minutes and does not install or publish the app.3
Declare hosted network access
Local previews use your computer’s network. Cloud allows only the HTTPS hosts
that your revision declares. For a fixed endpoint, add its exact hostname to
network_hosts. Private apps do not need public review for this access.For an app that calls http.get(config["feed_url"]), use CLI v0.54.10 or later:feed_url must be a non-secret text field in get_schema(). Configure a public
HTTPS URL on port 443. IP literals, private addresses and userinfo are not allowed.
Declare static redirect destinations separately. Never put a token in an ordinary
URL setting; use a credential field. See all manifest rules.Configured URL hosts and improved warnings are available with CLI v0.54.10 and the current hosted service. Static
network_hosts is also available in v0.54.9.4
Upload the tested revision
push checks the project, renders a fresh local WebP, creates or links the
hosted app when needed, and writes its stable App ID to manifest.yaml.
Later pushes use that App ID automatically. It also prints the revision ID you
need for installation or submission.See the manifest reference for every field and its limits.If the manifest declares publisher-owned credentials, configure them after the
first push with niblet apps secrets set <FIELD>. The value is read from a
hidden prompt and is never written to the project.5
Use it privately
This step requires CLI v0.54.9 or newer. Run
niblet update first.6
Edit settings and update the app
Open Manage on the installed copy to edit its settings. Settings belong to
that copy. Running A private push updates compatible copies while preserving
settings. CLI output lists updated installation IDs and Manage links, and counts
copies that need configuration. Such copies keep their current revision until
you open Manage and apply the update. An additional copy still requires
apps install again creates another copy; it does not replace
an existing one or inherit its settings.After changing source, validate and preview it, then push:Use CLI v0.54.10 or later for automatic-update results and configuration warnings.
apps install. Public updates go through review.7
Submit for public review (optional)
Understand app review
Follow each review state and learn what reviewers check.
Updating installed apps
Automatic updates are available in the hosted service. Use CLI v0.54.10 or later.
niblet apps push . after validating your changes:
- For a private project, Cloud prepares the new release and updates compatible copies already installed across your account. Each copy keeps its settings, credentials, position and schedule. It does not install on additional displays.
- For a public project, Cloud submits the upload for review automatically. The previously approved version remains live. Approval rolls out the update.
- An incompatible copy keeps its working version and shows Update needs configuration. Open Manage, review the new settings and save to apply it. Changed credential providers require fresh credentials.
apps install only to add another copy. Future uploads update existing
copies automatically. Offline displays receive updated rendering when they
reconnect. Private installation is separate from public approval.
Understand hosted failures
Hosted diagnostics are available in the dashboard. Read retries require CLI v0.54.10 or later.
max_age is valid; it may
expire before the next scheduled render. Change the refresh interval or frame
freshness deliberately, allowing for scheduling jitter and network time.
Read-only CLI requests retry temporary network failures and 502/503/504/520 twice,
after 250ms and 500ms. Installation and other writes are not automatically replayed
for these failures. For a persistent server error, send support the HTTP status,
UTC time and reference/Ray ID; do not send credentials or full private URLs.