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

expo-screenshot-logger

v1.1.3

Published

Expo dev tools plugin for capturing and viewing React Native screenshots in your browser

Readme

📸 Expo Screenshot Logger

An Expo dev tools plugin for capturing and viewing React Native screenshots in your browser for easy sharing or debugging with AI assistants.

✨ Features

  • 📱 Instant Screenshot Capture - Use captureScreenshot() from anywhere in your React Native app
  • 🌐 Browser Interface - View screenshots in Expo dev tools with click-to-enlarge
  • 📋 Copy to Clipboard - Copy images directly for sharing with team members or AI assistants
  • 🎯 Smart Labeling - Add custom labels and see timestamps for each screenshot
  • Real-time Sync - Screenshots appear instantly in the browser interface
  • 🖼️ High Quality - Support for PNG/JPG with customizable quality settings

Screenshots

These screenshots are of the tool capturing screenshots of the example app (see /example).

Initial load of the expo-screenshot-logger dev tool plugin:

start.png

We have now captured a screenshot of our example app and we can see it in our dev tool:

captured.png

We can click on the image to zoom-in and copy to our clipboard for sharing:

zoomed-in.png

🚀 Quick Start

Installation

npm install expo-screenshot-logger react-native-view-shot

Setup

1. Initialize in your app's root layout

Add the screenshot logger to your app's root layout file (typically app/_layout.tsx):

import { useScreenshotLogger } from 'expo-screenshot-logger';

function AppContent() {
  // Initialize screenshot logger (must be called at root level)
  useScreenshotLogger();
  
  // ... rest of your app content
}

2. Usage in Components

Recommended Pattern: Dynamic Import

const handleScreenshot = async () => {
  // Import the module dynamically to get the updated function reference
  const { captureScreenshot } = await import('expo-screenshot-logger');
  await captureScreenshot('My Screen Label');
};

Complete Example:

Here we have set up a touchable text component (could be a header) as a discreet way of capturing screenshots from our app:

import React from 'react';
import { TouchableOpacity, Text } from 'react-native';

export function MyComponent({ title }) {
  const handleTitlePress = async () => {
    // Import the module dynamically to get the updated function reference
    const { captureScreenshot } = await import('expo-screenshot-logger');
    await captureScreenshot(title);
  };

  return (
    <TouchableOpacity onPress={handleTitlePress}>
      <Text>{title}</Text>
    </TouchableOpacity>
  );
}

View Screenshots

  1. Start your app: Run npx expo start
  2. Open dev tools: Press shift+m to open Expo dev tools
  3. Find the plugin: Click "Screenshot Logger" in the tools list
  4. Capture screenshots: Use the dynamic import pattern in your app
  5. Copy images:
    • Click "📋 Copy Image" button, OR
    • Click on any thumbnail to zoom in, then right-click and select "Copy Image" from context menu
  6. Share: Paste directly into messaging apps or AI assistants like Claude, ChatGPT, etc.

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Update documentation
  5. Submit a pull request

📄 License

MIT License - see LICENSE file for details

🙏 Acknowledgments

  • Built with Expo dev tools infrastructure
  • Uses react-native-view-shot for screenshot capture

Made with ❤️ for the React Native community