源码公开 · 新加坡优先

AI 智能体可以操作的餐饮点餐与收银系统

Hawkerline 是一套 AI 智能体可以直接操作的餐饮点餐、厨房看板、菜单与收银系统,源码公开,面向新加坡餐饮商户,运行在一个 Cloudflare Worker 和一个 D1 数据库上。

了解智能体如何操作阅读许可说明在 GitHub 查看

Hawkerline 是什么?

Hawkerline 是一套 AI 智能体可以直接操作的餐饮点餐、厨房看板、菜单与收银系统,源码公开,面向新加坡餐饮商户,运行在一个 Cloudflare Worker 和一个 D1 数据库上。

  • 它运行在一个 Cloudflare Worker 和一个 Cloudflare D1(SQLite)数据库上,静态文件由 Workers Assets 提供,没有需要另外维护的服务器。
  • 新加坡默认设置:新加坡时间、新元价格、GST 与服务费设置、PayNow 二维码、邮区配送区域。
  • 它由新加坡餐饮商户 坡晓馒 PO XIAO MAN 的生产系统抽取而成。

四个界面,同一个 Worker

顾客点餐页

菜单、商品页、购物车、结账、自取或配送、营业时间内的预订时段,以及订单发票页。提供中英双语。

店主后台 /admin

商品、价格、图片、套餐组成、优惠码、配送区域、营业时间、GST 与服务费、支付设置、会员、订单、退款与销售汇总。

POS 收银 /pos

收银员 PIN 登录、柜台销售、会员查询、柜台储值充值,以及员工上下班打卡。

厨房 /kitchen

厨房看板按「新单、制作中、待取、完成」推进订单状态;厨房小票可通过 Star CloudPRNT 接口,或 macOS 与 Windows 上的小型打印程序输出。

AI 智能体层

每个部署都提供三种智能体接口:/mcp 上的 MCP 服务(Streamable HTTP,密钥鉴权);/api/agent/v1 上的 REST API,OpenAPI 3.1 文档位于 /api/agent/v1/openapi.json;以及 /llms.txt,向智能体说明如何操作这家店。任何能通过 Streamable HTTP 发送 Authorization: Bearer 请求头的 MCP 客户端都可以接入,例如 Claude Code。系统未实现 OAuth。

示例流程:从菜单照片到发布菜单

  1. 菜单照片。把菜单的照片或 PDF 交给智能体。
  2. 生成商品。智能体创建商品与分类,必要时批量写入。
  3. 预览。对照线上菜单预览草稿。顾客看到的仍然只是已发布的版本。
  4. 发布。只发布已预览的那一版草稿,校验码必须一致。

之后,同一个智能体还可以查看订单、读取厨房看板,并推进订单的厨房流程。阅读完整的智能体接口说明。

让 AI 发布菜单的安全机制

预览校验码

智能体只能发布它预览过的那一版草稿。校验码不一致,就不会发布。

分权限密钥

智能体密钥带有 menu:read、menu:write、menu:publish 等权限,每个密钥能做什么由店主决定。密钥只显示一次,系统只保存其哈希。

审计日志

智能体的每次调用都会写入审计日志,店主可查看。

即时吊销

店主可随时在后台吊销密钥。

草稿、发布版本与回滚

  • 修改先进入草稿,顾客只能看到已发布的版本。
  • 发布版本是不可变的快照;可以立即发布,也可以按新加坡时间定时发布。
  • 带签名的预览链接有效期 10 分钟,可在上线前查看草稿。
  • 回滚会用旧版本生成一个新的发布版本。
  • 并发修改由版本号检查保护:过期的修改会被拒绝,而不是覆盖他人的改动。

部署方式

Hawkerline 就是一个 Cloudflare Worker 加一个 D1 数据库。点餐页、后台、POS 与厨房在同一个 Worker 上,按路径或子域名区分。

AI 智能体 店主与员工 一个 Cloudflare Worker 点餐页/admin/pos/kitchen Workers Assets:静态文件 一个 D1 数据库 MCP · REST
示意图:AI 智能体与店内人员使用同一个 Worker,数据存放在一个 D1 数据库。
项目说明
许可Hawkerline Community License;源码公开,不是 OSI 开源
托管一个 Cloudflare Worker;静态文件由 Workers Assets 提供
数据库一个 Cloudflare D1(SQLite)数据库
智能体接口/mcp(MCP)、/api/agent/v1(REST)、OpenAPI 3.1、/llms.txt
支付Stripe 在线支付(带签名的 webhook);PayNow 动态二维码,人工确认
配送按区域计费;Lalamove 仅提供运费报价,不自动叫车
通知Telegram 新订单提醒,发送到已订阅的员工群
本地化新加坡时间、新元、GST 与服务费、中英双语点餐页

在本机试用

用演示数据在本机运行一份:

npm ci
npm run db:migrate:local
npm run demo:seed
npm run dev

在 GitHub 上阅读 部署指南 和 智能体接入指南。

一分钟看懂许可

  • 餐饮商户若连同关联方在上一财年的年营业额不超过 1,000 万新元,可免费用于自家门店。
  • 可以安装、修改、自行托管,也可以请 IT 承包商为你自己的使用进行部署。
  • 系统商、POS 或 SaaS 服务商、代理商与集成商,未取得商业许可前,不得销售、转售或替其他商户托管。
  • 按现状提供,不附带担保。

阅读通俗版许可说明。

案例:坡晓馒 PO XIAO MAN

坡晓馒 PO XIAO MAN 是新加坡的一家包点店。它的在线点餐页、店主后台、POS 与厨房,运行在 Hawkerline 的来源系统上,使用 Cloudflare Workers 与 D1,并接受 Stripe 实时支付。阅读案例页,或访问 poxiaoman.com。

常见问题

Hawkerline 是什么?

Hawkerline 是一套 AI 智能体可以直接操作的餐饮点餐、厨房看板、菜单与收银系统,源码公开,面向新加坡餐饮商户,运行在一个 Cloudflare Worker 和一个 D1 数据库上。

Hawkerline 是开源软件吗?

Hawkerline 是源码公开,不是 OSI 意义上的开源。源代码公开可读。上一财年年营业额不超过 1,000 万新元的餐饮商户,可依 Hawkerline Community License 免费用于自家门店。

AI 智能体真的能发布我的菜单吗?

可以,但在你设定的范围内。智能体凭智能体密钥,通过 /mcp(MCP)或 /api/agent/v1(REST)接入。它只能发布自己预览过的那一版草稿;每个密钥只带有你授予的权限;每次调用都写入审计日志;你可以随时吊销密钥。

运行它需要什么?

一个 Cloudflare Worker 和一个 Cloudflare D1(SQLite)数据库,静态文件由 Workers Assets 提供,没有需要另外维护的服务器。

它是为新加坡设计的吗?

是。默认设置包括新加坡时间(SGT)、新元价格、GST 与服务费设置、PayNow 二维码,以及新加坡邮区的配送区域。顾客点餐页与菜单提供中英双语。

可以转售或替其他商户托管吗?

社区许可下不可以。系统商、POS 或 SaaS 服务商、代理商与集成商如要销售、转售、转授权、作为服务替其他商户托管,或将其打包进商业产品,须另行取得商业许可。

有实际运行的例子吗?

有。Hawkerline 由新加坡包点店 坡晓馒 PO XIAO MAN(poxiaoman.com)的生产系统抽取而成。