Pizza Bot: Self-Hosted Inbox for Long-Running AI Agents, Apache 2.0

✍️ OpenClawRadar📅 Published: September 16, 2026🔗 Source
Ad

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: completed work collects in Unread, and runs waiting on your approval collect in Action. It's Apache 2.0, no signup, no telemetry, and you bring your own model provider.

Architecture

Pizza Bot is a server and a client. The desktop app bundles both, but you can point a client at a remote backend — the author self-hosts the server on a home network and reaches it from a phone over Tailscale. The server owns thread lifecycle and checkpoints state with DeepAgents and LangGraph, and clients rehydrate from it as needed. That means a run can be disconnected mid-flight and picked back up from a different client. Approval pauses outlive the session that created them, so you can answer an hour later from another device.

HTTP/SSE is the wire protocol. The desktop app, browser app, and terminal CLI all talk to the same api-server.

Subagents, Skills, and Memory

  • The agent you talk to has a sandboxed QuickJS interpreter that can only reach your filesystem if you grant it a folder.
  • Each subagent is a 1:1 mapping of a Skill, and an Activity bar shows the subagent and its tool calls as it works.
  • Skills are ordinary SKILL.md files with a per-tool approval policy, so existing skills that don't need a code interpreter should still work.
  • Memory is opt-in and stored as plain markdown files on your machine. Every tool call is explicit — including memory lookups.
  • Tools come from MCP servers.
Ad

Setup

npm install
npm run build
npm run dev

Node.js 24 or newer is required. npm run dev starts the Vite frontend and the Electron shell, which forks and supervises its own api-server. Installers for macOS (Intel and Apple silicon), Windows, and Linux (x64 and arm64) are attached to every release, with a SHA256SUMS file. macOS builds are signed and notarized; Linux packages are not signed.

Configure a model under Settings > Providers before starting a live run. Supported providers: Amazon Bedrock, Anthropic, Google Gemini, OpenAI, OpenRouter, and Ollama. Bedrock accepts an AWS profile, access keys, or a Bedrock API key plus an optional region override (defaults to AWS_REGION or us-west-2). OpenAI and Anthropic both accept custom base URLs; OpenAI can explicitly select Responses or Chat Completions, and Anthropic supports x-api-key or bearer auth.

Caveats

The project was built at Amazon, where it grew to more than 2,000 internal users. The internal catalog of skills and MCP servers for Amazon's own systems did not ship with the OSS release, so it lands thinner than that build. It's a community project, not an AWS service — no support or SLA. Folders are added explicitly under Settings > Files; the app gets no default home-directory access. Triggers can be cron or webhook, so work can start without an open conversation.

📖 Read the full source: HN LLM Tools

Ad

👀 See Also