Reliable background jobs without the headache of managing servers

Trigger.dev has no timeouts, gives you control over concurrency, includes built-in monitoring, and scales to handle an elastic workload. You get all this and more without managing servers yourself.

Observability & monitoring

Concurrency & queues

Durable cron schedules

No infrastructure to manage

Advanced filtering

AI features

Automatic retries

Bulk replaying

Tag your tasks

Real-time alerts

Write normal code

Batch triggers

Long-running tasks

Checkpointing

Explore the full set of powerful features

Write tasks in regular code

With Trigger.dev, you just write your usual async code, and it works seamlessly. No need to split your code into chunks to avoid serverless timeouts, as you deploy your tasks to our long-running servers. Tasks docs

React hooks

Interact with the Trigger.dev API using our React hooks package. Stream AI responses with useRealtimeStream, subscribe to run updates with useRealtimeRun, send data into running tasks with useInputStreamSend, and complete wait tokens with useWaitToken.

MCP Server

The Trigger.dev MCP Server enables AI assistants to interact directly with your projects. Search docs, trigger tasks, monitor runs, and deploy, all from Claude Code, Cursor, Windsurf, VSCode, and more.

Python support

Execute Python scripts from your Trigger.dev tasks using our Python build extension . Run data science, ML workflows, and Python libraries like Pillow, Pandas, or AI frameworks from your tasks.

Max duration

Set maximum execution time for tasks to prevent runaway processes and ensure resource management.

Batch triggering

Use batchTrigger() to initiate multiple runs of a task with custom payloads and options. For fanning-out scenarios, batchTriggerAndWait() allows you to trigger multiple task instances and wait for all results before proceeding. Batch triggering docs

Structured inputs / outputs

The schemaTask function allows you to define precise data schemas for your tasks with runtime payload validation. This ensures consistent, predictable interactions. Perfect for AI agents and API integrations.

Waits

Add waits to pause execution for durations, until specific dates, or for external events. Supports idempotency keys to skip waits during retries and save compute costs.

Wait for HTTP callback

Save on compute costs by pausing runs until third-party services complete their work with webhook callbacks. Your tasks can wait for external processes to finish before continuing execution.

Long-running tasks

Trigger.dev makes it easy to run background jobs that take a long time to complete. So you can handle resource-heavy tasks like AI content generation, video processing, audio manipulation, PDF conversion, or large CSV processing all without timeouts.

Multi-region workers

Deploy your tasks to multiple regions around the world to reduce latency and improve performance for your global user base. Tasks run closer to your users and data sources for optimal response times.

Static IPs

Access production databases and enterprise APIs that require IP allowlisting with our static IP addresses. Essential for enterprise security requirements and database connections with firewall restrictions.

Human-in-the-loop

Add human approval gates to AI agent workflows. Tasks checkpoint while waiting (zero idle compute cost) and resume exactly where they paused when a human responds via the SDK, React hooks, or a webhook callback URL.

Multiple environments

Trigger.dev supports DEV, STAGING, and PROD environments, plus Preview branches that create isolated environments per PR with their own API key, env vars, and schedules.

Preview branches

Create isolated environments for each of your git branches. Each branch has all the features from your other environments (like staging or production). Seamlessly integrates with Vercel - just modify your build script to auto-deploy on every preview. Learn more

Elastic infrastructure

Your tasks are deployed to our elastic infrastructure, which auto-scales resources up and down as needed. Focus on building without worrying about managing infrastructure or hitting any serverless timeouts.

Automatic retries

If your task encounters an uncaught error, we automatically attempt to run it again. You can combine and nest tasks, triggering them from one another, with each task maintaining its own retry behavior. Retrying docs

Checkpointing

Tasks are inherently durable, thanks to our checkpointing feature. It allows the state of your task to be saved and resumed later, ensuring reliability. We also freeze tasks during waits meaning you only pay for task execution time.

Versioning

Atomic versioning allows you to deploy new versions of your code without affecting currently running tasks.

Priority

Set a priority when triggering runs so they start before lower-priority work. Ideal for ensuring premium users or critical tasks jump the queue.

Idempotency

Use idempotency keys to ensure tasks are only executed once, even if triggered multiple times. Essential for reliable distributed systems and preventing duplicate work during retries.

Machines

Configure the number of vCPUs and GBs of RAM you want the task to use. Perfect for resource-intensive AI workloads and compute-heavy tasks.

Logging & tracing

Comprehensive logging and tracing powered by OpenTelemetry to help you debug and monitor your tasks.

Tags

Attach up to 10 tags to each run — strings between 1 and 128 characters — as powerful identifiers. Use them to filter and organize your runs through both the dashboard and SDK. Tags docs

Advanced run filters

Easily sort and find tasks based on status, environment, tags , and creation date. You can filter from the dashboard and programmatically via the SDK using runs.list().

Run metadata

Attach a small amount of metadata to a run which updates as the run progresses. This data can be accessed from inside the run function, via the API, and in the dashboard.

Bulk actions

Perform actions like replaying, cancelling, or managing multiple runs simultaneously from the dashboard. This is particularly useful for replaying failed runs or testing updates across lots of tasks. Bulk actions docs

Real-time alerts

Choose your preferred notification method – email, Slack, or webhook – to stay updated on run failures, deployment issues, or successful deployments. We attempt runs multiple times based on your retry settings and alert you if an uncaught error occurs in any run. Alerts docs

Query

Query your run data using TRQL, a SQL-style language built on ClickHouse. Filter by status, analyze costs, track success rates, and export results as JSON or CSV. Describe what you want in plain English and let AI generate the query. Query docs

Dashboards

Build custom dashboards with real-time chart widgets — or describe what you want in plain English and let AI generate it for you. Dashboards docs

Vercel integration

Connect your Vercel project so every deployment automatically triggers a Trigger.dev deployment. Environment variables sync from Vercel, and atomic deployments keep your app and tasks on the same version. Install from the Vercel Marketplace or connect from the Trigger.dev dashboard .

GitHub integration

Connect a GitHub repo and configure branch tracking for production, staging, and preview environments. Every push to a tracked branch deploys automatically — no CLI commands or custom CI/CD workflows needed. GitHub integration docs

Debounce

Trigger a task with a debounce key to consolidate bursts of activity into one execution. Subsequent triggers with the same key reschedule the existing run instead of creating new ones. Supports leading mode (first payload wins) and trailing mode (last payload wins) with configurable delay windows. Debounce docs

Input Streams

Push data into running tasks with typed input streams. Build cancel buttons, approval forms, or any UI that sends data mid-execution. Define streams with schemas, then use.send(runId, data) from your backend or useInputStreamSend from React.

Sandboxing (coming soon)

Generate code at runtime and execute it in secure cloud sandboxes.

Ready to start building?

Build and deploy your first task in 3 minutes.

Get started now