HeadlinesBriefing favicon HeadlinesBriefing.com

Pizza Bot: Open-Source AI Agent Inbox

Hacker News •
×

Pizza Bot is a self-hosted desktop app for Mac, Windows, and Linux that runs AI agents in the background and exposes them through an email-like UI. Finished work shows up in Unread, and anything waiting on your approval shows up in Action. It's Apache 2.0-licensed, with no signup or telemetry, and you bring your own model provider: Anthropic, Amazon Bedrock, Google Gemini, OpenAI, OpenRouter, or a local model through Ollama.

Pizza Bot started as an internal passion project at Amazon. The creator built a simple REST API called "JoeBot" that connected to an authenticated browser session over CDP and filled out CRM forms using Playwright. Then he hacked up an Obsidian plugin to trigger it from local notes. This caught on quickly. Fellow AWS Solutions Architect Igor Fil joined, and they rebranded the project as "Pizza Bot," named after Amazon's two-pizza teams. They exposed Pizza Bot as an MCP server, then rebuilt it as an Electron desktop app modeled after an email inbox for non-technical users. It expanded outside AWS into the wider Amazon organization globally. More than 2,000 people used it for meeting prep, email drafting, Slack summaries, CRM logging, prioritizing their day, and web research.

Once apps like Claude Cowork and Amazon's Quick Desktop came out, the team rebuilt Pizza Bot as an open source project. They leaned on coding agents heavily. It's finally public, and they're hoping to bring in community members. It ships thinner than the internal version, and building the catalog back up is where they need the most help. It's a community project, not an AWS service, so there's no support or SLA. The Windows and Linux builds aren't signed yet.

Technically, Pizza Bot is a server and a client. The desktop app bundles both, or you can point a client at a remote backend. The server owns the thread lifecycle and checkpoints state with DeepAgents and LangGraph, and clients rehydrate from it as needed. Approval pauses outlive the session that created them and collect in an Action filter.