2026-10-11 17:14 UTC

Pizza Bot's maintainers claim their Apache-2.0 release combines checkpointed DeepAgents/LangGraph runs, scheduling, and durable approval queues in a local-first inbox, enabling users to supervise asynchronous agent work across client disconnects while its backend remains running.

state: corroboratedheat: lowuncertainty: mediumconvergesscott: mediumlong-running-agents agent-harnesses local-first-aiPizza BotAmazon

What is this?

Pizza Bot is an open-source (Apache-2.0) application giving long-running AI agents an email-style inbox: completed work lands in an Unread queue and approval requests in an Action queue. Developed internally at Amazon — daily.dev reports it grew out of a 2025 internal AWS passion project called JoeBot, inspired by LangChain's 'ambient agents' concept — it was open-sourced in September 2026 and has since drawn third-party coverage from The New Stack, InfoQ, MarkTechPost, and daily.dev. Architecturally it pairs LangChain's DeepAgents harness with LangGraph's stateful runtime: LangGraph checkpoints thread state and approval pauses so runs survive client disconnects while the Hono api-server keeps running (the repo explicitly scopes the guarantee to client disconnects, not backend crashes), with Electron, browser, and CLI clients talking to the server over HTTP/SSE and reconnecting clients replaying buffered events. It supports cron/webhook triggers, MCP servers, Agent Skills, and multiple model providers with state kept locally; the supplied coverage corroborates the design as described but is largely derived from the repo/AWS blog, with no independent operational testing of durability beyond the disconnect case.

Why it matters to Scott

Amazon independently shipping a durable approval-queue inbox converges with the Delegation Plane's human-pull supervision and Scott's decision-backed agent resumption pattern — a dated receipt from a consequential party — but its explicitly disconnect-only guarantee leaves the long-running-agents defining test (a fresh worker resuming from durable state) unmet, which is precisely the persisted-job-recovery gap the Proposal Compiler's job control plane targets. The second, independent event-log implementation adds a checkpointed-graph-vs-replayable-log design contrast worth mining for both the framework and the Proposal Compiler.
ip:framework.delegation-planeip:framework.long-running-agentsdev:concept.decision-backed-agent-resumptiondev:concept.resumable-agent-job-control-planedev:project.proposaldev:concept.persistent-delta-event-logradar:langchain-deepagents-harnessradar:charter-durable-agent-control-planeradar:oh-my-subagents-durable-delegationradar:hermes-missions-durable-agent-executionradar:concept.long-running-agentsradar:concept.persistent-agentsradar:concept.durable-agentsradar:concept.local-first-airadar:concept.human-in-the-loop
queries asked of Scott's wikis
  • delegation plane durable approval queue
  • persisted job recovery agent checkpoint resumption
  • local-first agent runtime disconnect tolerance
  • ambient agents asynchronous supervision inbox pattern
  • Proposal Compiler event log replay vs checkpoint
  • agent harness DeepAgents LangGraph

Measured heat

now 0 pts/hpeak 9 pts/hcomments 0/hpeers p14momentum: steady3 platformsage 724h
points/hour across evidence · reading as of 2026-10-12 02:59:37.977291+11:00 · deterministic, not a model opinion

How the heat travelled

09-11 12:27 (minted)⭐ origin echo-reconstructedThe Amazon-developed Apache-2.0 project presents an inbox for long-running AI work with checkpointed runs, Unread and Action queues, schedul
Pizza Bot maintainers on github (echo) · attributed from hn.story.49657189 · published time unknown
—
09-11 12:20first on hacker news · published · lag ?Pizza Bot: a local-first inbox for long-running AI agents
joshcsimmons
—
10-06 20:09first on r/LocalLLaMA · published · lag ?Open-source engine that gives local agents a mailbox: any IMAP/JMAP account, event log you can replay, approve/undo on every action, no model inside
Kadri006
—
09-11 12:20amplified on hacker newshn.story.49657189
joshcsimmons
peak 2 · 3 comments · 3% of case engagement
09-14 22:55amplified on hacker newshn.story.49705380
CrankyBear
peak 2 · 2 comments · 3% of case engagement
09-15 15:20amplified on hacker news 👑hn.story.49713894
jd_
peak 61 · 37 comments · 67% of case engagement
10-06 20:09amplified on r/LocalLLaMAreddit.post.1wzcv3e
Kadri006
peak 1 · 3 comments · 2% of case engagement
10-07 17:15amplified on hacker newshn.story.49995778
pnezis
peak 27 · 9 comments · 25% of case engagement
09-11 12:21our radar first saw it · lag ?discovery anchor: hn.story.49657189—
pace: p71 vs 519 stories at the 720h mark (now 724h old) — ahead of engrim-local-cli-memory (1.0x), behind qwen38-kaggle-tpu-serving (1.0x)

Evidence (6) — ⭐ canonical anchor

sourceobjectauthorscorecomments
🟧 hnPizza Bot: a local-first inbox for long-running AI agents
Retrieved article excerpt

Open article · Retrieved 2026-09-11T12:22:51.538645+00:00

