Sign in

Trigger.dev

@triggerdev.bsky.social
57 followers 4 following 605 posts

Open source background jobs and AI infrastructure (YC W23). → trigger.dev → github.com/triggerdotdev → trigger.dev/discord The official 🦋 account for Trigger.dev

PostsRepliesMedia
Trigger.dev @triggerdev.bsky.social · 2h
This summer we upgraded our 56TB Postgres database with (almost) no downtime. And we moved all new runs to @planetscale.com Metal. This post covers everything we did and everything we learned along the way. tgr.dev/O50VFcz
trigger.dev
Upgrading a 56TB database that's growing at 250GB per day with (nearly) no downtime | Trigger.dev
We had to upgrade our 56TB Aurora Postgres cluster by 31 July without taking Trigger.dev down. Instead of moving the database, we made the problem smaller: new runs and the control plane went to PlanetScale, and the old runs stayed behind.
000
Trigger.dev @triggerdev.bsky.social · 21/09/2026
Open a project's dev environment and hit "Copy AI agent prompt" to try it. Full write-up: trigger.dev/changelog/a...
trigger.dev
Set up Trigger.dev with your AI agent | Changelog
Copy a project-aware prompt that connects your coding agent to Trigger.dev's MCP server, with a CLI fallback and live setup progress.
000
Trigger.dev @triggerdev.bsky.social · 21/09/2026
The MCP server stays useful after setup. Ask your agent to filter runs, explain a failure from its trace, deploy, or query runs and LLM usage with TRQL, all from your editor. Tighter guardrails: --𝚍𝚎𝚟-𝚘𝚗𝚕𝚢 and --𝚛𝚎𝚊𝚍𝚘𝚗𝚕𝚢.
220
Trigger.dev @triggerdev.bsky.social · 21/09/2026
It also carries the rules that keep generated tasks correct: export every task, use the built-in fetch, never wrap 𝚠𝚊𝚒𝚝.* or 𝚝𝚛𝚒𝚐𝚐𝚎𝚛𝙰𝚗𝚍𝚆𝚊𝚒𝚝 in 𝙿𝚛𝚘𝚖𝚒𝚜𝚎.𝚊𝚕𝚕. Browser login and your secret key still need you, so the agent stops and asks.
100
Trigger.dev @triggerdev.bsky.social · 21/09/2026
No MCP? The prompt ships a full CLI path too. 𝚗𝚙𝚡 𝚝𝚛𝚒𝚐𝚐𝚎𝚛.𝚍𝚎𝚟@𝚕𝚊𝚝𝚎𝚜𝚝 𝚒𝚗𝚒𝚝, install the SDK, scaffold a task under src/trigger, start the dev server, confirm it registers. Same destination, more manual.
100
Trigger.dev @triggerdev.bsky.social · 21/09/2026
From there the whole loop lives in one conversation: ▪️ run 𝚝𝚛𝚒𝚐𝚐𝚎𝚛 𝚍𝚎𝚟 in the background, read the logs ▪️ inspect tasks and payload schemas ▪️ fire a test run, read the trace span by span AI spans carry model, token, and cost data.
100
Trigger.dev @triggerdev.bsky.social · 21/09/2026
With the Trigger.dev MCP server connected, the agent calls 𝚒𝚗𝚒𝚝𝚒𝚊𝚕𝚒𝚣𝚎_𝚙𝚛𝚘𝚓𝚎𝚌𝚝. It detects an existing config, creates a project only if one's needed, and hands back the right setup steps for your dev environment.
trigger.dev
Trigger.dev | Build and deploy fully-managed AI agents and workflows.
Trigger.dev is the open source platform for building AI workflows in TypeScript. Long-running tasks with retries, queues, observability, and elastic scaling.
120
Trigger.dev @triggerdev.bsky.social · 21/09/2026
New Trigger.dev projects now open with a "Copy AI agent prompt" button. Paste it into Claude Code or Cursor and your agent goes from an empty repo to a task that's registered and verified in the dashboard, not just a few generated files. How it works ↓
100
Trigger.dev @triggerdev.bsky.social · 17/09/2026
Your whole column layout lives in the URL, so a view is just a link. Set the columns up for one investigation, bookmark it, drop it in a thread for a teammate. Live now: trigger.dev/changelog/r...
trigger.dev
Customize the runs list with columns and smart columns | Changelog
Show, hide, and reorder the columns on the runs list, and add smart columns that pull a value out of a run's payload, metadata, or output by JSON path. Your layout lives in the URL, so a view is bookmarkable and shareable.
000
Trigger.dev @triggerdev.bsky.social · 17/09/2026
They're display-only on purpose. No sort or filter on a smart column, so nothing touches the ClickHouse sort key or the keyset cursor that keep the list fast at scale. Values still update live as new runs land.
100
Trigger.dev @triggerdev.bsky.social · 17/09/2026
Smart columns are the good part. Point one at a run's payload, metadata, or output with a JSON path: $.𝚘𝚛𝚍𝚎𝚛.𝚝𝚘𝚝𝚊𝚕 as a number $.𝚌𝚞𝚜𝚝𝚘𝚖𝚎𝚛𝙸𝚍 as text $.𝚜𝚝𝚊𝚝𝚞𝚜 as a badge Give it a label and it fills in down the whole list.
100
Trigger.dev @triggerdev.bsky.social · 17/09/2026
Column control landed on the Trigger.dev runs list. Show, hide, and reorder columns, or add a smart column that pulls a single value straight out of a run and shows it for every row. ↓
100
Trigger.dev @triggerdev.bsky.social · 14/09/2026
Open the API keys page in any project environment to create your first scoped key. Read the changelog: trigger.dev/changelog/m...
trigger.dev
Multiple API keys per environment | Changelog
Create as many keys as you need per environment, each with its own access scope, optional task restrictions, and an expiration date. Revoke any one instantly without rotating the rest.
000
Trigger.dev @triggerdev.bsky.social · 14/09/2026
The full key value shows once at creation, then it's hashed at rest. The dashboard only ever displays an obfuscated suffix. `trigger deploy` can authenticate with a Deploy-only key set as `TRIGGER_SECRET_KEY`.
100
Trigger.dev @triggerdev.bsky.social · 14/09/2026
Give a key an expiration date and it stops working the moment that date passes. Revoke one at any time and it dies instantly. Every other key keeps working. No environment-wide rotation.
100
Trigger.dev @triggerdev.bsky.social · 14/09/2026
Pick an access preset when you create a key: • Trigger only • Task operator • Observer • Operator • Deploy only • Variables only • No restrictions Trigger-only and Task-operator keys can be narrowed to specific tasks (up to 10 per key).
100
Trigger.dev @triggerdev.bsky.social · 14/09/2026
Every environment in Trigger.dev used to authenticate with a single secret key. Now each environment can hold as many keys as you want. Every service, CI job, and integration gets its own scoped credential. ↓
trigger.dev
Trigger.dev | Build and deploy fully-managed AI agents and workflows.
Trigger.dev is the open source platform for building AI workflows in TypeScript. Long-running tasks with retries, queues, observability, and elastic scaling.
110
Trigger.dev @triggerdev.bsky.social · 10/09/2026
Bulk cancel and replay work from the Trigger.dev SDK. runs.bulk.replay() and runs.bulk.cancel() take a runs.list() filter and hit every matching run, from a handful to millions. runs.bulk.poll() tracks progress. Changelog: trigger.dev/changelog/b...
000
Trigger.dev @triggerdev.bsky.social · 07/09/2026
Same report from the CLI, the 𝚐𝚎𝚝_𝚛𝚎𝚙𝚘𝚛𝚝 MCP tool, the /𝚛𝚎𝚙𝚘𝚛𝚝 𝚑𝚎𝚊𝚕𝚝𝚑 prompt, and the API. Read the diagnosis instead of correlating dashboards: trigger.dev/changelog/h...
trigger.dev
The health report: diagnose a project in one command | Changelog
A server-computed verdict on whether work is starting, whether the runs that start are succeeding, and whether your telemetry is fresh, each with a suggested next action. Run it from the CLI, the get_report MCP tool, or the API.
000
Trigger.dev @triggerdev.bsky.social · 07/09/2026
When flow slows, it walks a cause tree off your queue metrics (env-limit saturation, queue throttling, a trigger spike, a dequeue stall), names the likely cause, and rules out the rest.
100
Trigger.dev @triggerdev.bsky.social · 07/09/2026
No LLM in the verdict. It's computed server-side from your metrics, so the same inputs always produce the same answer.
100
Trigger.dev @triggerdev.bsky.social · 07/09/2026
𝚝𝚛𝚒𝚐𝚐𝚎𝚛 𝚛𝚎𝚙𝚘𝚛𝚝 𝚑𝚎𝚊𝚕𝚝𝚑 splits your project into three signals: Flow (is work starting?), Execution (are started runs succeeding?), Liveness (is the telemetry fresh?). Each gets a verdict and a next action.
100
Trigger.dev @triggerdev.bsky.social · 07/09/2026
When a Trigger.dev backlog builds, the only question that matters: is work not starting, or are the runs that start failing? Different problems, different fixes. Now one command tells you which ↓
100
Trigger.dev @triggerdev.bsky.social · 03/09/2026
Every generation records the version that produced it. So when an output goes bad, you open the call and see the exact template (and model) behind it. Changelog: trigger.dev/changelog/a...
trigger.dev
AI prompts: code-defined, versioned, overridable | Changelog
Your prompts live in code, versioned on every deploy. Change the text or model from the dashboard without redeploying, and trace every generation back to the exact version that produced it.
000
Trigger.dev @triggerdev.bsky.social · 03/09/2026
Need to change wording or swap the model right now? Pin an override from the dashboard or the SDK. Live calls resolve there until you remove it. One per prompt per environment, so staging doesn't touch prod.
100
Trigger.dev @triggerdev.bsky.social · 03/09/2026
prompts.define() types the variables with Zod, so a missing or wrong-typed variable is a compile error, not a broken generation you find in prod. resolve() fills it in and hands back the finished text, plus the model and the version it came from.
110
Trigger.dev @triggerdev.bsky.social · 03/09/2026
Define your prompts in code. Override them live when you need to. On Trigger.dev a prompt is an id, a model, typed variables, and a template, and every deploy creates a new version. Override the text or model from the dashboard, no redeploy ↓
100
Trigger.dev @triggerdev.bsky.social · 20/08/2026
Plus TRQL queries over your run data, built-in dashboards, dev-server control, and a --𝚛𝚎𝚊𝚍𝚘𝚗𝚕𝚢 flag that hides every write tool. It always pulls the latest version, so it's already there: trigger.dev/changelog/m...
trigger.dev
MCP server gets agent chat, prompt management, and reports | Changelog
Your coding assistant can now chat with your deployed agents, manage prompt versions, query your run data with TRQL, and pull a health report for any environment.
000
Trigger.dev @triggerdev.bsky.social · 20/08/2026
Reports: 𝚐𝚎𝚝_𝚛𝚎𝚙𝚘𝚛𝚝 returns a server-rendered health report for an environment. Is work flowing, are runs healthy, is your telemetry fresh. In hosts that support MCP prompts, run /𝚛𝚎𝚙𝚘𝚛𝚝 𝚑𝚎𝚊𝚕𝚝𝚑.
100
Trigger.dev @triggerdev.bsky.social · 20/08/2026
Prompt management: list your prompts, see their versions, promote a new one, or point an environment at a specific version. Iterate on a system prompt and roll it out from the same place you write the code. No redeploy.
100
Trigger.dev @triggerdev.bsky.social · 20/08/2026
Agent chat: if you've shipped a 𝚌𝚑𝚊𝚝.𝚊𝚐𝚎𝚗𝚝(), your assistant can hold a real conversation with it. List the agents in your worker, start a stateful chat, send messages. Test an agent without building a UI first.
100
Trigger.dev @triggerdev.bsky.social · 20/08/2026
Our MCP server does a lot more than deploy and trigger tasks now. Your coding assistant can chat with your deployed agents, manage prompt versions, and pull a health report. Straight from Claude Code or Cursor. ↓
110
Trigger.dev @triggerdev.bsky.social · 18/08/2026
Turn it on, trigger a run, open the trace. Changelog: trigger.dev/changelog/l...
trigger.dev
LLM observability, built in | Changelog
Every LLM call your tasks make is recorded with its model, cost, tokens, and latency. See the whole workload on a dashboard, open any single call in the run trace, and query all of it yourself.
000
Trigger.dev @triggerdev.bsky.social · 18/08/2026
Manage prompts with Prompts? Spread 𝚝𝚘𝙰𝙸𝚂𝙳𝙺𝚃𝚎𝚕𝚎𝚖𝚎𝚝𝚛𝚢() into the call and the span carries the prompt and its version too. A bad output traces straight back to the prompt that caused it. And it's all queryable in TRQL, our SQL-style query language.
100
Trigger.dev @triggerdev.bsky.social · 18/08/2026
No more guessing which of five 𝚐𝚎𝚗𝚎𝚛𝚊𝚝𝚎𝚃𝚎𝚡𝚝 calls in a task was the expensive one. The AI SDK is just one emitter. Any span following the OpenTelemetry gen_ai semantic conventions gets cost data attached, whatever produced it.
100
Trigger.dev @triggerdev.bsky.social · 18/08/2026
Two views on the same data. The dashboard tells you what you spent: cost over time, cost by model, tokens, latency across the whole workload. The trace tells you why. Open a call for the model, the full message thread, every tool call, and the prompt behind it.
100
Trigger.dev @triggerdev.bsky.social · 18/08/2026
You could always see what a task did. Now you can see what it spent. Every LLM call your Trigger tasks make becomes a span in the trace. One flag, 𝚎𝚡𝚙𝚎𝚛𝚒𝚖𝚎𝚗𝚝𝚊𝚕_𝚝𝚎𝚕𝚎𝚖𝚎𝚝𝚛𝚢, on any Vercel AI SDK call. Nothing to install. Whole AI bill, or any single call, in the trace ↓
120
Trigger.dev @triggerdev.bsky.social · 13/08/2026
Read the changelog→ trigger.dev/changelog/c...
trigger.dev
Introducing chat agent | Changelog
Every conversation gets its own stateful machine that sticks around for the entire chat, sleeping and waking when needed.
000
Trigger.dev @triggerdev.bsky.social · 13/08/2026
Every turn is a span in the dashboard: the prompts, the responses, the tool calls, how long each took. An AI metrics dashboard ships with every project too: spend, tokens, latency percentiles, cost by model. No instrumentation to write.
100
Trigger.dev @triggerdev.bsky.social · 13/08/2026
Waiting costs nothing. A tool with no 𝚎𝚡𝚎𝚌𝚞𝚝𝚎 ends the turn with the call still open. The agent suspends, a human takes the weekend to approve it, and their answer resumes the run. Suspended means not billed, so an approval can sit for days for free.
100
Trigger.dev @triggerdev.bsky.social · 13/08/2026
Memory carries across a sleep. What you put in a variable on turn 3 is still there on turn 20 tomorrow, so a lookup you already did stays done. If the machine crashes the heap resets. Keep what you can't lose in a DB, keep memory for speed.
100
Trigger.dev @triggerdev.bsky.social · 13/08/2026
A turn has no timeout. It runs as long as the work takes. A slow tool, a long chain of them, a sub-agent doing its own thinking: all just work, nothing to chop into chunks that fit a limit.
110
Trigger.dev @triggerdev.bsky.social · 13/08/2026
The compute is a real Linux machine, not a locked-down runtime. Shell out to 𝚏𝚏𝚖𝚙𝚎𝚐, drive a headless browser, run a CLI that expects a real filesystem. You pick the size, from 𝚖𝚒𝚌𝚛𝚘 at 0.25 vCPU up, set per agent and overridable per conversation.
100
Trigger.dev @triggerdev.bsky.social · 13/08/2026
The conversation is a session that outlives the process serving it. Runs are the compute, the session is the identity. Refresh mid-response and the stream replays from where your browser stopped reading. Close the tab, come back in a week, it's still there.
100
Trigger.dev @triggerdev.bsky.social · 13/08/2026
The turn is just a task. It takes the messages and returns a stream. 𝚜𝚝𝚛𝚎𝚊𝚖𝚃𝚎𝚡𝚝 on the server, 𝚞𝚜𝚎𝙲𝚑𝚊𝚝 on the client, and the API route that normally sits between them is gone. Only the new message goes over the wire. History lives on the server.
100
Trigger.dev @triggerdev.bsky.social · 13/08/2026
𝚌𝚑𝚊𝚝.𝚊𝚐𝚎𝚗𝚝 is a chat backend where every conversation runs on its own real machine. It boots on the first message, runs as long as the work takes, and keeps its memory between turns. Here's how one is put together, with Trigger ↓
100
Trigger.dev @triggerdev.bsky.social · 12/08/2026
SCIM directory sync is live for orgs on SSO. Assign someone to Trigger.dev in your IdP and they land in your org. Unassign them and their access is gone. Okta, Microsoft Entra, Google Workspace, JumpCloud, OneLogin, and more. trigger.dev/changelog/d...
trigger.dev
SCIM directory sync for SSO | Changelog
If your team signs in with SSO, member provisioning is now automatic. Assign someone to Trigger.dev in your identity provider and they're added to your org; unassign them and their access is revoked.
000
Trigger.dev @triggerdev.bsky.social · 12/08/2026
Why we built it: - No timeouts. 1 in 20 turns runs over 36 minutes in production - Refresh mid-response and the stream picks up where you left off - Waiting is free. An agent can wait overnight for a human approval Arena.ai runs Agent Mode on it at scale. It went GA in July and is Apache 2.0
000
Trigger.dev @triggerdev.bsky.social · 12/08/2026
chat.agent is live on Product Hunt today It's our durable backend for AI chat apps. Every conversation gets its own machine that lives for the whole conversation, sleeps when nobody's typing, and wakes up where it left off. www.producthunt.com/products/tr...
100
Trigger.dev @triggerdev.bsky.social · 10/08/2026
Chat agent is generally available. Start building with it now: tgr.dev/chatagent-b...
trigger.dev
Introducing chat agent | Changelog
Every conversation gets its own stateful machine that sticks around for the entire chat, sleeping and waking when needed.
000