Skip to main content
The Compute primitive runs agent-owned Docker workloads on managed cloud compute. You bring an image; Naïve owns the underlying cloud credentials and scopes every task to your tenant — your agents never hold a cloud key (the same model as Apps). Three resource types:
  • service — a long-running container (daemon, bot, webhook receiver, MCP server, custom API). Optional public HTTPS URL; scale to zero on demand with stop/scale (you only pay while running).
  • job — a container that runs to completion once (ETL, backup, scrape, render).
  • schedule — a job on a cron/rate expression (“cron for code”). Distinct from the cron primitive, which schedules AI agent prompts.
Creating a workload and opening a shell (exec/ssh) are sensitive — depending on the user’s Account Kit they may require human approval (the call returns status: "pending_approval"). Compute is billed by running time in credits (compute_usage): 1.7 credits/vCPU-hour + 0.18 credits/GB-hour; a service scaled to zero costs ~nothing.

Create a workload

Scope follows the client you hold: naive.compute.* (your default user) vs naive.forUser(id).compute.* (an end-user).

Lifecycle, runs & logs

Secrets

Encrypted env vars are injected into the workload’s tasks at start:

Interactive shell

Shell access runs over a managed exec channel (no port 22, no keys). The CLI requires the session-manager-plugin, and the image must contain /bin/sh. Sessions are approval-gated and transcript-logged.

CLI

Pair with a Queue

A compute service that long-polls a Queue (naive queue receive → process → naive queue ack) is a cheap autoscaling worker.