Installation
Install the@trigger.dev/react-hooks package in your project:
Authentication
All hooks accept an optional last argumentoptions that accepts an accessToken param, which should be a valid Public Access Token. Learn more about generating tokens in the frontend guide.
TriggerAuthContext provider
baseURL to the TriggerAuthContext provider.
Next.js and client components
If you are using Next.js with the App Router, you have to make sure the component that uses theTriggerAuthContext is a client component. So for example, the following code will not work:
app/page.tsx
Page is a server component and the TriggerAuthContext.Provider uses client-only react code. To fix this, wrap the TriggerAuthContext.Provider in a client component:
components/TriggerProvider.tsx
Passing the token to the frontend
Techniques for passing the token to the frontend vary depending on your setup. Here are a few ways to do it for different setups:Next.js App Router
If you are using Next.js with the App Router and you are triggering a task from a server action, you can use cookies to store and pass the token to the frontend.actions/trigger.ts
/runs/[id].tsx page, you can read the token from the cookie and pass it to the TriggerProvider.
pages/runs/[id].tsx
actions/trigger.ts
/runs/[id].tsx page:
pages/runs/[id].tsx
SWR vs Realtime hooks
We offer two “styles” of hooks: SWR and Realtime. The SWR hooks use the swr library to fetch data once and cache it. The Realtime hooks use Trigger.dev realtime to subscribe to updates in real-time.It can be a little confusing which one to use because swr can also be
configured to poll for updates. But because of rate-limits and the way the Trigger.dev API works,
we recommend using the Realtime hooks for most use-cases.
useRealtime* are Realtime hooks, and all hooks named use* are SWR hooks.
Realtime hooks
useRealtimeRun
TheuseRealtimeRun hook allows you to subscribe to a run by its ID.
useRealtimeRun hook:
useRealtimeRunsWithTag
TheuseRealtimeRunsWithTag hook allows you to subscribe to multiple runs with a specific tag.
useRealtimeRunsWithTag hook:
useRealtimeRunsWithTag could return multiple different types of tasks, you can pass a union of all the task types to the hook:
useRealtimeBatch
TheuseRealtimeBatch hook allows you to subscribe to a batch of runs by its the batch ID.
useRealtimeRunWithStreams
TheuseRealtimeRunWithStreams hook allows you to subscribe to a run by its ID and also receive any streams that are emitted by the task. See our Realtime documentation for more information about emitting streams from a task.
useRealtimeRunWithStreams hook:
Common options
enabled
You can pass theenabled option to the Realtime hooks to enable or disable the subscription.
id
You can pass theid option to the Realtime hooks to change the ID of the subscription.
experimental_throttleInMs
The*withStreams variants of the Realtime hooks accept an experimental_throttleInMs option to throttle the updates from the server. This can be useful if you are getting too many updates and want to reduce the number of updates.
SWR Hooks
useRun
TheuseRun hook allows you to fetch a run by its ID.
run object returned is the same as the run object returned by the Trigger.dev API. To correctly type the run’s payload and output, you can provide the type of your task to the useRun hook:
Common options
You can pass the following options to the all SWR hooks:boolean
Revalidate the data when the window regains focus.
boolean
Revalidate the data when the browser regains a network connection.
number
Poll for updates at the specified interval (in milliseconds). Polling is not recommended for most
use-cases. Use the Realtime hooks instead.
Common return values
Error
An error object if an error occurred while fetching the data.
boolean
A boolean indicating if the data is currently being fetched.
boolean
A boolean indicating if the data is currently being revalidated.
boolean
A boolean indicating if an error occurred while fetching the data.
Trigger Hooks
We provide a set of hooks that can be used to trigger tasks from your frontend application. You’ll need to generate a Public Access Token withwrite permissions to use these hooks. See our frontend guide for more information.
useTaskTrigger
TheuseTaskTrigger hook allows you to trigger a task from your frontend application.
useRealtimeTaskTrigger
TheuseRealtimeTaskTrigger hook allows you to trigger a task from your frontend application and then subscribe to the run in using Realtime:
useRealtimeTaskTriggerWithStreams
TheuseRealtimeTaskTriggerWithStreams hook allows you to trigger a task from your frontend application and then subscribe to the run in using Realtime, and also receive any streams that are emitted by the task.

