awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
segmentio avatar

segmentio/nightmare

0
View on GitHub↗
19,775 stars·1,064 forks·JavaScript·29 viewsopen.segment.com↗

Nightmare

Nightmare is an Electron-based browser automation library and headless browser controller. It provides the infrastructure to programmatically navigate web pages, interact with DOM elements, and execute JavaScript within a background browser instance.

The project distinguishes itself by integrating a full Chromium instance within an Electron shell, allowing for the management of browser sessions, network proxy settings, and persistent storage partitions. It enables the capture of page states as PNG screenshots, PDF documents, or HTML files.

The tool covers a broad range of capabilities including automated web scraping, visual testing, and synthetic user monitoring. It includes utilities for cookie management, network traffic configuration via custom HTTP headers, and the ability to extend the browser's functionality through custom actions and plugins.

Features

  • Browser Automation - Provides a framework for controlling headless browsers to mimic user behaviors like typing and clicking.
  • Headless Browser Controllers - Provides a control layer for managing headless browser instances to programmatically navigate and interact with web pages.
  • Browser Automation - Controls web browsers programmatically to mimic human behavior, navigate pages, and interact with elements.
  • Electron Browser Hosting - Integrates a full Chromium instance within an Electron shell to provide native browser control.
  • Chrome DevTools Protocols - Implements the Chrome DevTools Protocol to send commands and receive events from the browser engine.
  • Web Scraping - Extracts structured data from websites by executing JavaScript and capturing HTML source.
  • Browser Storage Persistence - Configures storage partitions to maintain cookies and local storage across different browser instances.
  • Web Page Screenshot and PDF Tools - Saves the current browser view as PNG screenshots, PDF documents, or HTML files for archiving.
  • Promise-Based Flow Wrappers - Wraps asynchronous browser communications in a promise-based flow to simulate a sequential execution model.
  • Synthetic User Monitoring - Simulates user journeys and listens for JavaScript errors or console logs to ensure website stability.
  • Visual Regression Testing - Captures screenshots and PDFs of web pages to verify layouts and detect visual regressions.
  • Browser Cookie Management - Provides utilities to read, set, and clear cookies for specific domains to handle session state.
  • Script Injections - Executes custom JavaScript within the browser context to extract data and manipulate the page DOM.
  • Browser Session Managers - Manages cookies, local storage, and network proxy settings to maintain persistent authenticated sessions.
  • Web Page Retrievers - Runs custom JavaScript within the page context to retrieve structured information and verify elements.
  • Browser Automation - High-level browser automation library based on Electron.
  • Testing Frameworks - High-level browser automation library for end-to-end testing.

Star history

Star history chart for segmentio/nightmareStar history chart for segmentio/nightmare

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Nightmare

Similar open-source projects, ranked by how many features they share with Nightmare.
  • ultrafunkamsterdam/nodriverultrafunkamsterdam avatar

    ultrafunkamsterdam/nodriver

    3,578View on GitHub↗

    nodriver is an asynchronous Chromium browser automation framework that provides headless control and web scraping capabilities. It functions as a Chrome DevTools Protocol client, allowing for granular engine control by attaching directly to the browser's debug port without the need for external driver binaries. The framework is specifically designed as an anti-bot detection bypass tool. It modifies browser fingerprints and protocol headers to evade automated security systems, handle security warnings, and bypass common obstacles like insecure connection alerts. The system covers a broad rang

    Python
    View on GitHub↗3,578
  • googlechrome/puppeteerGoogleChrome avatar

    GoogleChrome/puppeteer

    94,974View on GitHub↗

    Puppeteer is a JavaScript library for programmatically controlling Chrome and Firefox through the Chrome DevTools Protocol or the WebDriver BiDi protocol. It launches and manages browser instances—typically without a visible user interface—to automate interactions with web pages, enabling navigation, clicking, typing, and data extraction entirely through code. The library distinguishes itself through deep integration with the Chromium embedding layer, allowing fine-grained process configuration with custom flags, permissions, and sandbox policies. It maintains multiple concurrent command stre

    TypeScript
    View on GitHub↗94,974
  • g1879/drissionpageg1879 avatar

    g1879/DrissionPage

    12,102View on GitHub↗

    DrissionPage is a Python library designed for web automation, data scraping, and testing. It functions as a browser automation framework that communicates directly with the browser engine via the Chrome DevTools Protocol, allowing for precise control over browser instances and page states. The library distinguishes itself by providing a unified interface that combines full browser automation with raw HTTP request capabilities. This hybrid approach allows users to switch between lightweight network requests and heavy browser-based interactions within a single workflow. By wrapping asynchronous

    Pythonautomation-frameworkpythonweb-automation
    View on GitHub↗12,102
  • php-webdriver/php-webdriverphp-webdriver avatar

    php-webdriver/php-webdriver

    5,203View on GitHub↗

    php-webdriver is a WebDriver PHP client and browser automation framework that implements the W3C WebDriver standard. It serves as a programmatic interface for controlling web browsers, executing JavaScript, and managing browser sessions in both headed and headless environments. The library functions as a Selenium protocol implementation, allowing PHP applications to communicate with browser drivers such as ChromeDriver or GeckoDriver. It provides the ability to automate user actions, navigate pages, and validate DOM elements for web UI testing. Its capabilities cover broad areas of browser i

    PHPphp-webdriverseleniumselenium-php
    View on GitHub↗5,203
See all 30 alternatives to Nightmare→

Frequently asked questions

What does segmentio/nightmare do?

Nightmare is an Electron-based browser automation library and headless browser controller. It provides the infrastructure to programmatically navigate web pages, interact with DOM elements, and execute JavaScript within a background browser instance.

What are the main features of segmentio/nightmare?

The main features of segmentio/nightmare are: Browser Automation, Headless Browser Controllers, Electron Browser Hosting, Chrome DevTools Protocols, Web Scraping, Browser Storage Persistence, Web Page Screenshot and PDF Tools, Promise-Based Flow Wrappers.

What are some open-source alternatives to segmentio/nightmare?

Open-source alternatives to segmentio/nightmare include: ultrafunkamsterdam/nodriver — nodriver is an asynchronous Chromium browser automation framework that provides headless control and web scraping… googlechrome/puppeteer — Puppeteer is a JavaScript library for programmatically controlling Chrome and Firefox through the Chrome DevTools… g1879/drissionpage — DrissionPage is a Python library designed for web automation, data scraping, and testing. It functions as a browser… php-webdriver/php-webdriver — php-webdriver is a WebDriver PHP client and browser automation framework that implements the W3C WebDriver standard.… getgauge/taiko — Taiko is a browser automation framework and web end-to-end testing library used to perform programmatic user actions… apify/crawlee-python — Crawlee-python is a web crawling framework for building scalable scrapers using Python. It serves as a comprehensive…