Keel Go
Keel’s free tester app — the Expo Go equivalent for the China-friendly
RN platform. Install once on your phone; scan a QR (or paste a URL)
to load any Keel-published bundle into a real KeelView for live
preview.
What it is
A thin, single-purpose RN app that embeds the same native binary the user-facing host shells use:
- iOS:
keel/build/ios/Keel.xcframework(built bypackaging/build-ios.sh) - Android:
keel/build/android/keel-sdk.aar(built bypackaging/build-android.sh)
No per-bundle native compilation — Keel Go ships with whatever Keel
modules are declared in its own package.json at build time. Bundles
that only use those modules work out of the box; bundles needing
modules not in Keel Go’s binary need a Dev Client (their own
re-linked tester app).
What it is NOT
- Not a wrapper for arbitrary RN apps — only Keel-shaped bundles (Hermes bytecode + manifest) work.
- Not a code editor — that’s Fabric / Mortar’s job.
- Not a debugger — for that, run
keel startlocally and use the RN Devtools.
Architecture
┌────────────────────────────────────────────────┐
│ Keel Go │
│ ┌────────────────────────────────────────────┐ │
│ │ HomeScreen │ │
│ │ - QR scanner │ │
│ │ - URL paste field │ │
│ │ - Recent bundles list │ │
│ └─────────────────┬──────────────────────────┘ │
│ │ navigates to URL │
│ ┌─────────────────▼──────────────────────────┐ │
│ │ PreviewScreen │ │
│ │ - native <KeelView bundleURL={url} /> │ │
│ └────────────────────────────────────────────┘ │
└────────────────────────────────────────────────┘
↓ embeds (same binary as host shells)
Keel.xcframework / keel-sdk.aar
Distribution
Submit drivers (in keel/cloud/internal/submit/drivers/) publish to:
- 🇺🇸 / 🌍 Apple App Store (
ios_appstore) + Google Play (android_googleplay) - 🇨🇳 华为 / 小米 / OPPO / vivo / 应用宝
End users install once + reuse across every project.
Three UI implementations
Source lives at keel/go/ with three parallel UI impls — all
load the same Keel.xcframework / keel-sdk.aar binary and route to
the same KeelView, so the user experience is identical:
src/— React Native JS UI (dogfoods Keel itself; default)ios/KeelGo/— Native iOS Swift / SwiftUI (no RN runtime at boot)android/app/src/main/java/com/keel/go/— Native Android Kotlin / Compose
The official release uses one; the others stay as reference implementations for community forks.
Local build
Android
cd keel/go/android
echo "sdk.dir=$ANDROID_HOME" > local.properties # one-time
cp ../../../build/android/keel-sdk.aar app/libs/ # built by build-android.sh
gradle :app:assembleDebug
iOS
cd keel/go/ios
brew install xcodegen # one-time
gem install cocoapods # one-time
(cd ../../.. && ./modules-core/packaging/build-ios.sh) # build the SDK first
cp ../../../build/ios/Keel.podspec .
xcodegen generate
pod install
open KeelGo.xcworkspace
See packaging/build-keel-go.sh for the release pipeline.