0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AndroidでClaude Code / Codex / Gemini CLIを動かすために詰まったこと —— Shelly v5.1.0の実装メモ

0
Posted at

AndroidでClaude Code / Codex / Gemini CLIを動かすために詰まったこと —— Shelly

1000039170.jpg

はじめに

前回、ShellyというAndroid向けターミナルIDEを作った話を書きました。

今回はその続きとして、実際にAndroid上でAI coding CLIを動かそうとして詰まった部分を書きます。

なぜTermux/prootだけでは足りなかったか

  • phantom process killing
  • SELinux
  • app切り替え時のプロセス維持
  • WebView/WebSocketベースの限界
  • CLIごとの認証・実行方式の差

Shellyの現在の構成

  • Expo / React Native UI
  • Kotlin / Android native module
  • JNI forkpty
  • managed runtime
  • bundled CLI binaries
  • TypeScript側のUI/agent orchestration

JNI forkptyにした理由

PTYをAndroidアプリ内で直接持つことで、ターミナル出力をUIとAIに渡しやすくした。

managed runtimeの考え方

Androidのapp data配下に置いたバイナリをそのままexecすると制約に当たる。
そこで、実行経路を制御するラッパーを用意した。

※ここは「完全なSELinux bypass」とは書かず、制約回避のための実装と書く。

Claude Codeで詰まったこと

  • 旧バージョンは動く
  • 2.1.113+ はmusl Bun SEA周りでブロック
  • __errno_location 問題
  • Bash tool実行で追加課題
  • 現時点では完全解決ではない

Codexで詰まったこと

  • codex-termux fork経由で動かしている
  • ただし最新モデル利用にはCLI側のバージョン制約がある
  • gpt-5.5 は現行同梱CLIでは弾かれるケースがある

Gemini CLIで詰まったこと

  • 起動はする
  • 自動更新が失敗する場合がある
  • Shelly内で「最新版を常に使う」設計はまだ完全ではない

実機テストで分かったこと

  • Galaxy Z Fold6で検証
  • Claude Codeのペーストは通った
  • CLIごとに正常系が違う
  • READMEに書けることと、実機で保証できることを分ける必要がある

APKサイズ問題

v5.1.0時点でAPKは約866〜868MiB。
主因はAI CLI runtimeを同梱していること。

大きいもの:

  • Claude runtime
  • Codex TUI / exec
  • cli-tools.tar
  • Node
  • GitHub CLI

stripではほぼ削れなかった。
次にやるなら、Core APK + optional runtime download方式。

まとめ

Android上でAI coding agentを動かすことはできる。
ただし「Linuxが動くからCLIもそのまま動く」わけではない。

Shellyは今、その境界を1つずつ潰している段階です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?