LmCast :: Stay tuned in

Show HN: Pizza Bot – An inbox for AI agents that work in the background

Recorded: Sept. 15, 2026, 10 p.m.

Original Summarized

GitHub - pizza-bot-app/pizza-bot: A local-first inbox for long-running AI agents, built with DeepAgents and LangGraph. · GitHub

Skip to content

Navigation MenuSign inAppearance settingsPlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub Copilot appDirect agents from issue to mergeMCP RegistryIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesCode QualityEnforce quality at mergeAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricingSearch/Sign inSign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

Uh oh!

There was an error while loading. Please reload this page.


pizza-bot-app

/

pizza-bot

Public

Notifications
You must be signed in to change notification settings

Fork
12

Star
138

Code

Issues
4

Pull requests
8

Discussions

Actions

Security and quality
0

Insights

Additional navigation options

Code

Issues

Pull requests

Discussions

Actions

Security and quality

Insights

mainBranchesTagsGo to fileCodeOpen more actions menuLatest commit History79 Commits79 CommitsFolders and filesNameNameLast commit messageLast commit date.github.github  appsapps  assetsassets  docsdocs  examples/pluginsexamples/plugins  packagespackages  pluginsplugins  scriptsscripts  skillsskills  tests/langgraph-compattests/langgraph-compat  .dockerignore.dockerignore  .env.example.env.example  .gitignore.gitignore  .worktreeinclude.worktreeinclude  AGENTS.mdAGENTS.md  CLAUDE.mdCLAUDE.md  CODE_OF_CONDUCT.mdCODE_OF_CONDUCT.md  CONTRIBUTING.mdCONTRIBUTING.md  DockerfileDockerfile  LICENSELICENSE  NOTICENOTICE  README.mdREADME.md  ROADMAP.mdROADMAP.md  SECURITY.mdSECURITY.md  docker-compose.ymldocker-compose.yml  eslint.config.jseslint.config.js  package-lock.jsonpackage-lock.json  package.jsonpackage.json  tsconfig.base.jsontsconfig.base.json  tsconfig.jsontsconfig.json  turbo.jsonturbo.json  vitest.config.tsvitest.config.ts  View all filesRepository files navigationREADMECode of conductContributingApache-2.0 licenseSecurityMore itemsPizza 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 subagents 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.
AboutA local-first inbox for long-running AI agents, built with DeepAgents and LangGraph.github.com/pizza-bot-app/pizza-bot/releasesTopicsagentic-aiai-agentsamazon-bedrockdeepagentselectronhuman-in-the-looplanggraphlocal-firstmcptypescriptResourcesReadmeApache-2.0 licenseCode of conductCode of conductContributingContributingSecurity policySecurity policyActivityCustom propertiesStars138 starsWatchers1 watchingForks12 forksReport repositoryReleasesPackagesUsed byContributorsLanguagesGenerated from amazon-archives/__template_Apache-2.0

Footer

© 2026 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Community

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

Pizza Bot functions as a local-first inbox designed specifically for managing long-running artificial intelligence agents, leveraging the integration of DeepAgents and LangGraph to manage complex asynchronous workflows. The core purpose of the system is to allow users to initiate tasks, detach from the process, and resume work seamlessly, ensuring that agent execution persists even when client connections are lost. This is achieved by maintaining a stateful runtime that allows agents to continue processing tasks, with completed work archived in an Unread queue and pending approval requests managed in an Action queue for user intervention.

The system is architected to be accessible across multiple interfaces, utilizing the same underlying process model for communication via HTTP and SSE. This unified system is rendered through a desktop Electron application, a web application built with React, and a command-line interface for terminal access, enabling flexible interaction with the agent workflows.

The design prioritizes operational flexibility, allowing users to manage conversations by grouping threads into folders without obscuring concurrent work in the global queues. A critical feature is the ability to resume work, as checkpoints for agent runs survive client disconnections, and external triggers like cron jobs or webhooks can initiate new tasks without requiring an active conversation. Furthermore, the agents can be delegated to specialists through the concept of agent skills, where these skills function as tool-scoped subagents whose progress is visible in an Activity panel. This structure facilitates a sophisticated delegation of tasks.

To support external capabilities, Pizza Bot integrates support for various model providers, including Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter, and Ollama. The system handles interactions with these providers by configuring model selections, where a specific model is selected using a format that specifies the provider and ID. The architecture incorporates human-in-the-loop controls, long-term memory storage, file attachments, and desktop notifications directly into the workflow design, ensuring that consequential actions are overseen by the user.

Security and data handling are fundamental to the design, adhering to a local-first philosophy. The application state, including threads, checkpoints, memories, attachments, and logs, is stored locally under a designated root directory. Access to local folders requires explicit permission settings, meaning the system does not default to accessing the user's home directory. The api-server binds locally, and remote access necessitates explicit authentication and an origin allowlist. The system trusts external extensions, such as MCP servers and plugins, which can execute commands and materializers with the user’s permissions, necessitating careful management of trusted sources.

The project structure is modular, separating concerns into distinct directories such as apps, packages, plugins, skills, and tests, with the core graph engine isolated within packages/runtime-langgraph. This separation ensures that frontends consume protocol projections rather than direct model or runtime bindings, promoting modularity. The documentation further details the architecture, system boundaries, event models, persistence strategies, and security protocols, alongside guidance on running the system, extending its capabilities through skills and plugins, and contributing to the codebase.