A modern, native iOS client for OpenCode — an AI coding assistant that runs in your terminal.
- 💬 Chat Interface — Real-time conversation with AI coding assistants via SSE streaming
- 🛠️ Tool Execution — View tool calls (bash, file read/write, web fetch, patches) with expandable detail cards
- 📁 File Browser — Explore project files, view code with syntax highlighting, and navigate diffs
- 🔀 Session Management — Create, switch, and rename sessions with a ChatGPT-style slide-out drawer
- 🎨 Modern Design — Unified design system with branded colors, material backgrounds, and smooth animations
- 📱 Universal — Optimized for both iPhone and iPad (split view on iPad)
- 🌐 Multi-language — English & Chinese localization
Coming soon
- iOS 17.0+
- Xcode 15.0+
- An OpenCode server running somewhere accessible
brew install xcodegenxcodegen generateopen OpenCode.xcodeprojSelect your target device/simulator and press ⌘R.
In the app's Settings tab, enter your OpenCode server URL, username, and password.
Sources/
├── App/ # App entry point
├── Models/ # Data models (Session, Message, Part, etc.)
├── Services/ # API client & SSE streaming
├── Utils/ # Theme, localization, path utilities
└── Views/
├── Chat/ # Chat UI (messages, toolbar, input, tools)
├── ContentView.swift # Root layout (tab/split)
├── FileTreeView.swift # Project file browser
├── FileContentView.swift # File viewer with code/image/markdown
└── SettingsTabView.swift # Server & appearance settings
- SwiftUI — Declarative UI framework
- XcodeGen — Project generation from
project.yml - MarkdownUI — Rich markdown rendering in chat messages
- SSE — Server-Sent Events for real-time streaming
The app uses a centralized design system defined in Theme.swift:
| Token | Usage |
|---|---|
AppTheme.primary |
Brand indigo-blue |
AppTheme.accent |
Purple accent |
AppTheme.success/warning/danger |
Semantic status colors |
AppTheme.sendButtonGradient |
Send button gradient |
.cardStyle() |
Material card with shadow |
.floatingToolbar() |
Blurred toolbar background |
Apache License 2.0 — see LICENSE for details.