Skip to content

沉思波应用开放平台 ​

让青年创业者用 AI 开发应用,由平台提供运行所需的基础服务。

第一版提供应用空间、逻辑数据表与增删改查、小额度私有文件、静态产物发布和应用展示审核。数据空间不是独立数据库实例;目前不运行开发者上传的任意后端代码。

登录后创建应用。内测到 2026-11-14:每人 20 个应用,每应用 20 张表、5000 条记录、5MB 私有文件。之后回到 3 个应用、10 张表、1000 条记录。访客在自己的应用里注册登录。商品、帖子、订单这些完整记录,都写进平台的数据表。

我的应用

应用广场

进入完整应用广场与作品详情 →

暂无审核通过的应用,欢迎提交第一个真实作品。

管理员展示审核

需网站管理员身份;普通CLI权限不包含审核。

开放平台技能包(opc-skill) ​

🤖 AI 技能包已开放(开源 MIT)

仓库:cnb.cool/chensibo/opc-skill。 装好技能,你的 AI 助手就会:建应用 → 发布静态站 → 拿你自选的子域(你的前缀.apps.chensibo.cn)→ 用平台数据后端存数据 → 提交审核公开。

新手引导(复制这段话,发给任意 AI 助手——Claude / CodeBuddy / Cursor 都行):

text
请帮我安装并启用「沉思波开放平台」技能:
1. 运行:npx skills add https://cnb.cool/chensibo/opc-skill.git -g -y
2. 装好后告诉我你能帮我做什么(上线网站 / 自选子域 / 数据后端)
以后我只要说「用沉思波把 XX 上线」,你就按技能流程代办。

装这一次以后,带上「沉思波」名号就能快速使唤:「用沉思波把我的报名工具上线」「沉思波给我的页面换个苹果风格」——AI 按技能规范代办到底。

老手(一条命令 + 直调 API):

bash
npx skills add https://cnb.cool/chensibo/opc-skill.git -g -y

装完技能即含全端点详表(含配额与红线),配合下方 CLI 或 curl 直接干,不用看长文档。

新手(对 AI 说一句话):

「帮我把这个 demo 上线沉思波,子域前缀用 mydemo。」

AI 会按技能流程代办:登录授权 → 建应用 → 发布 → 回你一个可访问的子域;做出来的界面没「人味儿」,让它调 opc-styles 选个风格(143 种,每种带 AI 实现规则)重做一遍。

触发速查:

你是谁怎么触发
老手npx skills add … -g -y 安装后,技能常驻 AI 助手;或 CLI:csb app create/list/rows…
新手装技能后对 AI 说一句话;或打开控制台开发者后台(#/apps)网页点着走
没装技能也可以直接照本页下方「开发者上手」的 CLI / API 步骤手动走

开发者上手 ​

CLI 0.8.6 已包含 app 命令,旧版先更新。可安装随包的 chensibo-app Skill,由助手按开发说明操作。

bash
csb login --no-browser --scope apps:read,apps:manage,apps:data,apps:files,apps:deploy
csb login complete
csb app create ./app.json
csb app list

app.json:

json
{"name":"我的报名应用","description":"最小活动报名示例"}

创建逻辑表,table.json 为 {"name":"entries","policy":"user"}:

bash
csb app table-create 应用ID ./table.json
csb app rows 应用ID entries
csb app row-add 应用ID entries ./record.json
csb app row-update 应用ID entries 记录ID ./record.json
csb app row-delete 应用ID entries 记录ID confirm
csb app rows-export 应用ID entries ./backup.json
csb app rows-import 应用ID entries ./backup.json
csb app file-put 应用ID ./guide.pdf
csb app files 应用ID
csb app file-get 应用ID 文件ID ./guide.pdf
csb app file-delete 应用ID 文件ID confirm

记录文件是普通JSON对象。所有数据访问都由服务端核对身份、应用、表策略及记录归属。所有者管理全表;user策略下普通登录用户只能读写自己的记录;private仅所有者可访问。公开表经应用审核通过后才启用匿名读取。

数据读取支持 limit/offset 分页(每页最多100条,返回含 total),并支持过滤与排序:?done=eq.false&views=gte.100&title=like.周&order=created_at.desc。操作符有 eq / neq / gt / gte / lt / lte / like / in / is;字段名只能是字母、数字、下划线,值一律参数化,不会被拼进 SQL。rows-export 自动翻页导出全表,rows-import 批量写回(受写限频约20条/分钟,CLI 自动等待重试)。整库备份/恢复推荐文件通道:file-put 上传 JSON 备份(支持 txt/png/jpg/pdf/json,单文件256KB),file-get 读回。

命令与权限对照 ​

--scope 按需申请;缺少权限时命令会提示「缺少权限」,补申请即可,令牌本身不用换。

命令所需 scope
app list、tables、files、domainsapps:read
app create、table-create、domain-add、domain-verify、domain-delete、submit、withdrawapps:manage
app rows、row-add、row-update、row-delete、rows-export、rows-import、session、session-revokeapps:data
app file-put、file-get、file-deleteapps:files
app deploy、rollbackapps:deploy
app gallery无需登录

apps:submit 不是有效 scope,submit/withdraw 走 apps:manage。运行 csb --help 可查看每个 app 子命令标注的权限;权限不足重新申请用 csb login --no-browser --scope <所需权限>。

应用数据接口 ​

  • GET/POST /api/platform/apps/:id/tables/:name/rows
  • PATCH/DELETE /api/platform/apps/:id/tables/:name/rows/:rowId
  • GET /api/platform/public/apps/:id/tables/:name/rows:仅已审核应用的公开表,最多100条。
  • POST /api/platform/apps/:id/session:用可信登录身份生成1小时的本应用数据令牌;POST .../session/revoke撤销本人的应用会话。

不要把公司登录JWT、CLI管理令牌或数据库口令放进前端代码。应用会话令牌只作用于对应应用数据接口,不用于创建应用、发布或管理文件。前端登录授权组件与SDK仍需集成,不声称已一键打通;外部域名的CORS也需要逐应用验证和配置,不能直接开放所有来源。

前端构建、发布与回滚 ​

bash
# 用你的前端框架先构建静态产物
csb app deploy 应用ID ./dist
csb app rollback 应用ID 版本号
csb app submit 应用ID
csb app gallery

支持HTML/CSS/JS及约定静态资源,根目录需有index.html;最大5MB、200文件、单文件512KB。发布复用OPC的版本目录与回滚,不上传.env、node_modules或服务端源码。

发布成功后可提交展示审核,审核通过并存在有效产物时,广场提供受限沙箱预览。预览响应禁止同源身份访问;应用需使用相对静态资源路径(例如Vite的base设为./)。

发布接口成功仍不代表自定义域名已可用。 返回的 /sites/<slug>/ 路径需要现有托管反代配置;正式开放前应使用独立应用域名隔离官网身份和Cookie。首期不自动改DNS、不自动绑定自定义域名或申请证书,不能将客户应用放在官网可信域后就视为完成安全隔离。

文件与额度 ​

文件暂存数据库,支持私有读取、删除,单文件256KB、每应用总5MB。下载接口 GET /api/platform/apps/:id/files/:fileId 需要所有者的相应权限,按附件下载,不公开执行;不是外部存储桶服务。

明确未提供的能力 ​

独立数据库实例、无限额度、开发者云函数、SSR、支付业务逻辑、自定义域名自动化、计费系统和生产可用性承诺尚未提供。活动和应用比赛可以先使用审核后的展示与测试流程,正式公开运行前仍需完善安全、内容、用户数据与运维安排。

开发Skill源码在 chensibo-skill/skills/chensibo-app/。课程和Skill帮助开发,CLI执行操作,平台负责权限检查,不让用户直接拿到服务器或数据库管理员密码。

域名申请与管理 ​

bash
csb app domain-add <应用ID> app.example.com
csb app domains <应用ID>
csb app domain-verify <应用ID> <域名申请ID>
csb app domain-delete <应用ID> <域名申请ID> confirm

按照返回值在域名服务商添加 _csb-verify.你的域名 的 TXT 记录后验证。自有域名的解析目标以域名列表接口返回的 originIP / cnameTarget 为准(平台迁移过服务器,不要抄文档里的固定 IP);移除其他指向的AAAA记录并关闭DNS代理。域名验证通过且管理员批准后,平台自动申请证书并配置HTTPS;查询serving_state,online才代表开通完成。失败可由管理员重试或解绑,不会修改域名服务商的DNS记录。

公司管理员通过应用与记忆管理查看资源用量、审核广场、暂停或恢复应用、审批域名和撤销CLI授权。所有管理变更与记录在同一数据库事务中保存。暂停会关闭平台数据接口、发布及沙箱预览,并清除应用会话;平台自动生成的域名路由也在每次访问时检查应用状态,暂停或解绑立即阻断内容。其他历史托管入口仍需单独处理。

平台默认地址 ​

每个应用自动获得 app-<应用UUID去掉连字符>.apps.chensibo.cn 地址,创建响应中的 defaultHostname 可直接交给AI助手。用户不需要添加TXT或购买域名。发布静态文件并提交应用审核,通过后自动申请证书、配置路由;在域名列表查看开通状态。服务器端任务会检查DNS、站点冲突和HTTPS连接,失败时保留原有配置。证书由现有续期服务维护。

浏览器直接接入(csb.js,零依赖) ​

不用装任何东西,一行 script 就能读写自己的数据:

html
<script src="https://chensibo.cn/apps/csb.js"></script>
<script>
  csb.init('你的应用ID')

  const { rows, total } = await csb.from('notes').select({
    where: { done: 'eq.false' },
    order: 'created_at.desc',
    limit: 20
  })
  await csb.from('notes').insert({ title: '周会', done: false })
</script>

方法一览 ​

方法作用
csb.from(表名).select({ where, order, limit, offset })查列表,返回 { rows, total, limit, offset }
.find(id)按 id 取一条
.insert(对象)写一条,返回新记录
.update(id, 对象)改一条(整对象覆盖,局部更新请先 find 再合并)
.remove(id)删一条
.count(where)只取总数
csb.files.upload(File) / .list() / .blobUrl(id) / .remove(id)文件读写(txt/png/jpg/pdf/json,单文件 ≤256KB)
csb.session()换一个 1 小时的应用会话令牌(已登录时才有意义)

查询条件怎么写 ​

想做的事写法
等于{ done: 'eq.false' } 或 { done: false }
不等于{ status: 'neq.draft' }
数值比较{ views: 'gte.100' }、{ price: 'lt.9.9' }
包含文字{ title: 'like.周' }
多值之一{ tag: ['a', 'b', 'c'] } → in.(a,b,c)
空值 / 非空{ cover: 'is.null' }、{ cover: 'is.notnull' }
排序order: 'views.desc',可多级 'done.asc,created_at.desc'

字段名只能是字母、数字、下划线;值一律参数化进 SQL,不会被注入。

身份怎么来的 ​

场景身份来源读取走哪个口
我们的控制台 / 预览地址(同源)自动带站点登录态 csb_token应用口,受表策略约束
未登录访客无公开只读口(表策略必须是 public)
自定义域名部署csb.configure({ apiBase: 'https://chensibo.cn', token: '…' })应用口

上线路径 ​

浏览器里能跑 ≠ 公网能访问。顺序是:csb app deploy 发布静态产物 → 控制台提交审核 → 通过后用平台默认地址访问 → 需要自有域名再加域名申请。发布接口成功不代表域名已可用。

让 AI 直接写出能跑的代码(提示词底座) ​

把下面这一整段复制给任意 AI(Cursor / Claude / ChatGPT / 豆包都行),后面接一句需求即可,例如「做一个留言板」「做一个活动报名表」。开新对话又要重贴很烦?见下一节把它装进你的 AI。

text
# 为沉思波应用后端写代码

你是一位擅长原生 JavaScript 与 Web 标准的前端工程师。请生成能在沉思波应用后端直接跑起来的代码,遵守下列约定。

## 硬性约定

1. 不要引入构建工具或框架。只用原生 HTML / CSS / JavaScript(可选用 CDN 的 <script>)。用户复制粘贴就要能用,不是要跑 npm install。
2. 不要自己实现登录。身份来自页面已有的登录态;需要令牌时读 localStorage.getItem('csb_token'),不要发明新的登录流程。
3. 所有数据读写都走 csb.js SDK,不要直连数据库、不要写 SQL。
   引入方式:<script src="https://chensibo.cn/apps/csb.js"></script>
4. 初始化固定写法:csb.init('APP_ID'),其中 APP_ID 用常量定义在文件顶部并标注「请替换成你的应用ID」。
5. 读取:await csb.from('表名').select({ where: {...}, order: 'created_at.desc', limit: 20 })
   写入:await csb.from('表名').insert({...})
   修改:await csb.from('表名').update(id, {...})
   删除:await csb.from('表名').remove(id)
6. 表名规则:2–32 位,小写字母开头,只能含小写字母、数字、下划线、连字符。
7. 查询条件是「操作符.值」字符串:eq / neq / gt / gte / lt / lte / like / in / is。不写操作符时默认 eq。
8. 错误处理:所有请求必须 try/catch,非 2xx 时把 error.message 展示给用户,不要吞掉、不要只 console.log。
9. 列表必须分页(默认 20,上限 100),不要一次拉全量。
10. 文件上传只用 csb.files.upload(file),支持 txt / png / jpg / pdf / json,单文件 ≤256KB;不要自己拼 base64 请求。
11. 只做纯前端:允许 html/css/js/json/svg/png/jpg/webp/woff2/txt/xml/ico,不要写服务端代码、不要假设有环境变量。
12. 界面用中文;不用 emoji 当信息载体;空态必须有标题和下一步动作;删除等破坏性操作要二次确认。
13. 代码两空格缩进,函数保持小;能一次讲清就别拆文件。

## 交付格式

- 先给文件清单(路径 + 一句话作用)
- 再逐个文件给完整代码(不要省略号、不要「其余同上」)
- 最后给「怎么验证它跑通了」的三步操作

可以直接点单的模板 ​

需求涉及的表与字段(建议)
留言板messages:name、content、created_at
活动报名signups:name、phone、note、created_at
作品展示站works:title、cover、desc、link、order
班级通讯录contacts:name、role、phone、note
记账本entries:amount、category、date、note
需求收集箱requests:title、detail、priority、done

在线编辑:改一行字不用回本地 ​

「静态托管」页有草稿区。点文件名就能在浏览器里改,保存写进草稿,点发布草稿才生成新版本上线——改坏了不点发布就等于没改,想推翻就点放弃改动。

草稿区第一次打开时会从当前线上版本复制一份,所以你看到的就是真实在跑的代码,不是空模板。发布历史照旧可回滚。

同一套文件接口也对 AI 开放,认证走网页端授权:

① AI 申请设备码   POST /api/cli-auth/device   {scopes:["apps:read","apps:deploy"]}
② 你打开网页确认   https://chensibo.cn/cli-authorize.html?code=<user_code>
③ AI 换令牌       POST /api/cli-auth/token    {device_code}
④ 之后 AI 就能    GET …/site/tree · GET …/site/file?path= · PUT …/site/file · POST …/site/publish

也就是说,你可以直接说「把首页标题改成八月账本」,让 AI 自己读文件、精确改那一行、发布新版本——不用下载、改完再上传。令牌 30 天有效,随时能在授权页撤销;我们只授予你确认过的范围。

装进你的 AI(技能文件) ​

上面那段提示词是「一次性」的:每次开新对话都要重贴。如果你的 AI 支持技能/规则,装一次就长期有效:

  • 下载:沉思波应用-技能.md(约 9 千字,含完整接口契约与一个能跑的样例)
  • Claude Code / Codex 一类的技能目录:把文件存成 ~/.claude/skills/chensibo-app/SKILL.md,之后说「用 chensibo-app 做一个报名表」即可。
  • Cursor:把内容放进项目的 .cursor/rules/chensibo-app.mdc。
  • 豆包 / ChatGPT / 任意对话:整份贴进去,末尾接一句需求。

零基础用户不用自己填应用 ID:控制台 #/apps → 概览 → 「连应用 ID 复制给 AI」,复制走的就是这份文件,__APP_ID__ 已被替换成你当前的应用。粘给 AI 说一句「做一个留言板」,它写出来的代码直接能传。

技能文件里写死了一条边界:不许用「把密钥写进前端」绕过没有服务端的限制。遇到支付、发信、调第三方密钥这类需求,它会老实告诉你需要人工评估,而不是给你一段跑不通的代码。

托管与售后 ​

数据、文件、静态产物、发布历史都在我们这边,版本可回滚。遇到自己解决不了的问题,去控制台的我的工单提交——从「我的应用 → 概览」页点「遇到问题?提工单」也可以,会自动带上当前应用。

提单时请写清三件事:你在做什么、看到什么、期望是什么。因为应用托管在我们这边,我们能看到服务端日志、发布记录和版本快照,不需要你提供服务器信息或截图环境。答复会出现在「我的工单」里,同时发一条站内消息,不会让你干等。需要代为迭代、定时维护或做版本部署时,也在工单里写明范围。

最后更新:

本页讨论

0 条评论

还没有评论,来说第一句。

0/2000 · Ctrl + Enter 发布