Pizza Bot: Self-Hosted Inbox for Long-Running AI Agents, Apache 2.0
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.mdfiles 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.
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
👀 See Also

VidLens MCP Server: Persistent YouTube Knowledge Base for Claude
VidLens is a free, open-source MCP server that indexes YouTube content locally with semantic embeddings, treating videos as a persistent knowledge base rather than extracting temporary transcripts. It provides 41 tools across 10 modules for searching, analyzing, and retrieving video content.

Parallel Claude Chat Architecture for Next.js Development
A developer created a system to run multiple Claude AI chats simultaneously on the same Next.js codebase using a shared database table and polling agent, achieving 87% build success rate with zero merge conflicts in one session.

MCP Gateway for Secure Remote Access to Internal Tools
An open-source MCP gateway aggregates multiple MCP tool servers into a single connection, enabling secure access via Claude Desktop without exposing public endpoints. It uses OpenZiti/zrok for zero-trust networking and requires only one configuration entry with a share token.

Lore: A tool that extracts structured context from AI coding conversations
Lore is a browser-based tool built with Claude Code that extracts structured context from AI conversations, capturing decisions, TODOs, blockers, and resume checklists. It's a React + TypeScript PWA with a Chrome extension for direct conversation capture and context injection.