npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-native-grab

v1.0.0

Published

Touch-to-grab context for React Native agents.

Readme

React Native Grab

Touch-to-grab context tool for React Native UI changes

mit licence npm downloads Chat PRs Welcome

Bridge the context gap: point at the exact native UI element, capture precise source context, and hand it to your coding agent without guesswork.

Inspired by React Grab — this project brings the same touch-to-grab workflow to React Native.

Requirements

This library supports only the New Architecture with the Fabric renderer. It relies on Fabric’s native view hierarchy and APIs and will not work with the legacy architecture or Paper renderer. Ensure your app has the New Architecture (and Fabric) enabled before using React Native Grab.

Features

  • Point, Don't Describe: Select the exact element on screen instead of describing layouts in prompts.
  • Native Runtime Context: Capture context directly from real React Native views with platform-aware source signals.
  • Faster Agent Edits: Remove the search phase for low-entropy UI changes like spacing, alignment, and copy updates.
  • Metro Middleware Integration: Wire once in Metro and send captured context to your host clipboard.

Installation

npm install react-native-grab

Quick Start

  1. Add React Native Grab middleware to Metro.
  2. Wrap your app root with ReactNativeGrabRoot.
  3. If your app uses native navigators (e.g. native stack, native tabs), wrap each screen with ReactNativeGrabScreen.
  4. Open Dev Menu and choose React Native Grab to start selecting elements.

Quick Configuration Example

// metro.config.js
const { getDefaultConfig } = require("@react-native/metro-config");
const { withReactNativeGrab } = require("react-native-grab/metro");

const config = getDefaultConfig(__dirname);
module.exports = withReactNativeGrab(config);

// app root
import {
  ReactNativeGrabRoot,
  ReactNativeGrabScreen,
  ReactNativeGrabContextProvider,
} from "react-native-grab";

// When using native navigators (native stack, native tabs), wrap each screen:
function HomeScreen() {
  return (
    <ReactNativeGrabScreen>
      <ReactNativeGrabContextProvider value={{ screen: "home" }}>
        {/* screen content */}
      </ReactNativeGrabContextProvider>
    </ReactNativeGrabScreen>
  );
}

export default function AppLayout() {
  return <ReactNativeGrabRoot>{/* app/navigation tree */}</ReactNativeGrabRoot>;
}

API

  • ReactNativeGrabRoot: Root-level provider for grab functionality.
  • ReactNativeGrabScreen: When using native navigators (native stack, native tabs), wrap each screen with this component for accurate selection.
  • ReactNativeGrabContextProvider: Adds custom metadata to grabbed elements. Nested providers are shallow-merged and child keys override parent keys. This provider is a no-op in production builds.
  • enableGrabbing(): Programmatically enables grabbing flow.

When grab context is available for a selected element, copied output includes an additional Context: JSON block appended after the existing element preview and stack trace lines.

Documentation

Documentation lives in this repository: callstackincubator/react-native-grab. You can also use the following links to jump to specific topics:

Troubleshooting

Missing React Native Grab in Dev Menu

If you use Expo and provide your own Dev Menu entries, you are most likely overwriting the changes added by React Native Grab.

In that case, import enableGrabbing and call it yourself whenever you want to start grabbing.

import { enableGrabbing } from "react-native-grab";

Made with ❤️ at Callstack

react-native-grab is open source and free to use. If it helps your workflow, please star it 🌟. Callstack is a team of React and React Native engineers, contact us at [email protected] if you need help or just want to say hi.

Like the project? ⚛️ Join the team who does amazing stuff for clients and drives React Native Open Source! 🔥