Self-hosted service
triggerdotdev/trigger.dev avatar
triggerdotdev/trigger.dev

Trigger.dev: Durable TypeScript Tasks for AI Agents Without Serverless Timeouts

Project brief: Trigger.dev, build and deploy fully managed AI agents and workflows.

16,284 stars1,456 forksTypeScriptApache-2.0

At a glance

What is it?
Trigger.dev is an open-source platform for building and deploying AI agents and workflows in TypeScript, offering long-running tasks, queues, retries, and observability. Its core promise is eliminating the timeout limits of serverless platforms like AWS Lambda and Vercel.
Who is it for?
Adopt Trigger.dev if you are building TypeScript-based AI agents or workflows that need long-running execution without timeouts, built-in retries, queues, and observability. Avoid it if you prefer to manage your own infrastructure or need tight control over the execution environment, since the managed cloud or self-hosted setup requires accepting the platform's architecture.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem: Serverless Timeouts and Fragile AI Workflows

AI agents often need to run for minutes or hours, not milliseconds. Traditional serverless platforms like AWS Lambda and Vercel impose hard timeout limits, forcing developers to break workflows into awkward chunks or use external orchestrators. Trigger.dev addresses this directly by offering tasks that run with no timeouts at all. The README states: 'Execute your tasks with absolutely no timeouts, unlike AWS Lambda, Vercel, and other serverless platforms.' This matters for agents that poll external APIs, wait for human input, or process large data streams. The platform is designed for TypeScript developers building AI workflows who want the convenience of serverless deployment without the execution ceiling.

The Core Mechanism: Tasks, Durability, and Checkpointing

At the heart of Trigger.dev is the task abstraction. You write a function using the @trigger.dev/sdk, export it, and give it a unique id. The run function contains your logic, and the platform handles the rest. The README highlights a checkpointing system that makes tasks inherently durable. This is not just retries on failure; it is a mechanism that preserves execution state so a task can resume after a crash or a long pause. Combined with automatic retries on uncaught errors, this gives you a workflow that survives transient failures. The platform also provides queues and concurrency rules, allowing you to control how many tasks execute in parallel. This is a different model from a simple function invocation: you are building stateful, resumable processes.

Getting Started: Writing and Deploying Your First Task

The README shows a minimal example. You import task from @trigger.dev/sdk, define an exported constant with a unique id, and write a run function that takes a payload. The code is plain TypeScript, which means you can test it locally and keep it in version control. Deployment is described as automatic: 'Use our SDK to write tasks in your codebase. There's no infrastructure to manage, your tasks automatically scale and connect to our cloud. Or you can always self-host.' The SDK is available on npm as @trigger.dev/sdk. The platform supports multiple environments: Development, Staging, Preview, and Production. This lets you test before deploying. The exact CLI commands are not in the README, but the workflow is clear: write tasks in your repo, push to the platform, and manage runs through the dashboard or SDK.

Key Features: Human-in-the-Loop and Realtime Streaming

Two features stand out for AI agent use cases. The first is human-in-the-loop via waitpoints. You can programmatically pause a task until a human approves, rejects, or gives feedback. This is essential for workflows that require a judgment call. The second is realtime support. You can subscribe to runs and stream LLM responses to your frontend. This turns background jobs into foreground interactions. The README also mentions React hooks for frontend integration, batch triggering with batchTrigger(), and scheduling with durable cron schedules up to a year. These features are not just add-ons; they shape how you design your agent. For example, you can build a task that waits for user confirmation, then streams the final result to the UI, all within one durable execution.

Runtime Freedom: Build Extensions and Custom Packages

One of the more unusual capabilities is build extensions. The README says you can hook directly into the build system to customize the build process. This allows you to run Python scripts, use FFmpeg, or launch browsers. This is a significant departure from typical serverless environments where the runtime is locked down. For AI agents that need to process video, run a Python library, or interact with a web page, this flexibility is valuable. However, it also means you are responsible for the dependencies and their compatibility. The documentation likely explains how to configure these extensions, but the core idea is that you are not limited to pure Node.js. This feature could be the deciding factor for teams that need to integrate non-TypeScript tools.

Observability and Operations: Tracing, Logging, and Alerts

Every run comes with full tracing and logs, according to the README. You can see exactly what happened at each step, which is critical for debugging long-running agents. You can attach up to ten tags to each run for filtering, and attach metadata that updates as the run progresses. Real-time alerts let you choose your preferred notification method for run failures and deployments. Bulk actions allow you to replay or cancel multiple runs at once. This operational tooling is not an afterthought; it is a core part of the platform. For teams that need to audit AI decisions or troubleshoot in production, these features reduce the pain of distributed debugging. The dashboard is the primary interface, but the SDK also exposes run data for programmatic access.

Limitations and Trade-offs: Versioning, Self-Hosting, and Lock-in

The platform has a clear bias toward its managed cloud. Self-hosting is mentioned, but the README does not detail the complexity. You need to consider the operational overhead of running the platform yourself. The checkpointing system is a proprietary mechanism; if you self-host, you inherit its constraints. Also, the atomic versioning feature means you can deploy new versions without affecting running tasks, but this implies a strict deployment model that may not fit every Git workflow. Another limitation is that the platform is TypeScript-first. If your team uses another language, you are out of luck. Finally, the no-timeout guarantee is a strong claim, but it depends on the infrastructure. You should verify the actual limits in the documentation, especially for self-hosted deployments.

Alternatives: Comparing to Temporal and Serverless Orchestrators

The most direct alternative is Temporal, which also provides durable workflows with timeouts and retries. Temporal uses a gRPC-based server and SDKs in multiple languages, whereas Trigger.dev is TypeScript-only and offers a managed cloud with a dashboard. Temporal gives you more control over the execution environment and is language-agnostic, but it requires you to run and operate the Temporal cluster. Trigger.dev abstracts that away, but you trade that for a tighter coupling to the platform. Another alternative is using plain serverless functions with a step function service like AWS Step Functions. That approach has timeouts and requires you to model state machines explicitly. Trigger.dev lets you write linear code that the platform makes durable, which is a different developer experience. Your choice depends on whether you want a managed, TypeScript-centric solution or a self-managed, polyglot workflow engine.

Editorial conclusion

Adopt Trigger.dev if you are building TypeScript-based AI agents or workflows that need long-running execution without timeouts, built-in retries, queues, and observability. Avoid it if you prefer to manage your own infrastructure or need tight control over the execution environment, since the managed cloud or self-hosted setup requires accepting the platform's architecture. Before adopting, verify the self-hosting requirements, the checkpointing system's behavior with your specific workloads, and the exact limits of the free tier or pricing model.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes