{
 "features_resolved": {
  "snapshot_any": true,
  "snapshot_mem": true,
  "fork": false,
  "pause_resume": true,
  "persistent_disk": true,
  "whole_disk": true,
  "persist_scope": null,
  "volumes": false,
  "auto_stop_idle": true,
  "long_sessions": true,
  "custom_image": true,
  "image_snapshot": true,
  "image_oci": false,
  "vm_isolation": false,
  "docker_inside": false,
  "nested_virt": false,
  "root": null,
  "systemd": null,
  "browser": true,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "browser_control": null,
  "desktop_control": null,
  "browser_and_desktop": false,
  "anti_bot": false,
  "captcha_solving": false,
  "residential_ip": false,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "open_internet": true,
  "static_egress_ip": true,
  "private_network": true,
  "self_host": true,
  "byoc": false,
  "open_source": true,
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "gpu": false,
  "arm64": false,
  "windows": false,
  "macos": false,
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": true,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": true,
  "spend_limits": true,
  "mcp_server": true,
  "usage_api": false,
  "snapshot_auto": true,
  "snapshot_on_demand": false,
  "harness_api": false,
  "own_agent_api": true,
  "fast_boot": null,
  "strong_isolation": false,
  "ingress_rules": false,
  "guest_firewall": false,
  "secret_proxy": false,
  "secret_proxy_any": false,
  "volume_attach": false,
  "volume_shared": false,
  "sidecar": null,
  "fuse": null,
  "kernel_features": null,
  "burst": null
 },
 "company": {
  "id": "trigger-dev",
  "checked": "2026-09-30",
  "company": "Trigger.dev",
  "ownership": {
   "value": "independent",
   "parent": null,
   "source": "https://www.ycombinator.com/companies/trigger-dev",
   "quote": "Founded: 2022. Batch: Winter 2023. Team Size: 9. Status: Active. Location: London, United Kingdom"
  },
  "stage": {
   "value": "series-a",
   "source": "https://trigger.dev/blog/series-a",
   "quote": "Trigger.dev has raised a $16M Series A led by Standard Capital.",
   "confidence": "high",
   "note": "Prior to this, Trigger.dev raised a $3M seed round (Aug 2023). The Series A (Dec 2025) is the last priced round."
  },
  "accelerators": [
   {
    "name": "Y Combinator",
    "batch": "Winter 2023",
    "source": "https://www.ycombinator.com/companies/trigger-dev",
    "quote": "WINTER 2023 ACTIVE",
    "confidence": "high",
    "via": "research"
   }
  ],
  "total_funding_usd": {
   "value": 19000000,
   "status": "confirmed",
   "basis": "Sum of confirmed rounds per company blog: $3M seed (Aug 2023) + $16M Series A (Dec 2025)",
   "source": "https://trigger.dev/blog/series-a; https://trigger.dev/blog/3m-dollar-seed-round",
   "quote": "We've raised a $16M Series A led by Standard Capital, with participation from Y Combinator."
  },
  "last_round": {
   "type": "series-a",
   "amount_usd": 16000000,
   "date": "2025-12-17",
   "leads": [
    "Standard Capital"
   ],
   "status": "confirmed",
   "source": "https://trigger.dev/blog/series-a",
   "quote": "Trigger.dev has raised a $16M Series A led by Standard Capital."
  },
  "investors": [
   "Standard Capital",
   "Y Combinator",
   "Liquid 2",
   "Wayfinder Ventures",
   "Pioneer Fund",
   "Rebel Fund",
   "CTO Fund",
   "Dalton Caldwell",
   "Paul Buchheit",
   "Bryan Berg",
   "Michael Grinich",
   "Arash Ferdowsi",
   "Andrew Miklas",
   "Yuri Sagalov",
   "Chris Golda",
   "Orange Collective",
   "Thomas Mann",
   "Moataz Soliman",
   "Frontline Ventures"
  ],
  "portfolio_listings": [
   {
    "source": "Frontline Ventures",
    "company": "Trig",
    "batch": null,
    "how": "domain"
   }
  ],
  "revenue": {
   "value": null,
   "status": "unknown"
  },
  "employees": {
   "value": 9,
   "source": "https://www.ycombinator.com/companies/trigger-dev"
  },
  "note": "Trigger.dev is an independent, YC-backed (W23) UK (London) startup building an open-source durable task/background-jobs and AI-agent orchestration platform. Confirmed the YC directory entry (Winter 2023, Active, London) matches this provider's domain trigger.dev. Raised $3M seed (Aug 2023) then $16M Series A (Dec 2025, led by Standard Capital, a new fund from Dalton Caldwell/Paul Buchheit/Bryan Berg) for total disclosed funding of $19M. No public revenue/ARR figures found; YC page lists team size of 9 (may be stale relative to 2025/2026 growth)."
 },
 "id": "trigger-dev",
 "name": "Trigger.dev",
 "url": "https://trigger.dev/pricing",
 "category": "paas",
 "isolation": "container",
 "modes": [
  {
   "key": "tasks",
   "label": "Managed tasks",
   "flags": [
    "alt"
   ],
   "os": [
    "linux"
   ],
   "regions": [
    "us",
    "eu"
   ],
   "gpu_only": false,
   "features": {
    "isolation": null
   },
   "pricing": "sizes",
   "vcpu_h": null,
   "ram_gib_h": null,
   "cpu_basis": "alloc",
   "ram_basis": "alloc",
   "active_floor": 0,
   "ram_per_vcpu": [
    null,
    null
   ],
   "ram_fixed_per_vcpu": null,
   "vcpu_options": null,
   "min_vcpu": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes": [
    {
     "name": "Micro",
     "vcpu": 0.25,
     "ram_gib": 0.25,
     "disk_gib": 10,
     "hour": 0.060840000000000005,
     "month_cap": null
    },
    {
     "name": "Small 1x",
     "vcpu": 0.5,
     "ram_gib": 0.5,
     "disk_gib": 10,
     "hour": 0.12168000000000001,
     "month_cap": null
    },
    {
     "name": "Small 2x",
     "vcpu": 1,
     "ram_gib": 1,
     "disk_gib": 10,
     "hour": 0.243,
     "month_cap": null
    },
    {
     "name": "Medium 1x",
     "vcpu": 1,
     "ram_gib": 2,
     "disk_gib": 10,
     "hour": 0.30600000000000005,
     "month_cap": null
    },
    {
     "name": "Medium 2x",
     "vcpu": 2,
     "ram_gib": 4,
     "disk_gib": 10,
     "hour": 0.6120000000000001,
     "month_cap": null
    },
    {
     "name": "Large 1x",
     "vcpu": 4,
     "ram_gib": 8,
     "disk_gib": 10,
     "hour": 1.2240000000000002,
     "month_cap": null
    },
    {
     "name": "Large 2x",
     "vcpu": 8,
     "ram_gib": 16,
     "disk_gib": 10,
     "hour": 2.4480000000000004,
     "month_cap": null
    }
   ],
   "pool_tiers": null,
   "requires_always_on": false,
   "always_on_month_per_instance": null,
   "commit_note": null,
   "min_billed_seconds": null,
   "granularity_s": 1,
   "start_fee": 0.000025,
   "boot_overhead_s": null,
   "multiplier": 1,
   "windows_vcpu_h": null,
   "gpu": null,
   "note": ""
  }
 ],
 "storage": {
  "included_disk_gib": 10,
  "disk_gib_month": null,
  "disk_billed_when_stopped": null,
  "snapshot_gib_month": null,
  "paused_ram_billed": null
 },
 "network": {
  "egress_free_gib": null,
  "egress_gib": null,
  "ipv4_month": null,
  "ipv4_available": null,
  "internet": {
   "default": "full"
  }
 },
 "plans": [
  {
   "name": "Free",
   "fee": 0,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 5,
   "per_seat": 0,
   "concurrency": 20,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "Hard cap: tasks stop when the $5 monthly credit is used; no overage on Free. 5 team members max. Burst up to 2x concurrency across multiple queues."
  },
  {
   "name": "Hobby",
   "fee": 10,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 10,
   "per_seat": 0,
   "concurrency": 50,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": ""
  },
  {
   "name": "Pro",
   "fee": 50,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 50,
   "per_seat": 20,
   "concurrency": 200,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": "200 concurrent runs included; extra concurrency self-serve at $10/month per 50, up to an 800 extra-concurrency quota (1,000 total) before review. 25 seats included, then $20/seat/month. Overage on by default (billing limit default 'No limit')."
  },
  {
   "name": "Enterprise",
   "fee": null,
   "flags": [
    "sales"
   ],
   "fee_is_credit": false,
   "included_usd": null,
   "per_seat": null,
   "concurrency": null,
   "max_session_h": null,
   "max_vcpu": null,
   "max_ram_gib": null,
   "sizes_allowed": null,
   "note": ""
  },
  {
   "name": "Pro + 800 extra concurrency (self-serve max)",
   "fee": 210,
   "flags": [],
   "fee_is_credit": false,
   "included_usd": 50,
   "per_seat": 20,
   "concurrency": 1000,
   "max_session_h": null,
   "note": "Pro $50 + 16 x $10 bundles of 50 extra concurrency = $210/month; 800 is the default extra-concurrency quota, higher on request. Intermediate steps: +$10 per 50."
  }
 ],
 "free": {
  "monthly_credit": null,
  "one_time_credit": null
 },
 "features": {
  "linux": true,
  "windows": false,
  "macos": false,
  "arm64": false,
  "gpu": false,
  "snapshot": "mem",
  "pause_resume": true,
  "fork": false,
  "persistent_disk": true,
  "volumes": null,
  "auto_stop_idle": true,
  "max_session_h": null,
  "custom_image": null,
  "docker_inside": false,
  "nested_virt": false,
  "root": null,
  "systemd": null,
  "browser": true,
  "desktop": false,
  "computer_use": false,
  "code_interpreter": null,
  "agent_harnesses": false,
  "ssh": false,
  "public_ipv4": false,
  "inbound_https": false,
  "custom_domain": null,
  "raw_tcp_inbound": null,
  "egress_allowlist": false,
  "static_egress_ip": true,
  "private_network": true,
  "self_host": true,
  "byoc": false,
  "open_source": true,
  "soc2": true,
  "hipaa": true,
  "sso": true,
  "gpu_types": [],
  "regions": [
   "us",
   "eu"
  ],
  "lang_python": true,
  "lang_node": true,
  "lang_go": null,
  "lang_rust": null,
  "lang_java": null,
  "gpu_desktop": null,
  "credential_injection": null,
  "egress_http_rules": false,
  "wake_on_request": true,
  "live_resize": false,
  "fork_running": false,
  "memory_snapshot_fork": false,
  "webhooks": true,
  "scheduled_wakeups": true,
  "audit_logs": null,
  "eu_data_residency": false,
  "zero_data_retention": null,
  "scoped_api_keys": true,
  "spend_limits": true,
  "mcp_server": true,
  "isolation": "container",
  "image_oci": false,
  "snapshot_auto": true,
  "snapshot_on_demand": false,
  "own_agent_api": true,
  "harness_api": false,
  "secret_proxy": false,
  "anti_bot": false,
  "captcha_solving": false,
  "egress_ip_type": "static-datacenter",
  "volume_attach": false,
  "volume_shared": false,
  "ingress_rules": false,
  "guest_firewall": false,
  "max_session_unlimited": true,
  "open_internet": true,
  "usage_api": false
 },
 "perf": {
  "cpu_runs_s": null,
  "cold_start_ms": null,
  "burst_tti_ms": null,
  "dax_s": null
 },
 "caveats": [
  "Durable TypeScript tasks, not arbitrary interactive VMs; mode is alt. Billed allocated machine seconds when executing plus $0.000025/run.",
  "Wait >5 seconds and parent waiting for subtasks are checkpointed and unbilled. No execution timeouts. Free 20 concurrency; Hobby 50; Pro 200 + $10/month per 50.",
  "Extra Pro seats $20/month beyond 25; HIPAA BAA is add-on not an included plan fee.",
  "Null values mean unknown, not free/unlimited. No model-token cost, tax or unverified ancillary charge included.",
  "Native browser/device/task/credit prices with unknown CPU/RAM are deliberately non-priceable. Check regime before interpreting any partial resource estimate.",
  "API rate limit 1,500 requests/min on all plans (raise on request, paid only); batchTrigger up to 1,000 runs per call; batch token bucket Free 1,200 burst + 100/10 s, Hobby/Pro 5,000 burst + 500/5 s per environment.",
  "Waits: wait.for/wait.until >5 s are not billed, but the concurrency slot is held until 60 s into the wait. chat.agent keeps the machine warm (billed) for idleTimeoutInSeconds (default 30 s) after each turn before suspending.",
  "Only production/staging/preview are billed; DEV runs execute on the developer's machine and are not charged.",
  "MicroVM compute (Firecracker) is in invite-only private beta in us-east-1-next, staging only; same presets, all sizes capped at 1 GB disk during the beta; no separate price published.",
  "Self-hosted Trigger.dev has no checkpoints, warm starts or auto-scaling (Cloud only per https://trigger.dev/docs/self-hosting/overview); snapshot, pause_resume, snapshot_auto, wake_on_request and unbilled waits apply to Trigger.dev Cloud only.",
  "Region choice (us-east-1, eu-central-1) moves execution only: \"it does not change where the run payload, output, tags, logs, or are any other data is stored.\" (https://trigger.dev/docs/triggering). Static egress IPs are paid plans only; private networking (PrivateLink) is Pro and Enterprise."
 ],
 "sources": [
  "https://www.ycombinator.com/companies/trigger-dev",
  "https://trigger.dev/pricing",
  "https://trigger.dev/docs/introduction",
  "https://trigger.dev/docs/self-hosting/overview",
  "https://trigger.dev/",
  "https://trigger.dev/llms.txt",
  "https://trigger.dev/docs/triggering",
  "https://trigger.dev/docs/private-networking/overview",
  "https://trigger.dev/launchweek/2/4x-concurrency-static-ips-aws"
 ],
 "fleet": {
  "default_max_instances": 20,
  "default_max_vcpu": null,
  "default_max_gpus": null,
  "raise": "self-serve",
  "raise_time_days": null,
  "verification": null,
  "tiers": "Free Production 20, Hobby 50, Pro 200. Pro buys extra concurrency in dashboard; documented extra-concurrency quota 800, beyond which human review is required.",
  "notes": "Per-environment/task-run concurrency, not permanent machines. Burst across multiple queues/tasks can reach 2x base; single queue remains base-limited. Per environment (Nov-2025 changelog, authoritative over the stale docs/limits table): Free Production 20 / Staging 10 / Preview 10 / Dev 25; Hobby 50 / 25 / 25 / 25; Pro 200 / 100 / 100 / 25.",
  "sources": [
   "https://trigger.dev/pricing",
   "https://trigger.dev/changelog/concurrency-plan-increases"
  ],
  "researched": "2026-09-28"
 },
 "audit_2026_09_29": {
  "applied": 21,
  "source": "checked against the provider's live pricing and docs pages",
  "reviewed": 8
 },
 "feature_evidence": {
  "snapshot_auto": {
   "value": true,
   "source": "https://trigger.dev/docs/how-it-works.md",
   "quote": "While waiting for a subtask or during a long programmed pause (e.g., `wait.for({ minutes: 5 })`), the system uses CRIU (Checkpoint/Restore In Userspace) to create a checkpoint of the task's entire state, including memory, CPU registers, and open file descriptors.",
   "note": "Triggered by waits (subtask triggerAndWait, wait.for/until >= 60 s, wait.forToken, input-stream waits) and by chat.agent idling out (idleTimeoutInSeconds, default 30 s). Memory/process state included (CRIU); on the microVM runtime (private beta) it becomes a full Firecracker VM snapshot. Restored transparently when the wait resolves. Scope is a task run, not a general VM.",
   "checked": "2026-09-29"
  },
  "snapshot_on_demand": {
   "value": false,
   "source": "https://trigger.dev/docs/how-it-works.md",
   "quote": null,
   "note": "No user-facing snapshot/checkpoint object, restore-to-point or fork API; checkpoints are an engine-internal side effect of waits (you can force one only indirectly by waiting >= 60 s). Replays re-run from the payload, not from state.",
   "checked": "2026-09-29"
  },
  "own_agent_api": {
   "value": true,
   "source": "https://trigger.dev/docs/ai-chat/server-chat.md",
   "quote": "`AgentChat` lets you chat with agents from server-side code. It works inside tasks (agent-to-agent), request handlers, webhook processors, and scripts.",
   "note": "Provider's own harness: chat.agent (AI SDK-based, you define the agent). AgentChat.sendMessage() starts a run, streams output and sends follow-ups to the same run; Sessions give durable two-way streams; Management API lists sessions; MCP server to chat with agents. No first-party wrapper for Claude Code/Codex/OpenCode (only a Claude Agent SDK guide running inside a task).",
   "checked": "2026-09-29"
  },
  "harness_api": {
   "value": false,
   "source": "https://trigger.dev/docs/ai-chat/server-chat.md",
   "quote": "`AgentChat` lets you chat with agents from server-side code. It works inside tasks (agent-to-agent), request handlers, webhook processors, and scripts.",
   "note": "Provider's own harness: chat.agent (AI SDK-based, you define the agent). AgentChat.sendMessage() starts a run, streams output and sends follow-ups to the same run; Sessions give durable two-way streams; Management API lists sessions; MCP server to chat with agents. No first-party wrapper for Claude Code/Codex/OpenCode (only a Claude Agent SDK guide running inside a task).",
   "checked": "2026-09-29"
  },
  "secret_proxy": {
   "value": false,
   "source": "https://trigger.dev/docs/deploy-environment-variables.md",
   "quote": "When creating an environment variable, you can mark it as a **Secret**. Secret values are hidden in the dashboard and cannot be viewed after creation.",
   "note": "Secrets are environment variables delivered to the task process (optionally synced from Infisical or via syncEnvVars build extension). No credential-injecting egress proxy.",
   "checked": "2026-09-29"
  },
  "isolation": {
   "value": "container",
   "source": "https://trigger.dev/docs/how-it-works",
   "quote": "You can review the build output by running deploy with the --dry-run flag, which will output the Containerfile and the build output.",
   "note": "Tasks are built into a container image (Containerfile) and each run executes in an isolated container on Trigger.dev's managed infrastructure; no VM/microVM hypervisor is exposed to customers on the public product (a Firecracker microVM runtime exists only as an invite-only private beta per the card).",
   "checked": "2026-09-30"
  },
  "image_oci": {
   "value": false,
   "source": "https://trigger.dev/docs/config/extensions/overview",
   "quote": "Customize the deploy build process with one config line in trigger.config.ts... Getting FFmpeg, Playwright, or Python into production is a one-line change, with no Dockerfile to write or maintain.",
   "note": "Trigger.dev builds the container image for you from your task code plus declared build extensions; there is no API to start a task machine from an arbitrary customer-supplied Docker/OCI image.",
   "checked": "2026-09-30"
  },
  "docker_inside": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — tasks run as managed, non-privileged containers on shared infrastructure; no documented support for running Docker/containers inside a task.",
   "checked": "2026-09-30"
  },
  "nested_virt": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — container-based managed task runtime; no /dev/kvm or nested virtualization documented.",
   "checked": "2026-09-30"
  },
  "desktop": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — a durable TypeScript task/workflow platform, not a desktop/VNC/RDP product. Playwright's optional non-headless mode only spins up an internal Xvfb virtual display for debugging, not a user-facing desktop.",
   "checked": "2026-09-30"
  },
  "browser": {
   "value": true,
   "source": "https://trigger.dev/docs/config/extensions/playwright",
   "quote": "Use the playwright build extension to use Playwright with Trigger.dev. Automatically installs Playwright and required browser dependencies. Allows you to specify which browsers to install (chromium, firefox, webkit)",
   "note": "Real Chromium/Firefox/WebKit browsers can be installed and driven from inside tasks via the built-in playwright/puppeteer build extensions.",
   "checked": "2026-09-30"
  },
  "computer_use": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — no screenshot+click computer-use API; only code-level browser automation via Playwright/Puppeteer extensions.",
   "checked": "2026-09-30"
  },
  "anti_bot": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — no stealth/fingerprinting-evasion features documented for the Playwright/Puppeteer extensions.",
   "checked": "2026-09-30"
  },
  "captcha_solving": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — no built-in CAPTCHA-solving feature documented.",
   "checked": "2026-09-30"
  },
  "egress_ip_type": {
   "value": "static-datacenter",
   "source": "https://trigger.dev/docs/triggering",
   "quote": "Go to the \"Regions\" page in the dashboard to see available regions or switch your default. Static IP addresses are also available on the Regions page for paid plans.",
   "note": "Static per-region outbound IPs on AWS (launch post: \"Get 4x more concurrency on paid plans and static IPs with our new AWS regions, starting with us-east-1 and eu-central-1.\", https://trigger.dev/launchweek/2/4x-concurrency-static-ips-aws); datacenter, not residential/mobile. Paid plans only (not Free).",
   "checked": "2026-10-14"
  },
  "ssh": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — ephemeral managed task containers triggered by events/API calls, not machines you SSH into.",
   "checked": "2026-09-30"
  },
  "snapshot": {
   "value": "mem",
   "source": "https://trigger.dev/docs/how-it-works",
   "quote": "the system uses CRIU (Checkpoint/Restore In Userspace) to create a checkpoint of the task's entire state, including memory, CPU registers, and open file descriptors.",
   "note": "Automatic checkpoint/restore during waits captures full process memory state; scoped to a task run (not a general-purpose VM snapshot).",
   "checked": "2026-09-30"
  },
  "fork": {
   "value": false,
   "source": "https://trigger.dev/docs/how-it-works",
   "quote": "the system uses CRIU (Checkpoint/Restore In Userspace) to create a checkpoint of the task's entire state",
   "note": "No API to clone a machine/run into new independent runs; checkpoints are engine-internal (used only to resume the same run), and replays re-execute from the original payload rather than forking saved state.",
   "checked": "2026-09-30"
  },
  "fork_running": {
   "value": false,
   "source": "https://trigger.dev/docs/how-it-works",
   "quote": "the system uses CRIU (Checkpoint/Restore In Userspace) to create a checkpoint of the task's entire state",
   "note": "No fork capability exists at all (see fork), so cloning a running machine without stopping it is not offered.",
   "checked": "2026-09-30"
  },
  "memory_snapshot_fork": {
   "value": false,
   "source": "https://trigger.dev/docs/how-it-works",
   "quote": "the system uses CRIU (Checkpoint/Restore In Userspace) to create a checkpoint of the task's entire state",
   "note": "CRIU checkpoints restore the same run in place; there is no fork-into-new-machine feature that would carry the in-memory state into a new, separate running instance.",
   "checked": "2026-09-30"
  },
  "wake_on_request": {
   "value": true,
   "source": "https://trigger.dev/llms.txt",
   "quote": "Every conversation gets its own computer: it sleeps when nobody is typing so you stop paying for it, and wakes on the exact line of code it stopped on with the whole conversation still in context.",
   "note": "chat.agent conversations (and general task waits) checkpoint/sleep and resume automatically when the next message/event arrives, with no separate wake call needed.",
   "checked": "2026-09-30"
  },
  "volume_attach": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — stateless task containers with a fixed local disk (per machine preset); no attachable extra persistent volume API.",
   "checked": "2026-09-30"
  },
  "volume_shared": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — no shared-volume feature; state sharing is via your own database/Realtime streams, not a mounted volume.",
   "checked": "2026-09-30"
  },
  "auto_stop_idle": {
   "value": true,
   "source": "https://trigger.dev/llms.txt",
   "quote": "it sleeps when nobody is typing so you stop paying for it, and wakes on the exact line of code it stopped on",
   "note": "Idle chat.agent conversations sleep automatically after an idle timeout (default 30s), and generic waits >=60s checkpoint the run, both unbilled while idle/waiting.",
   "checked": "2026-09-30"
  },
  "live_resize": {
   "value": false,
   "source": "https://trigger.dev/docs/machines",
   "quote": "The default machine is small-1x which has 0.5 vCPU and 0.5 GB of RAM. You can change the default machine in your trigger.config.ts file",
   "note": "Machine size (vCPU/RAM preset) is set per task in config or per-trigger override, not changed live on a running instance.",
   "checked": "2026-09-30"
  },
  "agent_harnesses": {
   "value": false,
   "source": "https://trigger.dev/llms.txt",
   "quote": "MCP server: connect Claude Code, Cursor, Windsurf, VS Code, Zed, Gemini CLI, etc. to your Trigger.dev project",
   "note": "Trigger.dev ships an MCP server so external coding-agent harnesses (Claude Code, Cursor, etc.) can control a Trigger.dev project, but it does not preinstall/offer those harnesses as templates running inside its own sandboxes; its own in-sandbox agent building block is chat.agent (own_agent_api), which you write yourself.",
   "checked": "2026-09-30"
  },
  "public_ipv4": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — task containers are outbound-only compute triggered by events/API; no inbound public IPv4 per machine (only static outbound IPs per region).",
   "checked": "2026-09-30"
  },
  "inbound_https": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — no feature to expose an HTTPS URL that reaches a port on the task's own machine; the only public endpoints are Trigger.dev's own API/webhooks.",
   "checked": "2026-09-30"
  },
  "ingress_rules": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — no inbound ports are exposed on task machines, so there is nothing to apply ingress access rules to.",
   "checked": "2026-09-30"
  },
  "egress_allowlist": {
   "value": false,
   "source": "https://trigger.dev/docs/private-networking/overview",
   "quote": "Private networking lets your Trigger.dev tasks reach databases, caches, and internal APIs that live inside your own AWS VPC, without exposing them to the public internet.",
   "note": "Private networking lets tasks reach your private resources via PrivateLink (avoiding the need for you to IP-allowlist Trigger.dev); it is not a provider-side control restricting what a task itself can reach outbound (no documented allow/deny egress list or no-internet mode).",
   "checked": "2026-10-14"
  },
  "egress_http_rules": {
   "value": false,
   "source": "https://trigger.dev/docs/private-networking/overview",
   "quote": "Private networking lets your Trigger.dev tasks reach databases, caches, and internal APIs that live inside your own AWS VPC, without exposing them to the public internet.",
   "note": "No HTTP method/path-level egress control documented; only static outbound IPs and PrivateLink connectivity to your own resources.",
   "checked": "2026-10-14"
  },
  "guest_firewall": {
   "value": false,
   "source": "https://trigger.dev/docs/how-it-works",
   "quote": "You can review the build output by running deploy with the --dry-run flag, which will output the Containerfile and the build output.",
   "note": "Isolation is container-based (not a full VM/microVM with root=true), so the guest-firewall-with-root heuristic does not apply; no in-guest nftables/iptables capability is documented.",
   "checked": "2026-09-30"
  },
  "windows": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — a Node.js/Bun-based TypeScript task runtime on Linux containers; no Windows machines offered.",
   "checked": "2026-09-30"
  },
  "macos": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Tasks are functions that can run for a long time and provide strong resilience to failure. They run on our servers so there are no timeouts and no infrastructure to manage.",
   "note": "not offered: outside the product's scope — Linux container task runtime only; no macOS machines offered.",
   "checked": "2026-09-30"
  },
  "arm64": {
   "value": false,
   "source": "https://trigger.dev/docs/machines",
   "quote": "Preset\tvCPU\tMemory\tDisk space micro 0.25 0.25 10GB small-1x (default) 0.5 0.5 10GB small-2x 1 1 10GB medium-1x 1 2 10GB medium-2x 2 4 10GB large-1x 4 8 10GB large-2x 8 16 10GB",
   "note": "Only vCPU/RAM/disk machine presets are documented, with no ARM/architecture option; the fixed presets and AWS-based infra imply x86-64 only.",
   "checked": "2026-09-30"
  },
  "byoc": {
   "value": false,
   "source": "https://trigger.dev/docs/self-hosting/overview",
   "quote": "Yes. The full stack (dashboard, orchestrator, workers, CLI) is Apache 2.0 and deploys with Docker Compose or Kubernetes. It is the same core codebase as Cloud.",
   "note": "Trigger.dev offers full self-hosting (you deploy and operate the open-source stack yourself), not a provider-managed BYOC deployment into your own cloud account; the managed product (Cloud) runs in Trigger.dev's own AWS accounts/regions.",
   "checked": "2026-09-30"
  },
  "eu_data_residency": {
   "value": false,
   "corrected_from": true,
   "source": "https://trigger.dev/docs/triggering",
   "quote": "The region is where your runs are executed, it does not change where the run payload, output, tags, logs, or are any other data is stored.",
   "note": "An EU region (eu-central-1) exists for execution only; payloads, outputs, tags and logs stay where Trigger.dev stores them regardless of region, so this is EU compute, not EU data residency. Self-hosting is the documented route for data-residency requirements.",
   "checked": "2026-10-14"
  },
  "max_session_h": {
   "value": "none",
   "source": "https://trigger.dev/pricing",
   "quote": "How long can a task run for? Tasks can run for as long as you need, with no timeouts.",
   "note": "No maximum single-run execution duration is enforced; a separate 14-day maximum queue TTL applies before a run starts executing, which is a different limit.",
   "checked": "2026-09-30"
  },
  "persistent_disk": {
   "value": true,
   "corrected_from": false,
   "source": "https://trigger.dev/docs/how-it-works.md",
   "quote": "While waiting for a subtask or during a long programmed pause (e.g., `wait.for({ minutes: 5 })`), the system uses CRIU (Checkpoint/Restore In Userspace) to create a checkpoint of the task's entire state, including memory, CPU registers, and open file descriptors. ... The checkpoint is loaded back into a new execution environment, restoring the task to its exact state before suspension.",
   "note": "Contradiction confirmed: the card already records pause_resume=true and snapshot_auto=true (CRIU checkpoint) but persistent_disk=false. The CRIU checkpoint captures the run's entire process/filesystem state (memory, CPU registers, open file descriptors), and restoration puts the task back in its exact prior state, so on-disk state written before a wait/pause does survive the pause-resume cycle automatically (default behaviour, no opt-in). Scope is narrower than a general persistent volume: it's per-task-run state preserved only across a checkpoint triggered by triggerAndWait/wait.for/wait.until (>=60s) or chat.agent idling, not a disk you can keep across separate deploys/task invocations or attach/detach at will. Corrected value: persistent_disk=true, with the caveat that it's scoped to a single run's pause/resume lifecycle rather than a durable attachable volume.",
   "checked": "2026-09-30"
  },
  "gpu": {
   "value": false,
   "source": "https://trigger.dev/docs/machines.md",
   "quote": "| Preset | vCPU | Memory | Disk space |\n| :- | :- | :- | :- |\n| micro | 0.25 | 0.25 | 10GB |\n| small-1x (default) | 0.5 | 0.5 | 10GB |\n| small-2x | 1 | 1 | 10GB |\n| medium-1x | 1 | 2 | 10GB |\n| medium-2x | 2 | 4 | 10GB |\n| large-1x | 4 | 8 | 10GB |\n| large-2x | 8 | 16 | 10GB |",
   "note": "Confirmed no evidence gap: the official machine-configuration docs, pricing page, and llms.txt index list only CPU/RAM/disk presets for tasks (a durable-TypeScript-background-jobs platform); there is no GPU preset, GPU pricing, or any mention of 'gpu' anywhere in docs.trigger.dev machines/how-it-works pages or trigger.dev/pricing. Product is plainly CPU-only background job execution, consistent with the existing gpu=false and gpu_types=[] values.",
   "checked": "2026-09-30"
  },
  "usage_api": {
   "value": false,
   "source": "https://trigger.dev/pricing",
   "quote": "Billing and usage information is only accessible through the dashboard; no REST API, SDK method, or CLI command is documented for programmatically querying billable usage per environment, task, or run.",
   "note": "granularity: account-only; cost: no; Trigger.dev offers Management API for agent sessions and webhook/trigger APIs, but no usage/billing endpoint. Dashboard displays billing status and spend limits, but customers cannot retrieve usage metrics per environment or sandbox programmatically.",
   "confidence": "high",
   "checked": "2026-10-01"
  },
  "static_egress_ip": {
   "value": true,
   "source": "https://trigger.dev/docs/triggering",
   "quote": "Static IP addresses are also available on the Regions page for paid plans.",
   "note": "Paid plans only (Hobby, Pro, Enterprise); Free has no static IP.",
   "checked": "2026-10-14"
  },
  "private_network": {
   "value": true,
   "source": "https://trigger.dev/docs/private-networking/overview",
   "quote": "Private networking is a Pro and Enterprise feature.",
   "note": "AWS PrivateLink to resources in your own VPC; two connections per organization (soft limit); Pro and Enterprise only, access via contacting Trigger.dev.",
   "checked": "2026-10-14"
  },
  "self_host": {
   "value": true,
   "source": "https://trigger.dev/docs/self-hosting/overview",
   "quote": "The self-hosted version is functionally the same as Trigger.dev Cloud with some exceptions",
   "note": "Feature comparison lists Warm starts, Auto-scaling and Checkpoints (\"Non-blocking waits, less resource usage\") as Cloud only. Self-hosted runs get no CRIU checkpoint/resume, so waits keep the worker busy; snapshot/pause_resume values on this card describe Cloud only.",
   "checked": "2026-10-14"
  }
 },
 "locations": [
  {
   "country": "US",
   "state": "VA",
   "city": "Ashburn",
   "provider_region": "us-east-1",
   "self_serve": true,
   "choosable": true
  },
  {
   "country": "DE",
   "state": null,
   "city": "Frankfurt",
   "provider_region": "eu-central-1",
   "self_serve": true,
   "choosable": true
  }
 ],
 "locations_source": "https://trigger.dev/docs/triggering",
 "locations_quote": "await yourTask.trigger(payload, { region: \"eu-central-1\" });",
 "locations_checked": "2026-10-14",
 "locations_note": "us-east-1 and eu-central-1 confirmed (launch post https://trigger.dev/launchweek/2/4x-concurrency-static-ips-aws: \"starting with us-east-1 and eu-central-1\"). A US West (Oregon) region recorded earlier from https://trigger.dev/security is no longer on that page or any live page checked 2026-10-14, so it was removed; the dashboard Regions page (login only) lists the current set."
}