Skip to content

michaelgermini/react-grab

 
 

Repository files navigation

React Grab

size version downloads

Install using Cursor

Grab any element on in your app and give it to Cursor, Claude Code, etc. to change.

By default coding agents cannot access elements on your page. React Grab fixes this - just point and click to provide context!

  • Hold ⌘C and click on any element on your page
  • Works with Cursor, Claude Code, OpenCode
  • Just a single script tag (it’s just JavaScript!)

React Grab Demo

Install

Install using Cursor

Get started in 1 minute by adding this script tag to your app:

<script
  src="//unpkg.com/react-grab/dist/index.global.js"
  crossorigin="anonymous"
  data-enabled="true"
></script>

If you're using a React framework or build tool, view instructions below:

Next.js (App router)

Add this inside of your app/layout.tsx:

import Script from "next/script";

export default function RootLayout({ children }) {
  return (
    <html>
      <head>
        {/* put this in the <head> */}
        {process.env.NODE_ENV === "development" && (
          <Script
            src="//unpkg.com/react-grab/dist/index.global.js"
            crossOrigin="anonymous"
            strategy="beforeInteractive"
            data-enabled="true"
          />
        )}
        {/* rest of your scripts go under */}
      </head>
      <body>{children}</body>
    </html>
  );
}

Next.js (Pages router)

Add this into your pages/_document.tsx:

import { Html, Head, Main, NextScript } from "next/document";

export default function Document() {
  return (
    <Html lang="en">
      <Head>
        {/* put this in the <Head> */}
        {process.env.NODE_ENV === "development" && (
          <Script
            src="//unpkg.com/react-grab/dist/index.global.js"
            crossOrigin="anonymous"
            strategy="beforeInteractive"
            data-enabled="true"
          />
        )}
        {/* rest of your scripts go under */}
      </Head>
      <body>
        <Main />
        <NextScript />
      </body>
    </Html>
  );
}

Vite

  1. Run npm i react-grab@latest
  2. Add this to your vite.config.ts:
// ...
import { reactGrab } from "react-grab/plugins/vite";

export default defineConfig({
  plugins: [
    // add react grab as a plugin
    reactGrab(),
  ],
});

Resources & Contributing Back

Want to try it out? Check the our demo.

Looking to contribute back? Check the Contributing Guide out.

Want to talk to the community? Hop in our Discord and share your ideas and what you've build with React Grab.

Find a bug? Head over to our issue tracker and we'll do our best to help. We love pull requests, too!

We expect all contributors to abide by the terms of our Code of Conduct.

→ Start contributing on GitHub

License

React Grab is MIT-licensed open-source software.

About

Grab any element on in your app and give it to Cursor, Claude Code, etc

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.7%
  • JavaScript 4.1%
  • Other 1.2%