Skip to main content

What is Trigger.dev?

Trigger.dev lets you write reliable background tasks and AI agents as plain async TypeScript code. Tasks run in fully managed, isolated environments — with no timeouts, built-in retries, automatic queuing, and real-time observability through a dashboard and Realtime API. You write tasks alongside your existing application code, deploy with a single CLI command, and trigger them from anywhere: a web request, a webhook, a cron schedule, or another task.

Quickstart

Get your first task running in under 5 minutes.

How it works

Understand the architecture, dev mode, and run lifecycle.

Writing tasks

Learn how to define, configure, and structure tasks.

AI agents

Build durable, long-running AI agents with built-in waiting and human-in-the-loop.

Key concepts

Tasks

A task is a named, exported async function defined with the task helper from @trigger.dev/sdk. Tasks can accept a typed payload, configure retries, set concurrency limits, and call other tasks as subtasks.
import { task } from "@trigger.dev/sdk";

export const sendWelcomeEmail = task({
  id: "send-welcome-email",
  retry: {
    maxAttempts: 3,
    minTimeoutInMs: 1000,
    factor: 2,
  },
  run: async (payload: { userId: string; email: string }) => {
    // Long-running logic here — no timeout restrictions
    await deliverEmail(payload.email);
    return { sent: true };
  },
});

Runs

A run is a single execution of a task. When you trigger a task, Trigger.dev creates a run, queues it, and executes it in an isolated environment. Each run has full trace logs, timing data, and error details in the dashboard. See Runs for details.

Triggering

Tasks can be triggered from your backend using the SDK’s tasks.trigger method, or directly from a task using anotherTask.trigger(). You can trigger one task, batch-trigger many, or use triggerAndWait to wait for a result inline. See Triggering tasks.

Scheduled tasks

Scheduled tasks run on a cron schedule. Define them with schedules.task and they execute automatically on the interval you configure. See Scheduled tasks.

Checkpointing and waiting

Tasks can pause execution to wait for a duration, an event, a subtask result, or a human approval — without holding compute resources. The Checkpoint-Resume System snapshots the task state and restores it when the wait resolves. See Waits and How it works.

Realtime API

The Realtime API lets you subscribe to run status updates and stream task output directly to your frontend using React hooks. See Realtime API and React hooks.

Core features

No timeouts

Tasks run for as long as they need — minutes, hours, or days.

Automatic retries

Configure exponential backoff retry policies per task.

Elastic scaling

Tasks scale automatically based on load with no infrastructure to manage.

Concurrency & queues

Control how many tasks run in parallel and queue excess work.

Human-in-the-loop

Pause a run and wait for a human to approve or provide input.

Full observability

Every run has structured trace logs and timing data powered by OpenTelemetry.

Build extensions

Build extensions let you customize the Docker image that runs your tasks — installing system packages, adding Python, bundling browser binaries, and more.
ExtensionWhat it does
prismaExtensionRun Prisma migrations and generate the client at build time
pythonExtensionExecute Python scripts inside tasks
playwrightUse Playwright for browser automation
ffmpegUse FFmpeg for video and audio processing
aptGetInstall arbitrary system packages via apt-get
syncEnvVarsAutomatically sync environment variables to Trigger.dev
See the full list in Build extensions.

Deployment options

You can run Trigger.dev in two ways:
  • Trigger.dev Cloud — Fully managed hosting at cloud.trigger.dev. Free tier available.
  • Self-hosted — Deploy Trigger.dev on your own infrastructure using Docker or Kubernetes. See Self-hosting.

Getting help

Discord

Join the community Discord for questions, help, and announcements.

GitHub

Browse the source, open issues, and contribute on GitHub.

X (Twitter)

Follow for updates, tips, and new feature announcements.

Schedule a call

Talk directly with the founders if you need help getting started.

Build docs developers (and LLMs) love