Initial commit: OpenCode mobile app (extracted from opencode monorepo)
This commit is contained in:
88
README.md
Normal file
88
README.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# OpenCode Mobile
|
||||
|
||||
A React Native / Expo app for connecting to OpenCode servers from your phone.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multiple Connection Types**: Connect via local network, tunnels (Cloudflare/ngrok), or cloud-hosted instances
|
||||
- **Secure Authentication**: Biometric authentication (Face ID/Touch ID) support
|
||||
- **Session Management**: View, create, and manage coding sessions
|
||||
- **Real-time Chat**: Stream responses from your AI assistant
|
||||
- **File Diff Viewer**: See what changes were made to your code
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js 18+
|
||||
- Bun (recommended) or npm
|
||||
- Expo Go app on your phone (for development)
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
# From the monorepo root
|
||||
cd packages/mobile
|
||||
bun install
|
||||
|
||||
# Start the development server
|
||||
bun start
|
||||
```
|
||||
|
||||
### Connecting to OpenCode
|
||||
|
||||
1. Start OpenCode in server mode on your machine:
|
||||
|
||||
```bash
|
||||
OPENCODE_SERVER_PASSWORD=yourpassword opencode serve --hostname 0.0.0.0 --port 4096
|
||||
```
|
||||
|
||||
2. Open the app and add a connection:
|
||||
- **Local Network**: Use your machine's local IP (e.g., `http://192.168.1.100:4096`)
|
||||
- **Tunnel**: Set up a Cloudflare Tunnel or ngrok and use the tunnel URL
|
||||
- **Cloud**: Connect to a hosted OpenCode instance
|
||||
|
||||
## Building for Production
|
||||
|
||||
### iOS
|
||||
|
||||
```bash
|
||||
bun run ios
|
||||
# or
|
||||
eas build --platform ios
|
||||
```
|
||||
|
||||
### Android
|
||||
|
||||
```bash
|
||||
bun run android
|
||||
# or
|
||||
eas build --platform android
|
||||
```
|
||||
|
||||
## Security
|
||||
|
||||
- Credentials are stored securely using `expo-secure-store` (iOS Keychain / Android Keystore)
|
||||
- Optional biometric authentication for app access
|
||||
- Optional biometric confirmation for sending messages
|
||||
- All traffic should use HTTPS for non-local connections
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
packages/mobile/
|
||||
├── app/ # Expo Router screens
|
||||
│ ├── (tabs)/ # Tab navigation
|
||||
│ ├── session/ # Session screens
|
||||
│ └── connection/ # Connection management
|
||||
├── src/
|
||||
│ ├── components/ # Reusable components
|
||||
│ ├── hooks/ # Custom hooks
|
||||
│ ├── lib/ # SDK client & types
|
||||
│ └── stores/ # Zustand state stores
|
||||
└── assets/ # App icons & images
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
This is part of the OpenCode monorepo. See the root README for contribution guidelines.
|
||||
Reference in New Issue
Block a user