Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. TAP
  3. smokestack

smokestack

NOASSERTIONJavaScript

Pipe JavaScript into a browser and capture console output in Node for simple browser automation and testing.

GitHubGitHub
244 stars19 forks0 contributors

What is smokestack?

Smokestack is a Node.js tool that pipes JavaScript into a browser (Chrome, Firefox, or Sauce Labs) and captures console output back in Node.js. It solves the problem of running browser-based scripts and UI tests with minimal setup, providing a simple alternative to complex browser automation frameworks.

Target Audience

Developers and testers who need to run JavaScript in a browser for testing, automation, or debugging, particularly those using tools like tape for TAP-based testing in browser environments.

Value Proposition

Developers choose Smokestack for its simplicity and low overhead—it offers a direct pipe from JavaScript to browser console logs without the bloat of larger automation tools, making it ideal for quick testing and integration into build pipelines.

Overview

Pipe your JavaScript into a browser, logging console output in Node

Use Cases

Best For

  • Running UI tests in a browser from the command line
  • Capturing console logs from browser scripts in Node.js
  • Integrating browser-based testing with TAP output using tape
  • Automating browser screenshots in Chrome
  • Running tests on Sauce Labs without complex setup
  • Scripting headless browser tasks with Xvfb

Not Ideal For

  • Projects requiring complex browser interactions like form filling or multi-page navigation
  • Teams needing immediate cross-browser screenshot support beyond Chrome
  • Developers using modern test frameworks like Jest or Cypress that have built-in browser testing
  • Large-scale testing suites requiring parallel execution and detailed reporting

Pros & Cons

Pros

Minimal Setup

Setup is straightforward with no complex configuration; just pipe JavaScript into the browser to get console logs, as emphasized in the README's philosophy of simplicity.

Flexible Usage Modes

Can be used via CLI for quick tasks or as a Node.js module for integration into scripts, demonstrated in the module usage examples with browserify and tape.

TAP Integration

Specifically designed for TAP output with tools like tape, making it seamless for developers already using TAP-based testing in browsers, as shown in the CLI pipeline examples.

Headless Browser Support

Supports running browsers headlessly using Xvfb, enabling automation in CI/CD environments without a display, as detailed in the README's headless section.

Cons

Limited Feature Set

Missing advanced features like screenshot support for Firefox and Sauce Labs (currently Chrome-only), and lacks built-in testing utilities, relying on external tools for assertions and helpers.

Basic Automation Scope

Focuses primarily on console log capture and simple scripts, not suitable for complex user interactions or full UI automation, making it inadequate for detailed end-to-end testing.

Experimental Nature

Marked as experimental with an orange stability badge in the README, suggesting potential instability or breaking changes in future updates, which may deter production use.

Frequently Asked Questions

Quick Stats

Stars244
Forks19
Contributors0
Open Issues20
Last commit3 years ago
CreatedSince 2014

Tags

#ui-testing#console-logging#cli-tool#headless-browser#nodejs#testing#tape#browser-automation

Built With

N
Node.js

Included in

TAP645
Auto-fetched 8 hours ago

Related Projects

AVAAVA

Node.js test runner that lets you develop with confidence 🚀

Stars20,827
Forks1,459
Last commit2 months ago
tapetape

tap-producing test harness for node and browsers

Stars5,798
Forks305
Last commit2 months ago
taptap

Test Anything Protocol tools for node

Stars2,425
Forks282
Last commit4 days ago
faucetfaucet

human-readable TAP summarizer

Stars557
Forks20
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub