AI agents that outlive the process.
teaspill is a self-hosted platform for durable AI agents: they survive crashes, restarts, and deploys, spawn sub-agents, and stream everything they do to your UI — live. You write TypeScript; teaspill keeps it running.
import { defineAgent, native } from "@teaspill/agents-sdk"; import { z } from "zod"; export const researcher = defineAgent({ type: "researcher", spawnSchema: z.object({ topic: z.string() }), state: z.object({ summary: z.string().optional() }), harness: native({ model: "claude-sonnet-4-5", systemPrompt: "Research the topic. Spawn a summarizer with " + "your notes, wait, then finish with its summary.", ingressUrl: "http://localhost:8080", }), });
What teaspill gives you
Durable by default
An agent's process can die mid-run; the agent doesn't. Every step is recorded, so work resumes exactly where it stopped — no lost conversations, no repeated side effects.
Multi-agent from day one
Agents spawn sub-agents, message each other, and gather results. Delivery and ordering are guaranteed by the platform, not by plumbing you write.
Stream everything to your UI
Every message, tool call, and result lands on a live timeline your frontend can replay, follow token by token, or join late without missing anything.
Pick your engine
Run the model loop with teaspill's native engine — any provider — or with the Claude Agent SDK. Swapping is one line in the agent definition; nothing else changes.
Self-hosted, five services
One Docker Compose file runs the whole platform: coordination, catalog, history, live sync, and the gateway. Your infrastructure, your keys, your data.
One front door
Your app, your UI, and the CLI talk to teaspill through a single gateway, authenticated with API keys — plus short-lived read tokens for browsers.