Chaojizan
FreeNot checked群众帮群众的超级 App,当大基建来做:消息、视频、小程序和外卖、团购、酒店、跑腿在一个 App 里,平台只修底座。不以盈利为目的:商家总负担 5% 封顶、配送费 100% 归骑手,收支按月公开、结余不分红,账目谁都能核。FastAPI + Flutter + React,AGPL 开源,欢迎部署到你的城市。
About
群众帮群众的超级 App,当大基建来做:消息、视频、小程序和外卖、团购、酒店、跑腿在一个 App 里,平台只修底座。不以盈利为目的:商家总负担 5% 封顶、配送费 100% 归骑手,收支按月公开、结余不分红,账目谁都能核。FastAPI + Flutter + React,AGPL 开源,欢迎部署到你的城市。
README

超级赞(chaojizan)
超级赞是一个开源的生活服务平台,出发点是「群众帮群众」:把日常要用的东西装进一个 App —— 聊天、视频、小程序、外卖、到店团购、酒店、跑腿。账号和实名、消息、支付和账本、地图和配送、小程序托管、审核和申诉,这些底座修一次,上面每接一个业务都能直接用。
平台的收入只有几笔固定费用:外卖佣金 5% 封顶,团购核销收 2%,酒店离店收 5%,跑腿收 2%,消息、视频和小程序不收费。配送费一分不抽,账目每月公开,有结余也不分红,用在骑手保障、商家扶持和降费率上。代码 AGPL 开源,一个城市一个月一百多块钱就能跑起来。
现在有什么
| 板块 | 内容 | 状态 |
|---|---|---|
| 消息 | 私聊、群(最多 1000 人)、频道、服务号;订单一单一个群 | 已上线 |
| 通话、机器人 | 1 对 1 语音 / 视频通话;机器人平台(Bot API) | 已完成,线上未开 |
| 视频 | 投稿、弹幕、评论、竖屏流、UP 主空间;探店视频可挂本平台的店 | 已完成,后台开关控制上线 |
| 小程序 · 小游戏 | 开放平台,开发者注册开放,发布免费,没有能花钱买的曝光 | 已上线 |
| AI 助手 | 通过 MCP 让 AI 替你点餐、发视频、发布小程序;付不了款,也过不了审 | 点餐已上线 |
| 身份与信用 | 超级赞号、资料页标签与勋章、信用分(顾客/商家/骑手同一套机制) | 随下一版 |
| 外卖 | 23 个餐饮品类、拼单、到店自取、商家自配送 | 运营中 |
| 到店团购 · 排队 | 核销才收 2%,没用随时全额退;取号叫号 | 运营中 |
| 酒店住宿 | 离店才收 5%,无排他、无竞价排名、无年费 | 运营中 |
| 跑腿代购 | 帮送、帮买,平台收 2%,账单上单列 | 运营中 |
| 打车 | 计价规则公开,司机不被抽走三成 | 筹备中 |
| 网页版 / 电脑版 | 用户端网页版和 Windows、macOS、Ubuntu 电脑版,手机扫码登录 | 随下一版 |
怎么收费
| 业务 | 平台收多少 |
|---|---|
| 外卖 | 商家佣金 5% 封顶,单量大的商家阶梯降到 4%;配送费一分不抽 |
| 到店团购 | 核销才收 2%,未使用随时全额退 |
| 酒店 | 离店才收 5%;取消、未入住不收 |
| 跑腿 | 跑腿费收 2%,账单上单列;帮买的商品款一分不抽 |
| 消息、视频、小程序 | 不收费 |
几句话写在明处:
- 外卖佣金 5% 是上限,不是目标。哪天 3% 能活,就降到 3%。
- 配送费和小费 100% 归骑手,提现不收手续费。
- 每一单的钱去哪了(商家实收 / 骑手所得 / 平台留存),顾客在订单页看得到。
- 平台不以盈利为目的:收入先覆盖服务器、短信、地图和客服的开销,每月收支公开,结余不分红。
- 不做会员等级,不发平台补贴,不卖数据,不竞价排名,不收推广费。
平台收入只有上面这几笔。出了事按谁的问题算谁的:商家有责任,顾客拿回全款(配送费和小费也退),钱由商家出;骑手有责任,先从公开可查的骑手保障金池出,不够的由骑手承担,不封顶,能申诉。平台只在一种情况下出钱:平台判错了,平台自己认。首单立减、超时安抚券这类平台出钱的开关连同代码已经删了,拨不回来;停发之前发出去的券照旧能用。
账目怎么查
| 入口 | 内容 |
|---|---|
| 透明中心 | 每日核账公示(差一分钱都亮红灯)、佣金去向、赔付记录、每 100 元分账实算、实际佣金率、规则变更留痕、系统可用率 |
| 运营大屏 | 实时订单/注册规模/城市分布,店内电视可投屏 |
| 公开账本 | 全部账务流水哈希链锚点,社区见证节点持续复算。改历史上任何一分钱,全网都会知道 |
| 版本公示 | 线上运行的版本 = 本仓 tag,透明中心·最近更新 与本仓提交对得上 |
见证节点有 Python、Go、网页、App 四个实现,跑同一套核账用例(在 witness/testdata/),四个口径分叉的话,平台在某一栏做假就藏不住。
下载
| 端 | 直链 | 定位 |
|---|---|---|
| 🍜 用户端 | chaojizan-user-arm64.apk | 消息、视频、小程序;外卖、团购、酒店、跑腿,每一单分账可查 |
| 🏪 商家端 | chaojizan-merchant-arm64.apk | 入驻免费,总负担 5% 封顶 |
| 🛵 骑手端 | chaojizan-rider-arm64.apk | 配送费 100% 归你 |
| 🖥 用户端网页版 / 电脑版 | 随下一版发布:网页版在 chaojizan.cc/web/,电脑版有 Windows、macOS、Ubuntu |
用手机 App 扫码登录 |
安卓包是 arm64,当前线上版本见上面的 Release 徽章,下载页(带更新说明)在 https://chaojizan.cc/download。安装包由公开 CI 从 tag 构建,Release 页和下载站的 SHA-256 一致,App 内置更新检查,安装前校验 SHA-256。
收集了什么、用了哪几个第三方 SDK(极光推送、腾讯地图、安卓扫码用的 Google ML Kit)都写在隐私政策里。权限清单以三端 AndroidManifest.xml 为准;比如骑手端上线期间 App 在后台或锁屏也要定位(安卓会显示常驻通知),用于抢单大厅按距离排序、顺路判断和配送轨迹,下线就停。
自己部署一个
1. 后端(5 分钟)
docker compose up -d db redis # PostgreSQL(PostGIS) + Redis
cd server
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload # http://localhost:8000/docs 看接口文档
# 另开终端灌演示数据
cd server && source .venv/bin/activate && python -m scripts.seed
或者全容器化:docker compose up -d --build。
2. 演示账号(密码都是 123456)
| 角色 | 手机号 | 说明 |
|---|---|---|
| 用户 | 13800000001 | 用户端登录 |
| 商家 | 13800000002 | 名下「张记面馆」(已过审) |
| 骑手 | 13800000003 | 骑手端登录 |
| 管理员 | 13800000000 | 管理后台 http://localhost:8000/admin |
| 商家 | 13800000004 | 名下「李记烧烤」待审核,演示审核流程 |
3. Flutter 三端
装好 Flutter SDK 后直接跑(平台目录已入库):
cd apps/user_app && flutter run
# merchant_app、rider_app 同理
- iOS 模拟器直连
http://127.0.0.1:8000 - Android 模拟器加
--dart-define=SUPERZ_API=http://10.0.2.2:8000 - 真机换成电脑的局域网 IP
4. 走一遍完整流程
- 用户端:金刚区「点外卖」→ 选品类 → 「张记面馆」加菜 → 支付(模拟一键完成)
- 商家端:新订单响铃 → 接单 → 出餐完成
- 骑手端:上线 → 抢单 → 取餐 → 送达
- 用户端:确认收货,订单完成。点开「钱去哪了」看这一单的分账
5. 改完代码跑什么
make unit # 纯函数单测,秒级
make analyze # Dart 静态检查 + 三端 Dart 单测 + 各 web tsc + 小程序测试
make test # 近 200 套 e2e,跑在真实 HTTP 接口上(需要服务已启动)
make test 的前置条件写在 Makefile 注释里(服务端要用 AUTO_FLOW_ENABLED=false 启动等),少一个都跑不完。e2e 清单在 server/tests/e2e_suites.txt,新写的要加进去,单测会拦漏加的。CI 把这份清单按实测耗时分成 4 组并行跑,每组一个干净库,套件之间不能互相依赖数据。
CI 对每个 PR 跑同样的三件事:服务端 e2e(起真 PostGIS/Redis/MinIO,和生产同一条代码路径)、三端静态检查与 Dart 单测、工作区与全历史的密钥扫描。配置在 .github/workflows/ci.yml,里面的注释解释了每个不显然的选择。
代码结构
chaojizan/
├── apps/
│ ├── user_app/ # 用户端(Flutter):消息、视频、小程序;外卖、团购、酒店、跑腿
│ ├── merchant_app/ # 商家端(Flutter):接单出餐、菜品、对账、营销、打印
│ └── rider_app/ # 骑手端(Flutter):抢单、导航、钱包、实名认证
├── packages/shared/ # 三端共享:模型、API 客户端、登录/开屏/推送/地图
├── packages/miniapp-sdk/ # 小程序 SDK(sz-webapp.js)
├── server/ # 后端(FastAPI + PostgreSQL/PostGIS + Redis)
│ └── app/
│ ├── state_machine.py # 订单状态机(所有状态变更的唯一入口)
│ ├── services/ # 结算/审计/账本锚点/风控/营销/定价……
│ └── routers/ # 业务路由 + 公开数据(screen/transparency)
├── web/ # 官网 + 运营大屏 + 透明中心 + 开发者文档(React + Vite)
├── merchant-web/ # 商家网页工作台(React+TS+AntD):外卖接单/菜品批量、酒店房态
├── admin-web/ # 平台后台(React+TS+AntD):审核、仲裁、社区治理、平台开关
├── developer-web/ # 开发者后台:小程序 / 小游戏 / 机器人的发布与管理
├── miniapps/ # 官方小程序和小游戏源码 + 最小模板
├── mcp-server/ # AI 助手的 MCP 服务(只用 Python 标准库)
├── witness/ # 社区见证节点脚本(任何人可跑,复算公开账本)
├── docs/ # 开发提示词、结构设计、运维手册
└── deploy/ # 生产部署(compose 全栈:api/nginx/frpc)
docs/DEV-PROMPTS-*.md 是这个项目的决策记录:每批功能动手前先写清楚调研结论、要守的边界、不做什么以及为什么。比 commit 信息完整,想看「为什么是这个设计」可以从 docs/INDEX.md 进。
订单状态流:待支付 → 待接单 → 制作中 → 待取餐 → 配送中 → 已送达 → 已完成。骑手在「制作中/待取餐」阶段抢单,每次流转写入 order_events 审计表。
一些设计决定
每条都给了代码坐标,不用信描述,可以直接去读实现(行号会漂移,对不上时按函数名搜):
- 金额一律用「分」存整数,杜绝浮点误差 ——
server/app/models.py的Dish.price_cents,订单侧Order.*_cents同理 - 状态机集中管控:非法流转直接 409,每次变更写审计表 —— 唯一入口
server/app/state_machine.py的assert_transition(),审计表order_events - 账本只追加不修改:冲账 = 追加负数行;每日核账恒等式,篡改 1 分钱会被抓出来 —— 铁律写在
models.py的RiderEarning文档里,冲账在services/settlement.py的reverse_merchant_earning() - 防超卖、防双花、抢单防冲突:一律用数据库条件 UPDATE,并发安全在存储层保证 —— 抢单
routers/riders.py的grab_order(),库存扣减routers/orders.py,提现行锁request_withdrawal() - 支付幂等:模拟支付与微信回调走同一个入账函数,联调只换通道不换逻辑 ——
services/payment_core.py的mark_order_paid() - 快照优于重算:凡是要当证据或当钱的(配送费拆分、申诉证据),一律在下单/送达当时存快照 —— 设计理由写在
models.py的Order.fee_parts字段上 - 样本不足就说不足:分位数、热力图这类统计,低于门槛不给数字只给样本数 ——
services/drop_time.py的MIN_SAMPLE = 20,热力图每格带enough标记
参与
- 提 issue / PR 前请读 CONTRIBUTING.md,提交走 Conventional Commits
- 安全漏洞不要走公开 issue,报告方式与威胁模型见 SECURITY.md
- 任何提交前跑
scripts/security_scan.sh .(仓库公开,密钥与内网信息零容忍) - 跑一个见证节点复算我们的账本;再进一步,照 docs/LEDGER-SPEC.md 用你的语言写个独立验证器
- 想把它部署到你的城市:开城手册
几个常被问到的
没有补贴,冷启动怎么办?
死亡螺旋怕的是每单倒贴钱:补贴一停人就走,不停钱就烧完。我们不补贴,也不打算跟大平台抢全国的量。一个城市一个月的固定开销一百多块,单少只是长得慢,不会被拖死。起步也不需要三边凑齐:消息、视频、小程序不靠商家和骑手的密度,用户有别的理由先用起来;外卖先找自带熟客的小店,一份 21 块的菜别的平台扣 4 块多,这里扣 1.05;骑手不够的地方先用到店自取和商家自配送。
这不也是抽成吗,只是多少的区别?
是抽成。区别不只在多少:5% 封顶写在这里,能降就降;收入只有上面那几笔,不卖数据、不收推广费、不抽配送费;平台自己的收支按月公开,结余不分红;代码开源,账算得对不对谁都能核。
公平、公正、公开具体指什么?
公开:每一单的钱怎么分,顾客在订单页看得到;平台账目串成哈希链,谁都能跑见证节点复算;线上跑的版本就是本仓库的 tag。公平:店铺排序不卖钱,小程序目录的排序是一段公开的纯函数;信用分只算平台判定成立、能申诉的事,接单之后才给这一单的交易对方看,不用来派单和定价。公正:判了责任、处罚了人都能申诉;判责规则、处置统计、管理员查看私聊的次数,都在透明中心公示。
接下来
底座先修好,业务一个一个接上去。
底座
- 账号与实名、消息、视频、小程序开放平台、公开账本与见证节点、信用分、用户端网页版与电脑版(随下一版发布)
- 微信支付正式商户号联调 —— 服务商资质 2026-08 已到位,收款链路代码就位,客户端 SDK 待接
- 分账自动化(货款直达商家、不经平台沉淀)—— 卡在一个必须先问微信的问题:我们属于「普通服务商」还是「电商平台服务商」,两套进件与分账 API 不通用
- iOS 版
- 逐城开城:开城清单运营 + 城市骑手/商家招募
生活服务
- 外卖、到店团购与排队、酒店住宿、跑腿代购都在运营中,收费见上面的表
- 外卖正在做的:场景难度进 ETA 补时(等送达段数据攒够,只补时不加价)
- 明确不做:爆单预警与单量预测、派单分、服务分、骑手等级、拿来处罚的违规积分、付费排名、平台补贴烧钱
出行
- 打车筹备中:司机不被抽走三成车费,计价规则公开,账目同一套透明框架
以后接进来的行当
凡是抽成高、账目不透明的行当,都可以接到这套底座上,用「低抽成 + 账目公开 + 代码开源」重做一遍:家政(阿姨的钱不过中介的手)、维修(明码标价,不搞小病大修)、货运(不收会员费,不用算法压价)、零工(日结工资一分不被中介截)。
这套代码 AGPL 开源,任何人可以拿它在任何城市部署一个不吸血的平台。它能跑通,就会有人跟着做。
开发日志
已交付能力全记录(点开)
- MVP 全链路:下单 → 支付 → 接单 → 配送 → 完成;订单状态机 + 审计表
- 商家入驻审核(食品经营许可证必填)、骑手实名认证(未认证不得上线抢单)
- 配送费按距离计价、商家营业时间自动开关店、超时自动流转(关单/取消/自动确认)
- 评价体系(一单一评,差评不删,刷评只标记不隐藏)、用户主动售后、客服工单
- 商家实时听单(WebSocket + 锁屏语音播报)、云打印、店员账号、KDS 出餐看板
- 骑手钱包与提现(行锁防双花)、商家对账(日账单恒等)、阶梯佣金自动降档
- 到店团购券(核销才收 2%,未核销全额退)、拼单、店铺券/满减/限时折扣(商家承担)
- 反作弊闭环(标记不拦截、分级处置可申诉)、食安投诉、深夜保护、极端天气停运
- 公开账本哈希链 + 社区见证节点 + 每日账务自检(凌晨核对近 30 天每一笔)
- 官网 + 全国运营大屏 + 透明中心(核账/佣金去向/赔付/财报/治理留痕/可用率)
- 外卖 23 品类体系(二级品类页)、开屏运营位(后台可配,不阻塞冷启动)
- 三端品牌开屏、亮暗双主题、长辈版字号
- 微信支付 V3 / 极光推送骨架就位(填 Key 即联调);短信验证码已接阿里云
- 生产部署:内网穿透全栈自持(compose:api/nginx/frpc),证书自动续期,每日备份 + 恢复演练
- 连锁店群:门店切换(X-Shop-Id)、品牌成员授权、总部统一下发营销、多门店合并对账
- 商家合规台账:证照有效期与到期提醒、从业人员健康证、进货查验(溯源)、菜品成本与毛利
- 商家效率:菜单批量导入、定时改价/上下架、多台云打印机、订单回调对接自家收银 ERP、蓝牙小票机直连
- 骑手权益:到店等餐时长记录、申诉通道、楼层补时、消息中心、接单偏好、同店批量取餐、周报、新手保护期、意见反馈(平台必须回复)
- 配送费透明:构成拆分存快照跟着订单走,四端可见;上门难度费顾客自选
- 消息:私聊、群、频道、贴纸、语音、1 对 1 语音/视频通话(开关控制)、订单一单一个群、服务号、机器人平台、社区治理、导出我的数据、超级赞号、标签与勋章、信用分
- 视频:投稿与转码、弹幕、评论、收藏、投币、UP 主空间、推荐与搜索、视频挂店
- 小程序开放平台:开发者注册开放、托管不可变版本、审核与申诉、initData 验签、云存储、小游戏
- AI 助手(MCP):令牌分权限,每项一张全匹配白名单,付款和审核永远在人手里
- 用户端网页版与电脑版:扫码登录、一键登录(手机确认),已登录的网页和电脑可以随时移除
许可
AGPL-3.0。拿去用,拿去改,但改完要还给群众。
Installing Chaojizan
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/hanpaopao66/chaojizanFAQ
Is Chaojizan MCP free?
Yes, Chaojizan MCP is free — one-click install via Unyly at no cost.
Does Chaojizan need an API key?
No, Chaojizan runs without API keys or environment variables.
Is Chaojizan hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Chaojizan in Claude Desktop, Claude Code or Cursor?
Open Chaojizan on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Chaojizan with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
