Pizza Bot: A Local-First Inbox for Long-Running AI Agents
Pizza Bot is a local-first inbox for long-running AI agent work. It allows users to start or schedule tasks and return to them later, with completed work collecting in an Unread queue and tasks requiring human intervention collecting in an Action queue. Developed at Amazon and released under the Apache 2.0 license, the system ensures that agents continue working in the background even when the user disconnects or navigates away from the interface.
Core Architecture and Workflow
Pizza Bot utilizes a stateful runtime based on DeepAgents and LangGraph. The system is designed to be asynchronous, meaning users can switch conversations without stopping active runs.
Task Management
- Unread Queue: Where completed AI work is stored for user review.
- Action Queue: Where durable approval requests and tasks requiring human-in-the-loop decisions are stored.
- Folders: Users can organize threads into folders without removing them from the global Unread and Action queues.
- Persistence: Checkpointed runs survive client disconnects, and tasks can be triggered via cron or webhooks without an active conversation.
Deployment Options
Pizza Bot provides multiple ways to run the application, depending on the user's needs:
- Electron Desktop App: A local inbox with an embedded backend.
- Browser: For web development or static deployment.
- Terminal CLI: For scripts, terminals, and remote backends.
- Standalone Backend: For remote Electron clients, containers, or Linux services.
Technical Specifications and Extensibility
Model Provider Support
Pizza Bot supports a wide range of model providers, including Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter, and Ollama. The desktop application uses Electron safeStorage to protect secrets, while the server configuration persists only environment-variable references.
Extensibility via MCP and Skills
The platform is extensible through Model Context Protocol (MCP) servers and "Skills".
- MCP Servers: Can be added via the UI or a configuration file.
- Skills: Defined under the a specific data root, these become available once their declared tools are enabled. Custom skills can override built-in or plugin skills with the same ID.
- Plugins: Packages that combine MCP servers and skills together.
Security and Data Privacy
Pizza Bot is local-first by default. The api-server binds to 127.0.0.1 and application state—including threads, checkpoints, memories, and logs—is stored locally under <PIZZA_DATA_ROOT> (defaulting to ~/.pizza-bot-oss). Local folder access must be explicitly granted by the user, and the system has no default home-directory access.
Community Insights and Feedback
User feedback from the Hacker News community highlights both the strengths and the strengths and challenges of the application:
"The fact that I can just install a single app and go rather than spending hours and hours on setup, configuration, etc makes me way more likely to use this going forward."
While users praised the ease of installation, some noted "jankiness" during setup with local models like llama.cpp and suggested improvements to the user interface to make the connection between MCP servers and skills more intuitive. One user requested the ability to override the model provider per task to allow for a mix of local (cheap/private) and high-capability models (e.g., Claude) for specific complex tasks.
Other community members questioned the necessity of a separate inbox rather than using existing tools like email or ticket trackers (e.g., Linear), suggesting that a dedicated agent inbox is a necessary evolution for agentic workflows.
Sources
Related
- Project
- Project
- Project
- Dispatch
- Project