mentra-update-connected-live
Skill2.4k starsChanged 5 days agoApache-2.0View on GitHub
Update a USB-connected Mentra Live to the latest published ASG client, BES firmware, and MTK firmware from the newest public Mentra release. Use when the user asks to check or update the connected glasses' BES, MTK, or ASG client. Not for firmware_live.json manifest PRs or BES source builds.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 10
Do not use asg_client/scripts/update-stock-for-dev.sh, update-mentra-live.sh, or the staging-builds manifest staging_live_version.json.
- Very specific: line 43
Read bes_fw_version from a version_info_3 log line.
- Distinctive: line 47
Update only what is behind.
- Very specific: line 96
After BES apply, read all three again.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Update a connected Mentra Live
Bring one USB-connected Mentra Live up to the newest public Mentra release's glasses set: ASG client, then MTK, then BES. Keep the Infinity Cable attached. MTK reboots Android and ADB drops until the new slot boots. Start BES only after that boot has finished.
Do not use asg_client/scripts/update-stock-for-dev.sh, update-mentra-live.sh, or the staging-builds manifest staging_live_version.json. That snapshot lags the coordinated release and will skip or downgrade a current device.
Resolve the target
Take the newest public GitHub release whose tag matches mentra-v*. Skip mentra-private-cloud-*. The release body links the ASG APK and the glasses OTA manifest (mentra-live-ota-<version>.json under mentra-builds-v<family> on artifactscdn.mentraglass.com).
Download that manifest with curl --fail --silent --show-error --location. It pins:
apps["com.mentra.asg_client"]—versionCode,versionName,apkUrl,apkSize,sha256bes_firmware—version,url,sha256mtk_full_ota.end_firmwareandmtk_patches
Cross-check BES https://firmwarecdn.mentraglass.com/latest.json and MTK https://mtkfirmware.mentraglass.com/latest.json. The release pin and the CDN must name the same BES version and the same MTK target (target_firmware / full end_firmware). If they disagree, stop and report both. Do not mix a newer CDN blob into an older release.
Fetch with curl. Python urllib has been served the OTA website HTML from these hosts.
Re-check the newest mentra-v* tag after a long download. If a newer public release pins different artifacts, switch to that set before flashing anything still pending.
Read the glasses
Require one adb device in device state whose ro.product.model is Mentra Live. If more than one device is attached, set ANDROID_SERIAL. Source scripts/lib/glasses-device.sh when a script already does.
- MTK:
adb shell getprop ro.custom.ota.version(MentraLive_YYYYMMDD[.N]) - ASG: the first
versionCodeandversionNamefromdumpsys package com.mentra.asg_client. That is the updated system app. A later block is the factory image underneath and is not the running client. - BES: start
com.mentra.asg_client/.MainActivity, wait until the process is up, then:
adb shell am broadcast \
-a com.mentra.asg_client.ACTION_SEND_COMMAND \
--es json '{"type":"request_version","mId":424242}' \
-n com.mentra.asg_client/.receiver.IntentCommandReceiverRead bes_fw_version from a version_info_3 log line. BES firmware version cached successfully is the same value once UART is up. The glasses clock often shows the firmware build date, so logcat timestamps are not wall time.
Decide
Update only what is behind. Order is ASG, then MTK, then BES.
- ASG matches
versionCodeandversionNamehas no-devsuffix: leave it. - A
-devversionNameis a local sideload. ItsversionCodeis intentionally higher than the published client. Replace it. - BES and MTK: if the device is already equal, leave it. If the device is newer than the release pin, stop. Do not downgrade.
- MTK behind: use the
mtk_patchesentry whosestart_firmwareis the device version and whoseend_firmwareis the release target. If that entry does not exist, use the full OTA only after the wipe check below. Intermediate builds such asMentraLive_20260906.2often have no incremental to the latest target.
dumpsys battery level can be a bad gauge. Voltage near 4400 mV is a charged cell even when level is a few percent, and the Infinity Cable may report USB as unpowered. Do not flash when voltage is near empty.
Install
Download each changed artifact with curl. Require the manifest SHA-256 and, when the manifest has one, the byte size. Keep the files outside the repo.
ASG:
adb -s "$ANDROID_SERIAL" install -r -d <apk>-d replaces a -dev sideload. Confirm the first dumpsys versionCode and versionName. If install fails on signature, stop.
MTK runs before BES. An incremental applies when a patch starts at the device version:
ANDROID_SERIAL="$ANDROID_SERIAL" \
./asg_client/scripts/test-mtk-ota.sh <patch.zip>MTK full, when no such patch exists. Before flashing, read META-INF/com/android/metadata and payload_properties.txt. Require ota-type=AB, no ota-wipe=yes, no POWERWASH=1, and no ota-downgrade=yes on an upgrade. test-mtk-ota.sh prints POWERWASH=0 after its own check. Refuse a wiping package.
ANDROID_SERIAL="$ANDROID_SERIAL" \
./asg_client/scripts/test-mtk-ota.sh <full.zip> \
--full --end-firmware <MentraLive_target>The script checks the new boot, the opposite A/B slot, the same eMMC CID, and the exact target version. ADB disappears during the reboot. If observation is interrupted, reconnect and read ro.custom.ota.version. Do not start a second install to compensate. Do not start BES until this boot has finished and ASG is running again.
BES uses the release .bin from the manifest, never a raw BES build:
ANDROID_SERIAL="$ANDROID_SERIAL" \
./asg_client/scripts/test-bes-ota.sh <bin> <version> --no-followThe script returns when the trigger is sent. Proof is a later terminal_status=SUCCESS with actual=<version>, then a fresh version_info_3 whose bes_fw_version equals that version. A tag-filtered logcat -t can miss this after ASG restarts. If the log says BesOtaManager not initialized, start the activity and send the trigger once more. Authorization denied, CRC failure, or apply error stops the run.
Prove it
After BES apply, read all three again. ASG versionCode / versionName, MTK ro.custom.ota.version, and BES bes_fw_version must match the release that was pinned. Report that tag. Manifest checks do not prove the device; the post-update reads do.
Trending
More talk lately.about the whole repository
Who's talking about Mentra-Community/MentraOS
- A Hacker News story“MentraOS – open-source Smart glasses OS”Hacker News · Sep 5, 2025 · 206 points
- @hn100.atproto.rocks“MentraOS – open-source Smart glasses OS https://github.com/Mentra-Community/MentraOS …”Bluesky · Sep 6, 2025 · 23 likes
- @bearstech.com“MentraOS : un OS Open Source pour smart glasses 👉 Le projet : github.com/Mentra-Co... 👉 En savoir plus : …”Bluesky · Sep 6, 2025 · 4 likes
- @github-trending-js.bsky.social“📦 Mentra-Community / MentraOS ⭐ 2,138 (+75) 🗒 TypeScript MentraOS is the leading smart glasses OS. See …”Bluesky · Jun 22, 2026 · 3 likes
- Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit“Align example OTA labels and reconnect presentation”GitHub · Sep 8, 2026 · 1 reactions
The biggest 5 of 55 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 55
Talked about on GitHub, Bluesky and Hacker News (55 times).
On GitHub · 50
- Sep 8, 2026Align example OTA labels and reconnect presentation — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit1 reaction · 2 comments
- Aug 28, 2026chore(release): synchronize examples to 3.1.0-dev.55 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit1 reaction
- Aug 28, 2026chore(release): synchronize examples to 3.1.0-dev.52 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit1 reaction
- Aug 28, 2026chore(release): synchronize examples to 3.1.0-dev.49 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit1 reaction · 1 comment
- Aug 27, 2026Handle chained OTA finishing state in React Native example — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit1 reaction
45 more on GitHub
- May 23, 2026Update to the latest Mentra SDK, audit CI-Server, Ollama, and tailscale integrations — companionintelligence/CI-Mentra1 reaction
- May 11, 2026Use Bluetooth SDK Android package name — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit1 reaction
- Apr 29, 2026Update hardware button capture example controls — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit1 reaction
- Oct 29, 2026chore(release): synchronize examples to 3.3.0-beta.1203 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions
- Oct 29, 2026chore(release): synchronize examples to 3.3.0-beta.1188 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions
- Oct 28, 2026chore(release): synchronize examples to 3.3.0-beta.1180 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions
- Oct 28, 2026chore(release): synchronize examples to 3.3.0-beta.1168 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions
- Oct 28, 2026chore(release): synchronize examples to 3.3.0-beta.1164 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions
- Oct 27, 2026chore(release): synchronize examples to 3.3.0-beta.1162 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions
- Oct 27, 2026chore(release): synchronize examples to 3.3.0-beta.1160 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions
- Oct 25, 2026chore(release): synchronize examples to 3.3.0-beta.1108 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 24, 2026chore(release): synchronize examples to 3.3.0-beta.1102 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 24, 2026chore(release): synchronize examples to 3.3.0-beta.1098 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 24, 2026chore(release): synchronize examples to 3.3.0-beta.1095 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 24, 2026chore(release): synchronize examples to 3.3.0-beta.1081 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 24, 2026chore(release): synchronize examples to 3.3.0-beta.1078 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 12, 2026[Candidate] mentra-community/mentraos/.agents/skills/fix-nightly-failures - fix-nightly-failures — ProSkillsMD/proskills0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.614 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.613 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.612 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.606 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.604 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.603 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.602 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.598 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 5, 2026chore(release): synchronize examples to 3.3.0-dev.597 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.596 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.595 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.594 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.593 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.591 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.590 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.588 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.585 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 4, 2026chore(release): synchronize examples to 3.3.0-dev.584 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 3, 2026chore(release): synchronize examples to 3.3.0-dev.583 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 3, 2026chore(release): synchronize examples to 3.3.0-dev.577 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 3, 2026chore(release): synchronize examples to 3.3.0-dev.575 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 3, 2026chore(release): synchronize examples to 3.3.0-dev.574 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 2, 2026chore(release): synchronize examples to 3.3.0-dev.568 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 2, 2026chore(release): synchronize examples to 3.3.0-dev.567 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Oct 2, 2026chore(release): synchronize examples to 3.3.0-dev.553 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Sep 29, 2026chore(release): synchronize examples to 3.3.0-dev.468 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Sep 28, 2026chore(release): synchronize examples to 3.3.0-dev.461 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
- Sep 28, 2026chore(release): synchronize examples to 3.3.0-dev.445 — Mentra-Community/Mentra-Bluetooth-SDK-Starter-Kit0 reactions · 1 comment
On Bluesky · 4
- Sep 6, 2025MentraOS – open-source Smart glasses OS https://github.com/Mentra-Community/MentraOS https://news.ycombinator.com/item?id=45140381 — @hn100.atproto.rocks23 likes and reposts
- Sep 6, 2025MentraOS : un OS Open Source pour smart glasses 👉 Le projet : github.com/Mentra-Co... 👉 En savoir plus : https://mentra.glass/ — @bearstech.com4 likes and reposts · 1 reply
- Jun 22, 2026📦 Mentra-Community / MentraOS ⭐ 2,138 (+75) 🗒 TypeScript MentraOS is the leading smart glasses OS. See live captions, stream your view,… — @github-trending-js.bsky.social3 likes and reposts
- Dec 14, 2025TIL about MentraOS The open source operating system for smart glasses #OpenSource #OS #technology #SmartGlasses #Smart #Glasses… — @dendrobatus-azureus.bsd.cafe.ap.brid.gy1 likes and repost · 1 reply
On Hacker News · 1
- Sep 5, 2025MentraOS – open-source Smart glasses OS206 points · 122 comments
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- mobile/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- mobile/CLAUDE.mdCLAUDE.md
- ci-triageSkill
- codex-pr-reviewSkill
- configure-workflow-runnersSkill
- investigate-incidentSkill
- manage-cloud-envSkill
- sync-miniappSkill
- plan-review-replanSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

