
Litter
github.com/dnakov/litter- Category
- Developer Tools
- Rank
- No. 517Tools index
- Pricing
- Open Source
- Type
- APP
- Use case
- Coding
- Interfaces
- Mobile
- Builder
- @dnakov
- GitHub
- 2.5k stars
- Latest release
- v0.3.10
- Date
About
A native iOS and Android client for Codex that allows you to access AI coding sessions remotely from your mobile devices. Connect to your Mac over SSH or local network to interact with Codex sessions on the go.
What it does
Litter puts session management, streaming conversations, terminal access, voice handoff, authentication, and connection recovery behind native mobile interfaces. SwiftUI and Compose handle presentation and device services, while one shared Rust core owns runtime state and transport behavior. It can use direct, SSH, paired, or embedded local execution paths.
Why it's ranked here
The architecture gives Litter a credible reason to exist beyond a small remote-control shell. Shared state and transport logic reduce behavioral drift between its clients, while native layers retain platform features. The verdict is mixed because development remains active, several voice controls are incomplete, and the repository audit records unresolved dependency advisories.
What's good
One canonical Rust state owner feeds typed snapshots to both native clients. That avoids separate Swift and Kotlin reducers interpreting the same server events differently. The core also centralizes discovery inputs, reconnect policy, hydration, authentication, terminal state, and multiple transports. Fast development lanes and explicit cross-platform acceptance steps support practical iteration.
Tradeoffs
Building from source carries a substantial toolchain: Rust cross-compilation, Xcode, Android SDK and NDK, Java, Zig, generated bindings, patched submodules, and platform packaging. Some behavior still needs physical-device verification. Android speaker routing is unfinished, audio meters lack real telemetry, and arbitrary existing-thread selection for voice handoff lacks an end-to-end typed contract.
How to use it well
Litter suits developers who already run Codex or Local Studio and want to monitor, resume, or operate those sessions away from their main workstation. Use SSH tunneling for remote access, keep working-directory scope aligned when locating sessions, and test audio or networking changes on devices. It does not eliminate host configuration, credentials, mobile build tooling, or release-signing work.
Technical notes+
README.md describes a shared Rust core at shared/rust-bridge/codex-mobile-client with UniFFI-generated Swift and Kotlin bindings. docs/ARCHITECTURE.md assigns canonical state to AppStoreReducer, subscriptions to AppStore, direct server operations to AppClient, and runtime coordination to MobileClient. Native code lives under apps/ios/Sources/Litter and apps/android/app/src/main/java/com/litter/android. shared/third_party/codex and shared/third_party/ghostty are patched submodules. The Makefile provides fast and packaged iOS, Android, Rust test, binding-generation, watch, Catalyst, and release lanes. Package.swift is an alternate Swift Package Manager entry, while the generated Xcode project remains the production path.
Observed
- License
- GNU GPL version 3 with additional section 7 permission for Apple App Store and Google Play distribution.
- Implementation languages
- Shared Rust core with Swift platform code and Kotlin platform code.
- User interfaces
- Native SwiftUI and Jetpack Compose clients with terminal, session, streaming, and voice surfaces.
- Platform support
- iOS and Android clients, plus Apple Watch and Mac Catalyst build lanes.
- Install and distribution
- Apple App Store listing, Android beta distribution, Google Play release tooling, and Mac Catalyst packaging.
- Build structure
- Make-based orchestration covers Rust checks and tests, generated bindings, native builds, packaging, and release workflows.
Read from README.md, Gemfile, Makefile, docs/DEVELOPMENT.md, docs/ARCHITECTURE.md, docs/REPOSITORY_AUDIT.md, docs/ios/quickstart.md, docs/android/quickstart.md, docs/releases/testflight-whats-new.md, docs/releases/ios-testflight-checklist.md, docs/releases/mac-distribution-checklist.md, docs/releases/android-play-internal-checklist.md, docs/releases/export-compliance/README.md, Package.swift, apps/ios/SnapshotHelper.swift.
What it can do
Connect to Codex sessions on Mac remotely
SSH credentials or local network connection details → Active connection to Mac-based Codex session
Access AI coding sessions from mobile device
Mobile device with network connection → Interactive coding session interface
Interact with Codex AI coding assistant
Natural language coding prompts or requests → AI-generated code suggestions and responses
Execute coding commands remotely via SSH
Code commands and SSH connection → Command execution results on remote Mac
Connect to Mac over local network
Local network credentials and Mac IP address → Direct connection to local Mac Codex instance
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.