THE CLOUD WHERE AI AGENTS LIVE

Write an agent.
We run it forever.

Memory, database, compute, LLM, durability, and traces. One file. Zero infra. Your agent sleeps when idle, wakes in 200ms, and never loses work.

agent.ts
import { Agent } from "oncell";

const agent = new Agent("engineer", {
  instructions: "You are a senior software engineer.",
  model: "kimi-k3",
  skills: {
    design: { when: "architecture needed", model: "claude-opus",
             guide: "Think first. Write design doc before code." },
    code:   { when: "writing code",
             guide: "Write clean code. Run tests after." },
  },
  tools: ["files", "shell"],
});

agent.task("build", async ({ prompt }) => {
  return agent.llm(prompt, { maxSteps: 50 });
  // kimi-k3 codes, claude-opus designs — auto-switches
});

THE PROBLEM

Building an AI agent today means wiring together a server, a database, a queue, a cache, an LLM proxy, a secret store, and a monitoring stack before writing a single line of agent logic.

oncell replaces all of that with one object: Agent. You write TypeScript. We handle compute, state, durability, LLM routing, and traces.

BUILT INTO EVERY AGENT

agent.llm()
Multi-provider. Kimi K3, Claude Sonnet, Opus. Skill-based model switching built in.
agent.memory
Durable KV state. Survives crashes. Per-user scoping with .forUser(id).
agent.files
Persistent filesystem with full-text search. RAG without a vector DB.
agent.db
SQL database. Tagged templates. No connection strings.
agent.shell()
Shell commands in a gVisor-isolated sandbox. 30s timeout.
agent.sleep()
Park for days. $0 while sleeping. Wakes in 200ms. Resume exactly where it stopped.

+ agent.askHuman() · agent.schedule() · agent.onWebhook() · agent.spawn() · agent.once() · oncell trace · see all →

ONE AGENT, MULTIPLE MODELS

Design with claude-opus. Code with kimi-k3. Automatically.

// Skills declare WHAT to do and WHICH model to use
skills: {
  design: { when: "architecture needed",
           model: "claude-opus",      // strong thinker
           guide: "Think step by step..." },
  code:   { when: "writing code",
           // uses default (kimi-k3) — fast coder
           guide: "Write clean code..." },
}

// The loop auto-detects the active skill and switches:
// Turn 1 (kimi-k3):    [SKILL:design] → switch to opus
// Turn 2 (claude-opus): designs architecture
// Turn 3 (claude-opus): [SKILL:code]   → switch to k3
// Turn 4 (kimi-k3):    writes code, runs tests
MODEL SWITCHES (from trace)
step 0 kimi-k3claude-opus (design)
step 3 claude-opuskimi-k3 (code)
step 8 kimi-k3claude-opus (review)
step 9 claude-opuskimi-k3 (code)

AGENTS THAT NEVER LOSE WORK

Every awaitis a checkpoint. Kill the process, redeploy, approve three days later — the run completes.

agent.task("refund", async ({ orderId, amount }) => {
  const order = await agent.db.sql`SELECT * FROM orders WHERE id = ${orderId}`;

  // Parks here. Can wait days for a human.
  const ok = await agent.askHuman({ question: `Refund $${amount}?` });

  if (ok.approved) await agent.llm("Process the refund");

  // Sleep 30 days, then follow up. $0 while sleeping.
  await agent.sleep({ days: 30 });
  await agent.llm("Check if customer is satisfied");
});

USE FROM YOUR APP

import { OnCell } from "@oncell/sdk";
const oncell = new OnCell({ apiKey: "oncell_sk_..." });

// Run a task
const result = await oncell.agent("engineer").run("build", {
  prompt: "Add dark mode to the settings page",
});

// Stream events
for await (const event of oncell.agent("engineer").stream("build", { prompt })) {
  console.log(event.type, event.data);
}
AGENT RESPONSE STREAM
search docsfound 3 articles matching "login issues"
call LLMgenerating response with context from 3 docs
save memoryuser_42 → conversation history updated
replied "Try resetting your password at acme.com/reset..."
3 steps · 1.8s · $0.003

WHY ONCELL

oncell
DIY
Others
Durable execution
Build it
Workflow engine
Built-in memory + DB
Redis + Postgres
BYO
Multi-model routing
Build it
$0 idle (auto-pause)
Sleep days, resume
One file deploy
Docker + K8s
Config
Full trace of every op
Build it
Partial

Build your first agent.

npm install oncell · write agent.ts · oncell deploy

Get started