Pizza Bot OSS Pizza Bot is an inbox for long-running AI work. Start or schedule a task, return
to your day, and let completed work collect in Unread while runs waiting for
your decision collect in Action . Agents keep working when you navigate away
or disconnect; the api-server process must remain running. Pizza Bot uses a stateful DeepAgents/LangGraph runtime with the same React
experience in Electron and the browser. The desktop app, web app, and terminal
CLI all communicate with the api-server over HTTP/SSE. Pizza Bot was developed at Amazon and is released under the Apache 2.0 license. Why Pizza Bot? Work asynchronously. Switch conversations without stopping their runs. Return to the right queue. Completed work lands in Unread; durable approval
requests land in Action. Organize conversations. Group threads into folders without hiding matching
work from the global Unread and Action queues. Resume real work. Checkpointed runs survive client disconnects, and cron or
webhook triggers can start work without an open conversation. Delegate to specialists. Skills become tool-scoped workers whose progress
appears in the Activity panel. Bring your model provider. Amazon Bedrock, Anthropic, Google Gemini,
OpenAI, OpenRouter, and Ollama are supported. Keep control of consequential actions. Human-in-the-loop approvals,
long-term memory, file attachments, and desktop notifications are built into
the workflow. Grant local access explicitly. Add individual read-only or writable folders
under Settings > Files ; Pizza Bot receives no default home-directory access. Download Installers for macOS (Intel and Apple silicon), Windows, and Linux (x64 and
arm64) are attached to every release , with a SHA256SUMS to
check a download against. The macOS builds are signed and notarized; the Linux
packages are not signed, so verify them against the checksums. Quick start Node.js 24 or newer is required. npm install
npm run build
npm run dev npm run dev starts the Vite frontend and Electron desktop shell. The shell
forks and supervises its own api-server, matching the packaged application's
process model. Configure a model under Settings > Providers before starting
a live run. See Running from source for isolated data roots, browser and
CLI development, desktop packages, and remote backends. Ways to run Experience Best for Start here Electron desktop Local inbox with an embedded backend npm run dev Browser Web development or static deployment Browser development Terminal CLI Scripts, terminals, and remote backends CLI Standalone backend Remote Electron, browsers, containers, or Linux services Backend guide A running api-server needs access to at least one model provider; HTTP clients
do not. Configure Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter,
or Ollama in Settings > Providers . Bedrock accepts an AWS profile, AWS
access keys, or a Bedrock API key, with an optional region override; otherwise AWS_REGION or us-west-2 is used. Bedrock combines its native catalog with
the regional Mantle catalog and routes models through Converse, OpenAI
Responses or Chat Completions, or Anthropic Messages according to their
advertised API family.
OpenAI and Anthropic also accept custom base URLs for compatible endpoints;
OpenAI can explicitly select Responses or Chat Completions, and Anthropic
supports x-api-key or bearer authentication. Select a model with PIZZA_MODEL=<provider>:<id> . The desktop protects entered secrets with
Electron safeStorage ; server configuration persists only environment-variable
references. Extend it Add MCP servers from the UI or <PIZZA_DATA_ROOT>/.mcp.json . Add Agent Skills
under <PIZZA_DATA_ROOT>/skills , or install plugins that package MCP servers and
skills together. Skills become available after their declared tools are enabled
and connected. A custom skill can replace a Built-in or Plugin skill with the
same id without modifying the original; removing the customization reveals the
Built-in or Plugin version again. The Built-in Pizza Bot Guide can explain
features, suggest workflows, help with setup, and point to project documentation. See Extending Pizza Bot for configuration, environment
references, skill authoring, approval gates, and plugin installation. Project layout apps/        api-server (Hono) | cli | desktop-shell (Electron) | web (React)
packages/    core | runtime-langgraph | inference-providers | plugin-api | plugin-sdk | storage | logging
plugins/     bundled Plugin packages and their packaging workspace
skills/      optional Built-in Agent Skills
tests/       LangGraph compatibility and protocol conformance The production graph engine is isolated to packages/runtime-langgraph ;
frontends consume protocol projections rather than importing runtime or model
bindings. Documentation Running - desktop, browser, CLI, and package commands. Extending - MCP servers, skills, and plugins. Architecture - system boundaries, event model,
persistence, transports, and design decisions. Standalone backend - authentication, remote
Electron, static browser deployment, Docker, Compose, and Kubernetes. Contributing - development setup, CI checks, worktrees,
releases, and layering rules. Security - network defaults, credentials, local data, and
plugin trust. Logging - diagnostics, retention, viewing, and redaction. Roadmap - exploratory directions and the principles used to
evaluate them. Code of Conduct - community participation
expectations. Security and data Local-first by default. The api-server binds to 127.0.0.1 ; non-loopback
binding requires authentication and an explicit origin allowlist. Application state stays local. Threads, checkpoints, memories,
attachments, and logs live under <PIZZA_DATA_ROOT> ( ~/.pizza-bot-oss by default). Model and tool requests go to the providers
and endpoints you configure. Local folders require an explicit grant. Each folder added under Settings > Files is read-only unless you allow writes. Remote grants name
paths on the backend host. MCP servers and plugins are trusted. Their commands and materializers can
execute with your user account's permissions. Install only sources you trust. See SECURITY.md for the complete security model and vulnerability
reporting process. Contributors Pizza Bot was designed, built, and brought into the open by its Executive Chefs
and Sous Chefs: Executive Chefs Sous Chefs Pizza Bot was also shaped by more than 2,000 users across Amazon who tested
earlier versions and shared feedback from real-world use. Their bug reports,
ideas, and candid input helped make Pizza Bot ready for a broader community.
Thank you to everyone who contributed. License Apache-2.0 . See NOTICE for attribution notices.
joshcsimmons23
🟧 echo.github ⭐The Amazon-developed Apache-2.0 project presents an inbox for long-running AI work with checkpointed runs, Unread and Action queues, schedulPizza Bot maintainers——
🟧 hnAWS Open-Sources Pizza Bot, an Inbox for Background AI AgentsCrankyBear22
🟧 hnShow HN: Pizza Bot – An inbox for AI agents that work in the backgroundjd_6137
🟠 redditOpen-source engine that gives local agents a mailbox: any IMAP/JMAP account, event log you can replay, approve/undo on every action, no model inside
LocalLLaMA
Kadri00613
🟧 hnShow HN: Pinrail – A desktop inbox where coding agents wait for your reviewpnezis279

Interpretation history

Decision trace