この記事で書くこと
前回の記事では、Shelly 上で Claude Code / Codex / Gemini CLI を動かす初期設定について書きました。
ただ、その後の実機運用を踏まえて、方針を変更しました。
Shelly v5.3.8 では、ターミナルで直接動かす CLI 統合を Codex に一本化しています。
Gemini / Groq / Cerebras / Perplexity / local LLM は、AI Pane 側の provider として扱います。つまり「複数 AI をやめた」のではなく、CLI と AI Pane の役割を分離した、という変更です。
この記事では、その理由と、v5.3.8 で実装した更新周りについて書きます。
GitHub: https://github.com/RYOITABASHI/Shelly
Shelly とは(前回のおさらい)
Shelly は、AI コーディングエージェントを Android 上でネイティブ実行するために開発した、AI 統合型のターミナル IDE です。
技術スタック:
Expo 54 / React Native 0.81 / TypeScript(UI)
JNI forkpty によるネイティブ PTY(Termux 不要、IPC 境界ゼロ)
bash / Node.js / Python 3 / git / curl / ssh / sqlite3 / rg / jq / tmux / vim を APK に同梱し、初回起動時に展開
Bundle ID: dev.shelly.terminal
特徴:
Termux 不要・root 不要で Linux 系 CLI が動作
ターミナル / AI チャット / Browser / Markdown / Preview の マルチペイン を同時表示
AI チャットがターミナル出力を自動で読み取り、エラーに対して「Run」ボタンで修正コマンドを実行
フォルダブル端末を IDE として使う前提の設計(ペイン分割前提)
前回から何が変わったか
前回の記事では、Shelly を「Android 上で Claude Code / Codex / Gemini CLI をネイティブ実行する IDE」として紹介しました。
しかし現在の Shelly は、方針を少し変更しています。
ターミナル CLI: Codex に集中
AI Pane: Gemini / Groq / Cerebras / Perplexity / local LLM を provider として使い分け
Background agents: provider API 経由
アプリ更新: GitHub Releases の manifest からアプリ内更新
Codex runtime: APK 同梱版 + 検証付き runtime update
一言でいうと、CLI を増やす方向から、Codex を確実に運用する方向へ寄せたリリースです。
なぜ Claude Code / Gemini CLI の直接統合を外したのか
Claude Code や Gemini CLI を否定しているわけではありません。
理由はより実務的なものです。
Android アプリ内で対話型 CLI を「安定して運用する」には、単にバイナリを置くだけでは不十分です。
ログイン導線
OAuth / device auth / browser handoff
PTY 上での表示制御
Ctrl+C やフォーカス制御
更新
障害時の reset / repair
credential の保存場所
失敗時の診断ログ
これらすべてが UX に直結します。
特に Claude Code / Gemini CLI は、Shelly 単体で完結するログイン導線を作りにくく、前回の記事では credential transplant(別環境でログインして credential ファイルを移植する方法)を案内していました。
ただ、実際に運用すると、この方法はユーザー体験としてかなり重いです。別環境の用意 → ログイン → ファイル書き出し → /sdcard/Download 経由で転送 → インポート → 中継ファイル削除、という手順は、初期設定としては現実的ではありません。
一方で Codex は device auth を Shelly 側で扱いやすく、Android 上でもログイン・実行・更新・復旧まで比較的きれいに統合できます。codex-login --open を bash プロンプトで実行するだけで、別環境なしに認証が完結します。
そのため v5.3.8 では、ターミナル CLI を Codex に集中させました。
複数 AI をやめたわけではない
CLI を Codex に絞っただけで、AI provider を Codex のみにしたわけではありません。
Shelly には AI Pane があり、ここでは provider を切り替えて利用できます。
Gemini API
Groq
Cerebras
Perplexity
local OpenAI-compatible server
ターミナルで直接操作する CLI は Codex、AI Pane では複数 provider を使い分ける、という構成です。
この分離により、ターミナル側の安定性と AI 側の柔軟性を両立しやすくなりました。
Codex runtime をアプリ内更新できるようにした
v5.3.8 の大きな変更点の一つが、Codex runtime の更新経路です。
Shelly では Codex runtime を APK に同梱していますが、それだけでは更新のたびに APK の再配布が必要になります。
そこで、Codex runtime updater を実装しました。
codex-runtime-latest/codex-runtime.json を取得
runtime tarball をダウンロード
SHA-256 を検証
codex_tui --version と codex_exec --version でスモークテスト
問題なければ ~/.shelly-runtime/codex/current に反映
失敗時は Reset で APK 同梱版にロールバック
「常に upstream の latest をそのまま使う」のではなく、Shelly 側で検証した runtime のみを使用する設計です。
APK 更新 UI も作り直した
従来の Shelly では、更新画面に GitHub Actions の run や artifact がそのまま表示されていました。
開発者には便利ですが、一般ユーザーには分かりにくい UI でした。
v5.3.8 では、更新 UI をシンプルに再設計しています。
最新です
更新があります
ダウンロード中
インストール準備完了
エラー
内部では GitHub Releases の android-latest/latest.json を参照し、versionCode を比較、APK を /sdcard/Download/shelly-update-/ にダウンロード後、SHA-256 を検証してから Android の Package Installer に渡します。
GitHub Actions artifact ではなく public release asset を使用することで、GitHub CLI 認証も不要になりました。
Cross-pane intelligence を実機寄りに改善
Shelly の特徴は、ターミナルと AI Pane が同一画面内で連携する点にあります。
AI Pane はターミナルの内容を読み取り、
このエラー直して
といった指示に対し、文脈を踏まえた修正案を提示できます。
v5.3.8 ではこの部分も改善しました。
対象とする terminal pane の明確化
制御文字や不要ログの除去
local LLM に渡すコンテキスト量の最適化
エラー抽出の精度向上
修正コマンドをそのまま実行できる導線の維持
local LLM と API provider のどちらでも、同一 UI で扱えるようにしています。
実機で踏んだ問題の解消
今回の更新は、新機能よりも実機運用の安定性改善が中心です。
Android new architecture の復旧
起動時 ANR の回避
フォーカス / ウィジェット更新の安定化
background agent の起動タイミング調整
ダウンロード進捗ログの追加
日本語 / 英語 UI の整理
versionCode ダウングレード事故の防止
release asset 公開順の修正
特に Android 上でのビルド・インストール・起動確認では、メモリ不足や Package Installer の不明瞭なエラーに頻繁に直面します。
今回の修正では、こうした「原因が分かりにくい失敗」を減らすことを重視しました。
まとめ
Shelly v5.3.8 は、前回の記事から見ると方針転換のリリースです。
以前は「Android で Claude Code / Codex / Gemini CLI をすべて動かす」ことを目指していました。
現在は以下の方針に整理しています。
CLI は Codex に集中
複数 AI は AI Pane の provider として活用
Codex runtime は検証付きでアプリ内更新
APK もアプリ内から更新可能
障害時は Reset で復旧可能
Android 上で AI 開発環境を構築する場合、機能数よりも、ログイン・更新・復旧・診断の設計が重要になります。
v5.3.8 は、その前提に合わせて Shelly を再設計したリリースです。
不具合報告 / feature request は GitHub の issue へお願いします。
