ScriptsJul 7, 2026·3 min read

PhantomJS — Scriptable Headless Browser for Web Automation

A headless WebKit-based browser with a JavaScript API for automated page interaction, testing, screen capture, and network monitoring without a visible UI.

Agent ready

Ready-to-run agent install

This asset can be installed after the agent chooses its runtime, checks the plan, and runs the matching command.

Native · 98/100Policy: allow
Agent surface
Any MCP/CLI agent
Kind
Skill
Install
Single
Trust
Trust: Established
Entrypoint
PhantomJS Overview
Direct install command
npx -y tokrepo@latest install db2569be-79ff-11f1-9bc6-00163e2b0d79 --target codex

Run after dry-run confirms the install plan.

Introduction

PhantomJS is a headless browser powered by WebKit that provides a JavaScript API for automating web page interaction. It was one of the first tools to enable full browser rendering without a graphical display, making it foundational for automated testing, web scraping, and server-side page rendering.

What PhantomJS Does

  • Renders full web pages headlessly using the WebKit engine
  • Captures screenshots and generates PDFs of rendered pages
  • Automates form submissions, clicks, and navigation via JavaScript
  • Monitors network requests and responses for performance analysis
  • Executes arbitrary JavaScript in the context of a loaded page

Architecture Overview

PhantomJS embeds a full WebKit rendering engine compiled as a standalone C++ binary. It exposes a JavaScript runtime through which users script page interactions. The architecture includes modules for web pages, the file system, child processes, and a built-in web server, all accessible through CommonJS-style require() calls.

Self-Hosting & Configuration

  • Download prebuilt binaries from the official releases or install via npm
  • No daemon or server component required; runs as a CLI tool
  • Configure page settings (viewport, user agent, headers) per script
  • Use --proxy and --ssl-protocol flags for network configuration
  • Integrate with CI pipelines by adding phantomjs to your PATH

Key Features

  • Full DOM and CSS rendering without a GUI
  • Built-in screenshot and PDF generation
  • Network activity monitoring with HAR export
  • Embedded web server module for local HTTP endpoints
  • CoffeeScript support for writing automation scripts

Comparison with Similar Tools

  • Puppeteer — Controls headless Chrome with a modern async API; actively maintained and recommended for new projects
  • Playwright — Multi-browser automation (Chromium, Firefox, WebKit) with auto-waiting and better cross-browser support
  • Selenium — Browser automation across all major browsers with WebDriver protocol; heavier but more versatile
  • Cypress — Developer-focused E2E testing framework with time-travel debugging

FAQ

Q: Is PhantomJS still maintained? A: The project was archived in 2018. Headless Chrome and Puppeteer are the recommended modern alternatives for new projects.

Q: Why was PhantomJS important? A: It pioneered headless browser automation before Chrome and Firefox offered native headless modes, enabling early CI/CD testing workflows and server-side rendering.

Q: Can I still use PhantomJS for legacy projects? A: Yes, prebuilt binaries remain available and the npm package still installs, but it does not support modern web standards like ES2015+ or HTTP/2.

Q: What replaced PhantomJS? A: Google released headless Chrome in 2017 and Puppeteer shortly after, providing a more capable and actively maintained headless browser solution.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets