Skip to content

puppeteer Extension

Use Puppeteer (headless Chrome) in Trigger.dev tasks.

Setup

ts
import { puppeteer } from "@trigger.dev/build/extensions/puppeteer";

export default defineConfig({
  project: "<project ref>",
  build: {
    extensions: [puppeteer()],
  },
});

Required Environment Variable

Set in your Trigger.dev dashboard → Environment Variables:

PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable

Example Task

ts
import { task } from "@trigger.dev/sdk";
import puppeteer from "puppeteer";

export const screenshotTask = task({
  id: "screenshot",
  run: async ({ url }: { url: string }) => {
    const browser = await puppeteer.launch({
      executablePath: process.env.PUPPETEER_EXECUTABLE_PATH,
    });
    const page = await browser.newPage();
    await page.goto(url);
    const screenshot = await page.screenshot({ encoding: "base64" });
    await browser.close();
    return { screenshot };
  },
});

Built from official Trigger.dev documentation