Product Introduction
- Definition: Shelly is a native Android terminal IDE and AI coding assistant that runs the OpenAI Codex CLI on-device, combining a real local terminal with integrated AI panes, a file browser, and multiple productivity tools in a single, self-contained Android application package (APK).
- Core Value Proposition: Shelly eliminates the fragmented workflow of mobile development by providing a unified, on-device workspace where developers can execute shell commands, run AI-powered coding agents like Codex, and receive real-time, context-aware assistance without needing a PC, remote server, or separate terminal emulator like Termux.
Main Features
- Native PTY Terminal with JNI Forkpty: Shelly embeds a real terminal emulator derived from Termux's codebase, connected to an app-owned pseudo-terminal (PTY) via a custom JNI C layer (
forkpty). This architecture avoids TCP sockets or WebSocket bridges, ensuring the terminal survives app backgrounding (via tmux integration) and operates with the stability of a native process. The technical stack includes Kotlin for the app logic, C for the low-level PTY and process management (shelly-pty.c,shelly-exec.c), and a Canvas-based renderer for high-performance text display. - Cross-Pane Intelligence and AI Integration: The core innovation is the "AI Pane" which sits side-by-side with the terminal. It automatically injects the live terminal transcript into the AI's context. Users can issue commands like "fix the error," and the AI (powered by configurable API providers like Gemini, Cerebras, or local models) analyzes the output, generates a fix, and provides a one-tap
[Run]button to execute the solution directly in the terminal. This eliminates copy-paste between a terminal and a chat interface. - Multi-Pane IDE Layout and Command System: The app features a flexible layout system supporting up to four simultaneous panes (Terminal, AI, Browser, Markdown, Preview, etc.) with resizable splits and layout presets. A powerful Command Palette (fuzzy search) and AgentBar provide quick access to Git operations, terminal management, and theme switching. The File Tree sidebar includes git status dirty badges, file CRUD operations, and quick-access device paths.
- Local LLM Support and Managed Runtime: Beyond cloud APIs, Shelly supports fully on-device inference via bundled GGUF models (Qwen3.5-4B, Qwen3.5-9B) and llama.cpp, routed via
@local. It also manages the OpenAI Codex CLI runtime independently, with an in-app update system that can download, verify (SHA-256), and promote updatedcodex_tui/codex_execbinaries to a secure location (~/.shelly-runtime/codex/current), separate from the core app updates. - Comprehensive Tool Bundling and Android Integration: The APK bundles a full Unix-like environment including bash, Node.js, Python 3, git, curl, ripgrep, jq, tmux, vim, and more. It integrates deeply with Android via features like the Scouter home-screen widget (showing Codex status, cost, and rate limits), voice input (via Groq Whisper), system notifications for command completion, and a managed APK update flow with SHA-256 verification.
Problems Solved
- The Fragmented Mobile Development Workflow: Shelly solves the "copy-paste bridge" problem where developers must constantly switch between a terminal app, a chat app, and a browser. It merges these into a single context-aware workspace.
- Lack of a Professional Mobile IDE for CLI-First Workflows: It addresses the needs of Vibe Coders (using AI generation tools like Bolt or Lovable), Mobile-First Developers relying on Codex CLI, and Non-Engineers with Ideas who need a guided yet powerful interface to build projects directly on their phone without a steep learning curve.
- Unstable or Limited Android Terminal Solutions: It provides a stable, native terminal that doesn't rely on remote servers (like ttyd) or fragile WebView bridges, solving issues with background process killing and terminal crashes.
- Privacy and On-Device Capability Concerns: For users needing offline or private coding sessions, Shelly's local LLM support allows for complete on-device AI inference without sending code to the cloud.
Unique Advantages
- Differentiation: Unlike Termux (a pure terminal), Shelly adds integrated AI and a multi-pane UI. Unlike ChatGPT/Claude apps, it can actually execute code and files on your device. Unlike cloud IDEs (Replit, Codespaces), it operates entirely locally with no latency or internet dependency for core functionality.
- Key Innovation: The app-owned, JNI-based native PTY is the core technical innovation. This allows Shelly to bundle its own Linux-layout binaries and run them on Android's bionic libc without root or proot, using an
exec-wrapperthat routes binaries through the system linker. This creates a stable, performant foundation that is "Not Termux-compatible by design," avoiding path conflicts while providing superior stability.
Frequently Asked Questions (FAQ)
- How does Shelly differ from Termux? Shelly is a self-contained IDE, not just a terminal. It bundles its own binaries, runs Codex CLI natively on the device via an app-owned PTY (JNI forkpty), and integrates AI agents, a browser, and a file manager in a multi-pane layout. Termux compatibility is not a design goal; Shelly is built for integrated AI-assisted development on Android.
- What AI models and coding assistants does Shelly support? Shelly natively supports the OpenAI Codex CLI as its primary foreground assistant. For the AI Pane and background agents, it integrates with API providers including Gemini, Cerebras, Groq, Perplexity, and any OpenAI-compatible local server. It also supports fully on-device local LLMs via bundled Qwen3.5 models and llama.cpp.
- Do I need to root my Android device or install a custom OS?
No. Shelly is a standard Android application distributed as an APK. It uses standard Android permissions (like
MANAGE_EXTERNAL_STORAGEfor/sdcardaccess) and runs with normal app privileges. It does not require root, a custom ROM, or the installation of Termux. - Is Shelly secure? How are my API keys handled?
API keys are stored in Android's secure
expo-secure-storeand are never written to logs. The app includes a command safety system with regex-based risk assessment for shell commands. It is an open-source (GPLv3) project, allowing users to review the code. However, as a terminal app, it runs with the permissions granted to it; users should exercise standard caution when running commands. - What are the main system requirements and how do I install it? Shelly requires an Android device. Installation is done by downloading the APK from GitHub Releases (e.g., v6.0.0, ~800 MB due to bundled tools) and installing it manually. The app then handles its own OTA updates. Building from source requires Node.js 20+, pnpm, and the Android NDK, but a pre-built APK is the recommended installation method.
