A local AI chatbot powered by Cactus SDK running entirely on your device.
- Xcode (macOS only, for iOS builds)
- CocoaPods:
sudo gem install cocoapods - Physical iPhone connected via USB (recommended for LLM performance)
- Free Apple Developer Account (sign in via Xcode)
# Copy the example env file
cp .env.example .env
# Edit .env and add your OpenRouter API key
# Get a free key from: https://openrouter.ai/keysImportant: .env is gitignored and will never be committed. Keep your API keys secure!
npm installConnect your iPhone via USB, then:
npm run build:ios:deviceThis will:
- Generate native
ios/folder with Cactus native code - Build the app (~5-10 minutes first time)
- Install on your connected iPhone
After the initial build, use hot reload:
npm run devChanges to JS/TS files will hot reload instantly on your device!
| Command | Description |
|---|---|
npm run dev |
Start dev server with hot reload |
npm run build:ios:device |
Build and install on connected iPhone |
npm run build:ios |
Build for iOS simulator |
npm run prebuild |
Generate native folders |
npm run prebuild:clean |
Regenerate native folders from scratch |
npm run clean |
Remove native folders and cache |
npm run reset |
Full reset and regenerate native folders |
- First time: Run
npm run build:ios:device(one-time ~5-10 min build) - Daily development: Run
npm run devfor hot reload - Added native dependency?: Run
npm run prebuild:cleanthen rebuild
- Tap "Download Model" to download the AI model (~500MB)
- Wait for download to complete (requires WiFi)
- Start chatting with local AI!
- Expo Go won't work - This app uses native modules (Cactus SDK)
- Model runs on-device - No internet required after download
- Works offline - All inference happens locally
cd ios && pod install --repo-update- Ensure iPhone is connected via USB
- Trust the computer on your iPhone when prompted
- Open Xcode and check device is recognized
- Ensure stable WiFi connection
- The model is ~500MB-1.5GB depending on variant
- Expo with dev-client
- Cactus React Native SDK v1.2
- React Native Nitro Modules
- TypeScript