openclaw/apps/expo-github-mobile/README.md
Claude 9ddebad13c feat: add Expo GitHub mobile app (React Native port)
Port of SwiftUI iOS app to Expo/React Native for cross-platform support.
- Session list with repository info and status
- Chat view with collapsible tool executions
- Message input with model/repo/branch selection chips
- PR creation flow simulation
- Dark theme matching Claude Code aesthetic
- KeyboardAvoidingView for proper keyboard handling

https://claude.ai/code/session_018qmTB96S8xvNRQFrhcvzJp
2026-01-23 13:42:49 -08:00

2.1 KiB

GitHub Mobile App - Expo

A React Native mobile app inspired by Claude Code, built with Expo. This is a port of the SwiftUI iOS app to React Native/Expo for cross-platform support.

Features

  • Session list view with repository info and status
  • Chat view with collapsible tool executions (Write, Bash, Read, Edit, Glob, Grep)
  • Message input with model/repo/branch selection chips
  • PR creation flow simulation
  • Dark theme matching Claude Code aesthetic
  • Mock data for repos, sessions, and tool calls

Tech Stack

  • React Native with Expo SDK 54
  • TypeScript
  • React Context for state management
  • Expo Vector Icons (Ionicons)

Project Structure

src/
├── components/       # Reusable components
│   ├── MessageInputView.tsx
│   ├── SessionRow.tsx
│   ├── MessageView.tsx
│   ├── ToolCallView.tsx
│   ├── Chip.tsx
│   └── NewSessionSheet.tsx
├── contexts/         # React Context providers
│   └── AppContext.tsx
├── models/           # TypeScript types and data
│   └── types.ts
├── theme/            # Colors, spacing, styling
│   ├── colors.ts
│   └── types.ts
└── views/            # Screen components
    ├── SessionListView.tsx
    └── ChatView.tsx

Running the App

# Install dependencies
npm install

# Start development server
npx expo start

# Run on iOS simulator
npm run ios

# Run on Android emulator
npm run android

# Run on web
npm run web

Colors & Theme

The app uses a dark theme matching Claude Code's aesthetic:

  • Background: #141414
  • Card: #292929
  • Accent (warm orange): #D98C33
  • Tool colors: Write (green), Bash (blue), Read (purple)

Models & Data

Mock data includes:

  • 6 repositories (clawdbot, systemss, Awesome-Prompts, etc.)
  • 7 sessions with various titles
  • Active session with tool call examples (Write, Bash commands)

Port Notes

This is a direct port of the SwiftUI app at ../ios-github-mobile/. Key differences:

  • Uses React Native components instead of SwiftUI
  • Ionicons instead of SF Symbols
  • React Context instead of @Observable
  • Modal-based sheets instead of SwiftUI sheets