
callstackincubator / react-native-harness
★ 315A skill package that teaches your agent 1 capability — every one documented and browsable below, no GitHub required · by callstackincubator.
Each skill below is one capability this package teaches your agent. Install the whole package, or open a skill to install just that one.

Jest-style tool for testing native behavior directly on devices
Bridge the testing gap: Jest-style tests in real native environments. Get the convenience of describe/it with full access to native modules.
Features
- Jest-Style Syntax, Native Power: Write familiar describe/it tests that run in real iOS and Android environments with full native module access.
- Best of Both Worlds: Unlike Jest (Node.js only) or Maestro (UI-based), get convenient test syntax AND native environment execution.
- Real Device, Simulator & Web Testing: Execute tests on iOS simulators, Android emulators, or in a browser (Web) — catch platform-specific issues Jest can't see.
- Native Module Testing: Test native modules, platform APIs, and device-specific functionality that's impossible with JavaScript-only runners.
- Familiar Test Structure: Use beforeEach, afterEach, describe, it, expect — all the testing patterns you know and love from Jest.
- Zero Configuration Setup: Drop-in replacement for your existing test workflow with TypeScript support and seamless CI/CD integration.
Quick Configuration Example
// rn-harness.config.mjs
import {
androidPlatform,
androidEmulator,
physicalAndroidDevice,
} from '@react-native-harness/platform-android';
import {
applePlatform,
applePhysicalDevice,
appleSimulator,
} from '@react-native-harness/platform-apple';
const config = {
entryPoint: './src/main.tsx',
appRegistryComponentName: 'MyApp',
runners: [
androidPlatform({
name: 'android',
device: androidEmulator('Pixel_8_API_35'),
bundleId: 'com.myapp',
}),
applePlatform({
name: 'ios',
device: appleSimulator('iPhone 16 Pro Max', '18.0'),
bundleId: 'com.myapp',
}),
],
defaultRunner: 'android',
};
export default config;Documentation
The documentation is available at react-native-harness.dev. You can also use the following links to jump to specific topics:
- Quick Start
- Configuration (Metro port, plugins, timeouts, coverage, and more)
- Problem Statement
- Feature Comparison
- Running in CI/CD
- API Reference
Made with ❤️ at Callstack
react-native-harness is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. Callstack is a group of React and React Native geeks, contact us at hello@callstack.com if you need any help with these or just want to say hi!
Like the project? ⚛️ Join the team who does amazing stuff for clients and drives React Native Open Source! 🔥
Install the whole package (1 skills):
npx skills add https://github.com/callstackincubator/react-native-harnessOr install a single skill:
npx skills add https://github.com/callstackincubator/react-native-harness --skill <name>Pick the skill name from the Skills tab — each entry there installs independently.