A local-first inbox for long-running AI agents, built with DeepAgents and LangGraph.
65
stars
75
commits
TypeScript
primary language
Sep 9, 2026
updated
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.
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.
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.
| 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.
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.
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.
127.0.0.1; non-loopback
binding requires authentication and an explicit origin allowlist.<PIZZA_DATA_ROOT>
(~/.pizza-bot-oss by default). Model and tool requests go to the providers
and endpoints you configure.See SECURITY.md for the complete security model and vulnerability reporting process.
Pizza Bot was designed, built, and brought into the open by its Executive Chefs and 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.
Apache-2.0. See NOTICE for attribution notices.
TypeScript
92.0%
CSS
4.1%
JavaScript
3.6%
A local-first inbox for long-running AI agents, built with DeepAgents and LangGraph.
65
stars
75
commits
TypeScript
primary language
Sep 9, 2026
updated
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.
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.
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.
| 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.
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.
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.
127.0.0.1; non-loopback
binding requires authentication and an explicit origin allowlist.<PIZZA_DATA_ROOT>
(~/.pizza-bot-oss by default). Model and tool requests go to the providers
and endpoints you configure.See SECURITY.md for the complete security model and vulnerability reporting process.
Pizza Bot was designed, built, and brought into the open by its Executive Chefs and 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.
Apache-2.0. See NOTICE for attribution notices.
TypeScript
92.0%
CSS
4.1%
JavaScript
3.6%