pizza-bot README

The project's README from github.com/pizza-bot-app/pizza-bot. As one markdown file: README.md.

Pizza Bot

Pizza Bot

An inbox for long-running AI work.
Start or schedule a task, walk away, and come back to finished work in Unread and decisions waiting for you in Action.

CI status Latest release Apache 2.0 license Runs on macOS, Windows, and Linux Requires Node.js 24 or newer GitHub Discussions

Download · Quick start · Why Pizza Bot · Extend · Architecture · Contributing · Roadmap · Discussions

Pizza Bot inbox showing unread work, an approval request, a completed launch brief, and delegated agent activity

Agents keep working when you navigate away or disconnect; only the api-server process must remain running. A stateful DeepAgents/LangGraph runtime serves the same React experience in Electron and the browser, and the desktop app, web app, and terminal CLI all talk to the api-server over HTTP/SSE.

Pizza Bot was developed at Amazon and is released under the Apache 2.0 license.

Why Pizza Bot?

Download

Installers are attached to every release, with a SHA256SUMS to check a download against.

Platform Packages Notes
macOS (Apple silicon, Intel) .dmg, .zip Signed and notarized
Windows (x64) -setup.exe
Linux (x64, arm64) .deb, .rpm Not signed; verify against SHA256SUMS

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

Security and data

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

Joseph Dolivo (@JoeDo) Igor Fil (@igorfil)

Sous Chefs

Flávio Schuindt (@flavioschuindt) Jacob Wert (@jwert-aws) Michael Karachewski (@michaelkarachewski) Itzik Paz (@spideron)

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.

pizza-bot (pizza-bot-app/pizza-bot)

Searching Database…

这是做什么用的?一个开源、本地优先的收件箱,用来管理耗时较长的 AI 智能体任务,基于 DeepAgents 和 LangGraph 构建。你启动或安排一个任务后就可以离开,回来时已完成的工作会出现在 Unread 队列中,待你决策的事项则出现在 Action 里。
它是桌面应用,还是我在浏览器里打开的东西?两者都是,还有终端 CLI。同一个有状态的 DeepAgents/LangGraph 运行时,在 Electron 和浏览器里提供相同的 React 体验;桌面应用、网页应用和 CLI 都通过 HTTP/SSE 与 api-server 通信。
我怎么把它跑起来?从 releases 页面下载安装包(macOS 用 .dmg/.zip,Windows x64 用 -setup.exe,Linux 用 .deb/.rpm),或者在 Node.js 24+ 环境下运行 npm run dev。然后在首次正式运行前,到 Settings > Providers 里配置一个模型。
我需要自己准备模型服务商或 API 密钥吗?需要。api-server 运行时至少要配置一个服务商——Amazon Bedrock、Anthropic、Google Gemini、OpenAI、OpenRouter 或 Ollama——位置在 Settings > Providers;浏览器和 CLI 客户端本身则不需要。
如果智能体任务进行到一半时我关掉了应用,会怎么样?任务会继续运行:你离开页面或断开连接后,智能体仍会继续执行,带检查点的运行也能在客户端断开后保留。只有 api-server 进程必须保持运行,而且 cron 或 webhook 触发器甚至可以在没有打开任何会话的情况下启动任务。
这是 Amazon 内部工具,还是谁都能用?谁都能用。它由 Amazon 开发,早期版本有超过 2000 名员工参与测试,现在已按 Apache 2.0 协议开源,并为 macOS、Windows 和 Linux 提供签名安装包。
我的数据会存到哪里?默认保存在本地:api-server 只绑定 127.0.0.1,会话线程、检查点、记忆、附件和日志都存放在 ~/.pizza-bot-oss 下。只有对你配置的服务商和端点的请求才会离开这台机器;绑定到非回环地址时必须启用身份验证。
我该怎么为它添加新工具或新智能体?可以在界面里或通过 .mcp.json 文件添加 MCP 服务器,把 Agent Skills 放到 /skills 目录下,或者安装把 MCP 服务器和技能打包在一起的插件。技能会成为限定工具范围的子智能体,其进度会显示在 Activity 面板中。
智能体能读取我的文件吗?只能读取你在 Settings > Files 里明确授权的文件夹,而且每个文件夹默认只读,除非你允许写入。它不会默认访问你的主目录,远程授权则是针对后端主机上的路径。
为什么叫收件箱,而不叫聊天应用?因为结果和决策都会排队等你处理:完成的工作进入 Unread,需要持久审批的请求进入 Action,你还可以把会话线程分组成文件夹,同时不会把相关的工作从这些全局队列里隐藏掉。
我的服务商 API 密钥是怎么保存的?桌面端使用 Electron safeStorage 保护你输入的密钥,服务器端配置只保存环境变量的引用,而不是密钥本身。
Size
11.5 MB
Stars
503
Age
3mo
Commits · 90 Days