• Docs
  • Login
Talk to an expertTry for free

Run AI agents and on-demand jobs right next to your app

Trigger AI agents, batch jobs, and migrations the moment you need them. Each spins up in its own container, connects to your services and data, runs its job, and shuts down.

Trade idle infrastructure for on-demand runs

Pay only while a task runs

Bursty work usually sits in an always-on worker you pay for around the clock. A task does the same work but exists only while it runs, billed per second.

Turn one-off jobs into repeatable steps

Migrations and data fixes often live in a runbook or someone's memory of what they ran. Task containers make that work a defined, repeatable part of your config.

Isolated and secure by default

Every task runs in the same isolated containers as your apps and uses short-lived, scoped tokens, so there are no long-lived credentials to store.

What every task comes with

  • Runs once and exits, triggered by a single API call.
  • A dedicated image and build step, independent from your apps.
  • Direct access to project services through the relationships model.
  • Short-lived, scoped API tokens, nothing long-lived to store or rotate.
  • Activity logging for every run, with live status and streamed logs.
  • The same runtimes as your apps: Node.js, Python, PHP, Ruby, Go, Java, and .NET.

Built for run-to-completion workloads

Run a job once, on demand

An app or a worker stays up, and a cron runs on a clock. When you need a job to run once and stop, a task is the fit: triggered, runs, gone.

Keep heavy jobs off your site

A heavy job inside your web container can eat its memory and slow your site. A task runs on its own resources, so your site keeps serving traffic.

No idle worker left waiting

Leaving a worker running for an occasional event means paying it to wait. A task starts when triggered and bills per second, so it costs nothing between runs.

Database maintenance, when needed

Reindexing, cleanup, and one-off fixes don't need a process running around the clock. A task runs the job on demand and exits, and you can design it to be safely re-run.

A safe boundary for agent code

An agent runs model-generated commands, so it needs limits. A task is scoped to one command and only the services you link, with bubblewrap available for tighter isolation.

No credentials to store or rotate

An app or another task triggers a task with a short-lived, scoped token requested at runtime. Nothing long-lived is saved, nothing to rotate.

How teams use this in practice

AI agents

A code review agent on every pull request, a cleanup agent that prunes stale branches, a performance agent that reports after each deploy; each spins up, runs, and exits.

Batch and data jobs

A CSV import when a user uploads a file, a data export on request, a search reindex after a schema change. Work that used to sit in a polling worker now runs only when it's needed.

Migrations and one-off runs

Deploy new code, run a one-off task against the new environment, then continue. That step lives in your project config, not in someone's memory of what they ran by hand.

Ready to run your first task?

Start a free trialSchedule a demo