Workflow · Coming soon

Ship OTA releases from GitHub, CI or your coding agent

Your repository, your pipeline, your terminal, your phone, your team's Discord and your coding agent. On the ESP32 family, in MicroPython.
Example
# Coming soon · macOS and Linux
$ brew install otalite-hq/tap/otalite
$ otalite keygen --out release.seed
public key 3f9a…c21e (keep the seed offline)
$ otalite sign --key release.seed build/app.otb
$ otalite release --product thermo --waves 1,10,50,100
✓ pre-flight passed · wave 1 of 4 waits for approval
GitHub
GitHub Action
CLI
Mobile app
Discord
Webhooks
Coding agents
Git and CI/CD

Tag it, and it ships.

Connect a repository and we build each tagged release, or sign and release from your own CI/CD pipeline with the GitHub Action.

GitHub

In development
Connect a repository; tag a release and we build it.

Reproducible managed builds

In development
Tag a release and we build it in an isolated, reproducible build.

GitLab and Bitbucket

Planned
Later, alongside GitHub.
Example
# .github/workflows/release.yml
on:
push:
tags: ['v*']
jobs:
release:
steps:
- uses: otalite-hq/release-action@v1
with: { product: thermo, waves: '1,10,50,100' }
Example · the planned GitHub Action
The otalite CLI

One CLI for keys, signing and releases.

otalite keygen, sign and release, from your terminal or CI. For macOS and Linux, through Homebrew, a verified install script or cargo.
In development
Release binaries are signed and checksummed
--json on every command, and otalite schema to describe them, for scripts and agents
Keys are generated on your machine; only public keys leave it
Example
# Coming soon
$ brew install otalite-hq/tap/otalite
# for agents and scripts
$ otalite status --product thermo --json
{"release":"1.4.2","wave":2,"confirmed":1204,"rolled_back":3}
$ otalite schema
Example output
Built for your coding agent

Ask your agent to add otalite.

Claude Code, Cursor or Copilot can add OTA updates to your MicroPython project correctly, from instructions we write, version and test.
In development

Integration prompts

One prompt adds the client, check-ins, deep sleep and a battery target.

AGENTS.md and CLAUDE.md

Instructions and Cursor rules, so agents follow otalite's conventions.

Claude Code ESP32 skill

A Claude Code skill for adding OTA updates to MicroPython on ESP32.

otalite init

Writes those instructions into your project in one command.

MCP server

Your agent reads fleet status and reports, and drafts rollouts you approve.

CLI for agents

--json on every command, and otalite schema to describe them.
All In development, and coming soon. llms.txt on our site lets agents read the docs.
When an upstream update needs a code change (Planned), your coding agent can apply the fix from the report, and you approve it.
Recommended
Agents get no publishing rights by default, and never see or create your release signing key. Device keys are provisioned by the CLI, outside the agent's context. A rollout an agent drafts waits for your approval with a passkey.
Lighter option
Give the agent a scoped API token so it can release on its own. The danger: an agent's mistake or a prompt injection could ship code to your devices, and we offer no protection against that.
Mobile app for iOS and Android

Your rollouts, in your pocket.

Approve a release, open the next wave or pause a rollout from your phone.
Planned
Alerts and integrations

Alerts where your team already is.

Rollout and device alerts in your team's Discord, with buttons to act on them, and signed webhooks for everything else.
# fleet-rollouts
Preview
otalite
bot · 14:02
Wave 2 of 4 complete · thermo 1.4.2
10% of devices are on 1.4.2, within your failure threshold. Wave 3 waits for approval.
Confirmed
1,204 devices
Rolled back
3 devices
Failure rate
0.25% (pause at 2%)
Next wave
50% of devices
Approve wave 3
Pause
Roll back
Example data

Discord alerts

Planned
Add our bot to your server for rollout and device alerts with Approve, Pause and Roll back buttons.
Example
POST https://example.com/hooks/otalite
webhook-id: msg_2f8a…
webhook-timestamp: 1793541200
webhook-signature: v1,K5o0…
{"type":"rollout.paused","release":"thermo 1.4.2",
"wave":3,"failure_rate":0.026}
Example · a signed webhook delivery

Signed webhooks

Planned
Signed HTTP webhooks deliver rollout and device events to your own systems.
Slack alerts are Exploring: the same alerts, with actions, in Slack.
Hardware and firmware

Built for the ESP32 boards you already use.

MicroPython on Espressif's ESP32 family: support planned at launch, with the original ESP32 through our custom firmware. A small native MicroPython client written in Rust, installed with mip.
MicroPython
First, at launch
In development
CircuitPython
Next
Planned
ESP32-S3
Xtensa, dual core
In development
ESP32-C3
RISC-V
In development
ESP32-C6
RISC-V, Wi-Fi 6
In development
ESP32-S2
Xtensa, single core
In development
ESP32
The original, through our custom firmware
In development
Popular boards built on these chips
ESP32-DevKitC
ESP32-S3-DevKitC
Seeed Studio XIAO ESP32C3
Seeed Studio XIAO ESP32S3
Adafruit Feather ESP32-S3
M5Stack
LilyGO
LOLIN S2 mini
Names are trademarks of their owners; otalite isn't affiliated with them.

Original ESP32

Its executable memory is tight, so it gets otalite through our own MicroPython firmware build, with the client built in. Still being worked on.

Zephyr and native ESP-IDF

A client for firmware built on Zephyr, or on ESP-IDF without MicroPython. Exploring.
Status

Where each piece stands.

Nothing here is available yet. In development is being built for the first release; Planned is on the plan, not started; Exploring is still being researched.
Git and CI/CD

GitHub, a GitHub Action and the CLI

Connect a GitHub repository, release from CI with the Action, or sign and release with the CLI.
In development
Git and CI/CD

Reproducible managed builds

Tag a release and we build it in an isolated, reproducible build.
In development
Git and CI/CD

GitLab and Bitbucket

Connect repositories on GitLab and Bitbucket as well as GitHub.
Planned
Control

Mobile app for iOS and Android

Approve a release, open the next wave or pause a rollout from your phone.
Planned
Alerts and integrations

Discord alerts

Rollout and device alerts in your Discord, with Approve, Pause and Roll back buttons.
Planned
Alerts and integrations

Signed webhooks

Signed HTTP webhooks deliver rollout and device events to your own systems.
Planned
Alerts and integrations

Slack alerts

The same rollout and device alerts, with actions, in Slack.
Exploring
Git and CI/CD

Agent-ready integration

Prompts, AGENTS.md, a Claude Code skill and an MCP server, so coding agents add otalite correctly.
In development
Device client

Native MicroPython client

A small native MicroPython module written in Rust, installed with mip.
In development
Hardware and firmware

ESP32-S2, S3, C3 and C6

MicroPython on Espressif's ESP32-S2, ESP32-S3, ESP32-C3 and ESP32-C6.
In development
Hardware and firmware

Original ESP32

Through our own MicroPython firmware build, as its executable memory is tight. Still being worked on.
In development
Hardware and firmware

CircuitPython

The same check-ins, signing and rollouts on CircuitPython.
Planned
Hardware and firmware

Zephyr and native ESP-IDF

A client for firmware built on Zephyr, or on ESP-IDF without MicroPython.
Exploring
Community

Follow the build.

otalite isn't available yet. Register your interest to hear first, or join the Discord to see what we're building and tell us what your fleet needs.