[{"data":1,"prerenderedAt":332},["ShallowReactive",2],{"navigation":3,"changelog":169},[4,28,85,127,157],{"title":5,"path":6,"stem":7,"children":8,"icon":27},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":23,"path":24,"stem":25,"icon":26},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture","i-lucide-layers","i-lucide-rocket",{"title":29,"icon":30,"path":31,"stem":32,"children":33,"page":84},"Concepts","i-lucide-lightbulb","\u002Fconcepts","2.concepts",[34,39,44,49,54,59,64,69,74,79],{"title":35,"path":36,"stem":37,"icon":38},"Durable agents","\u002Fconcepts\u002Fdurable-agents","2.concepts\u002F1.durable-agents","i-lucide-infinity",{"title":40,"path":41,"stem":42,"icon":43},"Glossary","\u002Fconcepts\u002Fglossary","2.concepts\u002F10.glossary","i-lucide-book-a",{"title":45,"path":46,"stem":47,"icon":48},"Restate in five minutes","\u002Fconcepts\u002Frestate-primer","2.concepts\u002F2.restate-primer","i-lucide-cpu",{"title":50,"path":51,"stem":52,"icon":53},"Entities & addressing","\u002Fconcepts\u002Fentities-addressing","2.concepts\u002F3.entities-addressing","i-lucide-at-sign",{"title":55,"path":56,"stem":57,"icon":58},"Timelines & events","\u002Fconcepts\u002Ftimelines-events","2.concepts\u002F4.timelines-events","i-lucide-list-ordered",{"title":60,"path":61,"stem":62,"icon":63},"Projections & the catalog","\u002Fconcepts\u002Fprojections-catalog","2.concepts\u002F5.projections-catalog","i-lucide-database",{"title":65,"path":66,"stem":67,"icon":68},"Workspaces & execution","\u002Fconcepts\u002Fworkspaces","2.concepts\u002F6.workspaces","i-lucide-terminal",{"title":70,"path":71,"stem":72,"icon":73},"Harnesses","\u002Fconcepts\u002Fharnesses","2.concepts\u002F7.harnesses","i-lucide-plug",{"title":75,"path":76,"stem":77,"icon":78},"Multi-agent patterns","\u002Fconcepts\u002Fmulti-agent","2.concepts\u002F8.multi-agent","i-lucide-network",{"title":80,"path":81,"stem":82,"icon":83},"Lifecycle & control","\u002Fconcepts\u002Flifecycle","2.concepts\u002F9.lifecycle","i-lucide-sliders-horizontal",false,{"title":86,"icon":87,"path":88,"stem":89,"children":90,"page":84},"Guides","i-lucide-book-open","\u002Fguides","3.guides",[91,106],{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":84},"Agents","i-lucide-bot","\u002Fguides\u002Fagents","3.guides\u002F1.agents",[97,101],{"title":98,"path":99,"stem":100,"icon":93},"Building agents","\u002Fguides\u002Fagents\u002Fbuilding-agents","3.guides\u002F1.agents\u002F1.building-agents",{"title":102,"path":103,"stem":104,"icon":105},"Frontend integration","\u002Fguides\u002Fagents\u002Ffrontend-integration","3.guides\u002F1.agents\u002F2.frontend-integration","i-lucide-monitor",{"title":107,"icon":108,"path":109,"stem":110,"children":111,"page":84},"Operations","i-lucide-server-cog","\u002Fguides\u002Foperations","3.guides\u002F2.operations",[112,117,122],{"title":113,"path":114,"stem":115,"icon":116},"Self-hosting","\u002Fguides\u002Foperations\u002Fself-hosting","3.guides\u002F2.operations\u002F1.self-hosting","i-lucide-server",{"title":118,"path":119,"stem":120,"icon":121},"Auth & API keys","\u002Fguides\u002Foperations\u002Fauth-api-keys","3.guides\u002F2.operations\u002F2.auth-api-keys","i-lucide-key-round",{"title":123,"path":124,"stem":125,"icon":126},"Backup & restore","\u002Fguides\u002Foperations\u002Fbackup-restore","3.guides\u002F2.operations\u002F3.backup-restore","i-lucide-database-backup",{"title":128,"icon":129,"path":130,"stem":131,"children":132,"page":84},"Reference","i-lucide-book-marked","\u002Freference","4.reference",[133,138,143,148,153],{"title":134,"path":135,"stem":136,"icon":137},"Event schema","\u002Freference\u002Fevents","4.reference\u002F1.events","i-lucide-list-tree",{"title":139,"path":140,"stem":141,"icon":142},"Addressing","\u002Freference\u002Faddressing","4.reference\u002F2.addressing","i-lucide-map-pin",{"title":144,"path":145,"stem":146,"icon":147},"Gateway HTTP API","\u002Freference\u002Fgateway-api","4.reference\u002F3.gateway-api","i-lucide-webhook",{"title":149,"path":150,"stem":151,"icon":152},"CLI","\u002Freference\u002Fcli","4.reference\u002F4.cli","i-lucide-square-terminal",{"title":154,"path":155,"stem":156,"icon":83},"Configuration","\u002Freference\u002Fconfiguration","4.reference\u002F5.configuration",{"title":158,"path":159,"stem":160,"children":161,"icon":163},"Contributing","\u002Fcontributing","5.contributing\u002F1.index",[162,164],{"title":158,"path":159,"stem":160,"icon":163},"i-lucide-git-pull-request",{"title":165,"path":166,"stem":167,"icon":168},"The package map","\u002Fcontributing\u002Fpackage-map","5.contributing\u002F2.package-map","i-lucide-boxes",[170],{"id":171,"title":172,"badge":173,"body":174,"date":323,"description":324,"extension":325,"image":326,"meta":327,"navigation":84,"path":328,"seo":329,"stem":330,"__hash__":331},"changelog\u002Fchangelog\u002Fv1.md","teaspill v1","v1",{"type":175,"value":176,"toc":313},"minimark",[177,186,191,194,198,205,241,245,251,268,271,275,278,300,304,307],[178,179,180,181,185],"p",{},"We're excited to share the first release of ",[182,183,184],"strong",{},"teaspill",", a platform for\ndurable AI agents. Agents you build on teaspill keep running across restarts,\ncrashes, and deploys — spawn sub-agents, talk to each other, share context, and\nstream their every step to a browser in real time. This release covers the full\npath from defining an agent to watching it work in your own UI.",[187,188,190],"h2",{"id":189},"durable-agents-by-default","Durable agents by default",[178,192,193],{},"Every agent runs on top of durable execution, so progress is never lost to a\ncrash or a redeploy. An agent picks up exactly where it left off, its history is\nrecorded as an append-only timeline, and long-running work simply survives. You\nwrite ordinary agent logic; the platform makes it durable.",[187,195,197],{"id":196},"build-agents-with-the-agents-sdk","Build agents with the Agents SDK",[178,199,200,204],{},[201,202,203],"code",{},"@teaspill\u002Fagents-sdk"," is the developer-facing way to define an agent:",[206,207,208,217,223,229,235],"ul",{},[209,210,211,216],"li",{},[182,212,213],{},[201,214,215],{},"defineAgent"," — declare an agent type with typed spawn arguments, inbox\nmessages, and state, all validated with Zod schemas.",[209,218,219,222],{},[182,220,221],{},"Choose your harness"," — run agents on the built-in native harness or on the\nClaude Agent SDK, without changing how you define them.",[209,224,225,228],{},[182,226,227],{},"Tools"," — extend agents with platform tools (spawn and message other\nagents), workspace tools, and your own.",[209,230,231,234],{},[182,232,233],{},"State that evolves safely"," — an additive-only rule keeps an agent's state\nschema forward-compatible as you ship changes.",[209,236,237,240],{},[182,238,239],{},"Serve and register"," — stand up an agent deployment and register it with the\nplatform in a couple of calls.",[187,242,244],{"id":243},"stream-everything-to-your-ui","Stream everything to your UI",[178,246,247,250],{},[201,248,249],{},"@teaspill\u002Ffrontend-sdk"," turns an agent's live timeline into something your\nfrontend can render:",[206,252,253,256,259,262,265],{},[209,254,255],{},"Materialize an agent's timeline into UI-ready messages, updated as events\narrive.",[209,257,258],{},"Stream token-by-token deltas for a responsive, typing-style experience.",[209,260,261],{},"Subscribe to a live catalog of agents — filter by type and status to build\ndashboards and inboxes.",[209,263,264],{},"Issue commands (spawn, message, and lifecycle actions) through a small actions\nclient.",[209,266,267],{},"Drop-in React bindings are included; the core is framework-agnostic.",[178,269,270],{},"Browser clients read agent history over short-lived read tokens and can start\nfrom a recent snapshot instead of replaying full history, so even\nlong-lived agents load fast.",[187,272,274],{"id":273},"run-it-yourself","Run it yourself",[178,276,277],{},"teaspill is self-hostable from day one:",[206,279,280,283,291,294,297],{},[209,281,282],{},"A single Docker Compose stack brings up everything an agent needs.",[209,284,285,286,290],{},"The ",[182,287,288],{},[201,289,184],{}," CLI gives you a fast dev loop plus commands to inspect\nagents and manage access.",[209,292,293],{},"One gateway is the single entrypoint for your services, UIs, and the CLI — the\ninternal services are never exposed directly.",[209,295,296],{},"API keys guard write access, with an optional read path for browser clients.",[209,298,299],{},"Back up and restore your data with documented, supported store combinations.",[187,301,303],{"id":302},"a-stable-v1-event-vocabulary","A stable v1 event vocabulary",[178,305,306],{},"The canonical timeline event schema is frozen for v1, giving you a stable\nfoundation to build tooling, integrations, and UIs against.",[308,309,310],"note",{},[178,311,312],{},"This is just the beginning. Follow the changelog for what comes next.",{"title":314,"searchDepth":315,"depth":316,"links":317},"",1,2,[318,319,320,321,322],{"id":189,"depth":316,"text":190},{"id":196,"depth":316,"text":197},{"id":243,"depth":316,"text":244},{"id":273,"depth":316,"text":274},{"id":302,"depth":316,"text":303},"2026-07-18","The first release of teaspill — durable AI agents that survive restarts, spawn sub-agents, and stream every step to your UI.","md",null,{},"\u002Fchangelog\u002Fv1",{"title":172,"description":324},"changelog\u002Fv1","-XAWWRBuTilhXjjP-GQrBEXEQAxisuCJILL-b-Tpxbc",1784473421259]