Shelly v5.3.8 — Codex-first Android AI terminal
Shelly v5.3.8 — Codex-first Android AI terminal
Shelly v5.3.8 is the release where the Android terminal surface becomes
Codex-first. The earlier v5.3.x line explored multiple foreground AI CLIs on
Android; this release narrows the support promise to the path that Shelly can
own end-to-end: Codex in the terminal, API/local providers in the AI Pane, and
managed update/repair flows for both the APK and Codex runtime.
This is not a retreat from multi-provider AI. It is a clearer boundary:
interactive terminal CLI support is focused on Codex, while Gemini, Groq,
Cerebras, Perplexity, local OpenAI-compatible servers, and background agents
remain AI Pane/provider features.
Release surface
| Surface | Status |
|---|---|
| Codex CLI | Supported foreground terminal CLI |
| Codex runtime updater | Supported through Settings -> Updates |
| Android APK updater | Supported through android-latest/latest.json |
| AI Pane providers | Supported where configured |
| Background agents | Supported through provider/API routes |
| Claude Code / Gemini CLI direct foreground integration | Not part of the supported v5.3.8 CLI surface |
Highlights
- CLI support is Codex-first. Shelly now treats Codex as the supported
foreground terminal AI CLI. Other AI systems are routed through the AI Pane
and explicit provider configuration instead of direct CLI integration. - Android APK updates are in-app. Shelly reads the public
android-latest/latest.jsonrelease manifest, comparesversionCode,
downloads the APK, verifies SHA-256, and hands the verified file to
Android's package installer. - Codex runtime updates are managed separately from APK updates. The
Updates UI can download the rollingcodex-runtime-latesttarball, verify
SHA-256, smoke-test bothcodex_tuiandcodex_exec, promote the runtime
under~/.shelly-runtime/codex/current, or reset back to the APK-bundled
runtime. - Cross-pane intelligence is hardened. Terminal context capture now has
stronger pane selection, terminal-log sanitization, local LLM context
compaction, and safer error-file staging behavior. - Startup and focus stability were improved. This line includes fixes for
startup service ANRs, focus/widget update behavior, and background agent work
running too early during launch. - Scouter now surfaces Codex pressure. The Android home widget shows Codex
token flow, cache, model, stale/rate-limit cooldown state, local LLM health,
and device load without opening Shelly. - Download visibility is improved. APK update logs now show bytes,
percentage, and throughput instead of only elapsed time, which makes slow
GitHub asset downloads diagnosable on-device. - APK downloads detach safely. The updater now launches the long-running
release-asset download as a detached bash job, preventing the native
execCommandwrapper from leaving partial APK files without status. - Release version metadata is aligned.
package.json, Expo
runtimeVersion, AndroidversionName, and checked-in native metadata are
aligned to5.3.8. - Codex version ownership is explicit. The shipped Android runtime is the
pinned.ci-versions/codex-runtime-latestnative payload; the npm
@openai/codexdependency is not the authoritative release runtime.
Why direct Claude Code / Gemini CLI support was narrowed
Claude Code and Gemini CLI can be made to run on Android or Termux-like
environments, but supporting them as first-class foreground CLIs inside an
Android app is more than launching a binary. The app has to own login,
credential storage, PTY behavior, updates, native binary compatibility,
diagnostics, and repair paths.
In the v5.3.x testing cycle, that surface was too broad to keep reliable across
Codex, Claude Code, and Gemini CLI at the same time. Codex is the path Shelly
can currently support with a complete Android-native lifecycle: login wrapper,
bundled runtime, verified runtime updates, smoke tests, and reset/repair.
Claude, Gemini, Groq, Cerebras, Perplexity, and local LLMs are still useful in
Shelly, but the release promise is now explicit: they are AI Pane/provider
routes, not supported foreground terminal CLIs in this version.
Update model
Shelly v5.3.8 has two update lanes:
- APK update lane — GitHub Actions publishes the release APK and
latest.jsonto the rollingandroid-latestrelease. The app compares
AndroidversionCode, downloads to
/sdcard/Download/shelly-update-<versionCode>/, verifies SHA-256, then
opens Android's package installer. - Codex runtime lane — GitHub Actions publishes a Codex runtime tarball
andcodex-runtime.jsontocodex-runtime-latest. The app verifies,
extracts, smoke-tests, promotes, and can reset to the bundled runtime if the
app-data runtime is broken or unwanted.
Expo OTA remains disabled for release APKs. The installed APK is the source of
truth for JS and native behavior.
Current release artifacts
versionName: 5.3.8
versionCode: 1388
codex: 0.135.0
codex-termux: v0.135.0
commit: aa40a1f4de4473aac0ab13937b5cefab2475727b
run: 26792917188
APK size: 699829175 bytes
APK sha256: 4012e58dad83c7a7f4415470f3bb410f2ccaff9adb0b17bef71e9bd17d687173
Latest APK:
https://github.com/RYOITABASHI/Shelly/releases/download/android-latest/Shelly-android-v5.3.8-1388-26792917188-1-aa40a1f4de44.apk
Manifest:
https://github.com/RYOITABASHI/Shelly/releases/download/android-latest/latest.json
Upgrade notes
- If an older APK refuses to install, check the installed Android
versionCode; Android rejects downgrades even when the version name looks
similar. - If Codex behaves oddly after a runtime update, use Settings -> Updates ->
Reset to fall back to the APK-bundled Codex runtime. - APK downloads are large, around 700 MB, because Shelly bundles real Android
native runtime payloads instead of relying on Termux/proot. - GitHub Releases remain the current distribution path. Play Store and F-Droid
are still future work.