For makers & developers写给极客和开发者

An agent that can
build its own body.
一个能给自己
造身体的 Agent。

Same box, no training wheels. You get root, an open protocol for peripherals, open connectors for your messaging platforms and open reference hardware, so the agent (or you) can design, print and flash a new device over a weekend.同一台盒子,但把辅助轮拆掉:root 权限、开放的外设协议、开源的消息连接器、开源的参考硬件。一个周末,Agent(或者你自己)就能设计、打印、烧录出一个新外设。

Transparent hub, ESP32 board and a 3D printer printing a cat-shaped pod

Concept render (AI-generated): transparent maker edition, ESP32 Pod board, printer at work.概念图(AI 生成):透明极客版主机、ESP32 Pod 主板、正在打印的外壳。

A story · Friday, 23:10一个故事 · 周五 23:10

"I just want to know when the build breaks."“我只想知道构建什么时候挂了。”

Ray maintains a small open-source library. Every night the CI runs, and every morning he opens his laptop to find out whether it broke. Notifications are useless: they sit among forty other ones.阿哲维护着一个小开源库。CI 每晚跑一次,他每天早上都得打开电脑才知道挂没挂。推送通知没用,它总是淹没在另外四十条通知里。

So on Friday night he types one line to the box on his shelf:于是周五晚上,他对书架上的那个盒子打了一句话:

Make me a little cat that sits on my desk. Ears glow red if last night's CI failed, green if it passed. Press its head to rerun.给我做只小猫放桌上。昨晚 CI 挂了耳朵亮红灯,过了亮绿灯。按一下脑袋就重跑。
CtenoPlan: ESP32-S3 Pod board, 2 RGB LEDs, 1 button, coin cell. I'll write firmware on the Pod protocol, generate a cat shell in OpenSCAD, slice it for your printer, and wire it to your repo's CI. Printing takes about 2h40m. Approve the print?方案:ESP32-S3 Pod 主板、2 颗 RGB 灯、1 个按键、纽扣电池。我按 Pod 协议写固件,用 OpenSCAD 生成猫形外壳,给你的打印机切片,再接上仓库的 CI。打印大约 2 小时 40 分。开始打印吗?
Approve开始

What happened overnight这一夜发生了什么

  1. 23:14Writes a parametric cat shell (OpenSCAD), leaving a slot for the Pod board and a hole for the button.写好参数化猫形外壳(OpenSCAD),给主板留槽,给按键留孔。
  2. 23:20Slices it and sends it to the printer over the LAN. Progress shows on the status lamp.切片,局域网发给打印机。打印进度显示在状态灯上。
  3. 23:31Generates the firmware: two output events (led.set), one input event (button.press). Builds and waits for USB.生成固件:两个下行事件(led.set),一个上行事件(button.press)。编译好,等 USB 插上。
  4. 23:40Adds a webhook for the CI and a rule: failed → red, passed → green, button → rerun (asks first if it's a release branch).接上 CI 的 webhook,写好规则:失败亮红,成功亮绿,按键重跑(发版分支先问一句)。
  5. 02:02Print done. Leaves a note: "Plug the board in, I'll flash it."打印完成,留言:“把板子插上,我来烧。”

Saturday morning, Ray drops the board in, snaps the shell shut, plugs in USB. Thirty seconds later the ears glow green.周六早上,阿哲把板子塞进去、扣上外壳、插上 USB。三十秒后,猫耳朵亮起了绿灯。

He hasn't opened his laptop before breakfast since.从那以后,他再也没在早饭前打开过电脑。

A peripheral used to be a product someone else had to ship. Now it's something you ask for on Friday and use on Saturday.过去,一个外设是别人要量产、要上架的产品;现在,它是你周五提出来、周六就能用上的东西。

Open hardware开源硬件

One board. Any shell.一块主板,任何外壳。

Every Cteno peripheral (the family Flag, the office knob, Ray's cat) runs on the same small reference board. Only the shell and a few parts change. We publish all of it:Cteno 的每一个外设,家庭的小旗、办公桌上的旋钮、阿哲的猫,用的都是同一块小参考板,变的只是外壳和几个元件。这些我们都公开:

  • Schematics & PCB: ESP32-S3, Wi-Fi + BLE, audio, battery. KiCad files.原理图和 PCB:ESP32-S3、Wi-Fi + 蓝牙、音频、电池,KiCad 源文件。
  • Shells: STEP + parametric OpenSCAD, printable on hobby printers.外壳:STEP 加参数化 OpenSCAD,家用打印机就能打。
  • Firmware: the Pod SDK. Declare your buttons, lights and sensors; the protocol does the rest.固件:Pod SDK。声明你有哪些按键、灯、传感器,剩下的交给协议。
Exploded Pod: shell, button, speaker, ESP32-S3 board, battery; interchangeable shells
Open protocol开放协议

The Pod protocol: small, boring, documented.Pod 协议:小、朴素、有文档。

A Pod pairs once over BLE, then talks to the hub over your Wi-Fi. It sends up what happened (a press, a phrase, a photo) and receives what to show (a light, a sound, a face, a line of e-ink). No reasoning runs on the Pod; it doesn't need to be clever. It just needs to be understood.Pod 用蓝牙配对一次,之后走家里的 Wi-Fi 跟主机说话。它往上报“发生了什么”(按了一下、说了一句、拍了一张),往下收“要显示什么”(一盏灯、一个声音、一个表情、一行墨水屏字)。Pod 上不跑推理,它不需要聪明,只需要能被理解。

// Pod → Hub (uplink) { "pod": "cat-01", "event": "button.press", "data": { "id": "head", "hold_ms": 120 } } { "pod": "flag-01", "event": "voice.clip", "data": { "codec": "opus", "ref": "blob://…" } } // Hub → Pod (downlink) { "to": "cat-01", "cmd": "led.set", "data": { "id": "ears", "rgb": "#2ecc71", "pattern": "breathe" } } { "to": "flag-01", "cmd": "servo.set", "data": { "position": "up" } } // Capabilities are declared once at pairing; the agent reads them as tools.

Draft (pod/v0). Field names will change before 1.0; the shape won't.草案(pod/v0)。1.0 之前字段名还会调整,整体结构不变。

Open connectors开源连接器

Talk to it from wherever you already are.在你本来就在的地方跟它说话。

Telegram, Feishu/Lark, DingTalk, WeCom, WhatsApp, WeChat, email. Each one is a connector: a small process that speaks a line-delimited JSON protocol on stdin/stdout. Messages are delivered at least once: the hub only acknowledges an event after it has reached the right session, so a crash never silently eats a message.Telegram、飞书、钉钉、企业微信、WhatsApp、微信、邮件,每一个都是一个连接器:一个小进程,用按行分隔的 JSON 在 stdin/stdout 上说话。消息至少送达一次:只有事件真正进了对应的会话,主机才会回确认,所以进程崩了也不会悄悄吞掉消息。

# hub → connector {"type":"reconcile", "instances":[…]} {"type":"ack_event", "deliveryId":"d-81", "ok":true} # connector → hub {"type":"ready"} {"type":"health", …} {"type":"event", "deliveryId":"d-81", "raw":{…}}

Want Matrix, Signal or your company's chat? Write a connector in any language, declare it in a plugin manifest, and the hub runs, supervises and restarts it. Credentials stay in the hub's vault; the agent only ever sees a secret:// reference, never the value.想接 Matrix、Signal 或者公司自己的聊天工具?用任何语言写一个连接器,在插件清单里声明一下,主机负责拉起、看护、重启。凭据放在主机的保险箱里,Agent 只看得到 secret:// 引用,看不到明文。

What's open, and when哪些开放,什么时候开放

At campaign launch众筹上线时

Pod protocol specPod 协议规范

Events, capabilities, pairing, OTA. Public spec + test vectors.事件、能力声明、配对、OTA。公开规范和测试用例。

At campaign launch众筹上线时

Reference Pod hardwarePod 参考硬件

KiCad schematics/PCB, shell CAD, BOM, Pod firmware SDK.KiCad 原理图和 PCB、外壳 CAD、BOM、Pod 固件 SDK。

At campaign launch众筹上线时

Connector SDK & drivers连接器 SDK 与驱动

The connector contract, the NDJSON protocol and the official platform drivers.连接器契约、NDJSON 协议和官方平台驱动。

Standard标准协议

MCP & skillsMCP 与技能

Plug in any MCP server; write skills as plain Markdown. Project-level config overrides global.接任意 MCP 服务;技能就是普通 Markdown。项目配置覆盖全局配置。

Licenses will be announced with the campaign. The agent runtime itself is not open source today; everything you need to extend it is.许可证随众筹一起公布。Agent 运行时本身目前不开源;但扩展它所需要的一切都开放。

The box, for people who read spec sheets给爱看参数表的人

Maker edition (concept)极客版(方案)
Compute算力Intel N150 (x86), 8 GB RAM, 128 GB+ NVMe. No NPU, because reasoning runs on cloud models.Intel N150(x86),8GB 内存,128GB+ NVMe。不带 NPU,推理跑在云端模型上。
OS系统Ubuntu 24.04 LTS. Root/SSH, your machine. A real browser engine on board for web automation.Ubuntu 24.04 LTS,root/SSH 随便用,机器是你的。内置真正的浏览器引擎做网页自动化。
Models模型Our plan, or bring your own API key. Works without a Cteno account in local mode.用我们的套餐,或者自带 API Key。不登录 Cteno 账号也能在本地模式下运行。
Radios无线Wi-Fi 6 · Bluetooth 5.x · 2.5GbE
Audit审计Every session is an append-only JSONL ledger on disk. grep it, diff it, replay it.每个会话都是磁盘上一份只追加的 JSONL 账本,可以 grep、diff、回放。
Shell外壳Transparent limited edition; the family edition's titanium gray also available.透明限量款;也可选家庭版的钛灰外壳。

Specs are preliminary and will be confirmed after prototype testing.参数为初步方案,以样机实测为准。

What we believe, for makers写给极客的几条信念

You own the box.盒子是你的。

Root, SSH, your own keys, your own models. No account required to run it at home.root、SSH、自己的密钥、自己的模型。在家跑它不需要任何账号。

Protocols over products.协议比产品重要。

We'd rather you build the peripheral we never thought of than buy one more from us.我们宁愿你做出一个我们没想到的外设,也不希望你只是多买一个我们的。

Every step leaves a trace.每一步都留痕。

Trust the agent the way you trust CI: by reading the log, not by watching it run.像信任 CI 一样信任 Agent:看日志,而不是盯着它跑。

Dangerous actions ask first.危险操作先问你。

Release branches, payments and messages to strangers always wait for a human, even in YOLO mode.发版分支、付款、给陌生人发消息,一律等人确认,哪怕你开了“放手做”模式。

Fewer screens.少一块屏幕。

A glowing ear beats a push notification. The best interface is the one you don't have to open.一只会发光的耳朵,胜过一条推送。最好的界面,是你不用打开的那个。

Build in public.公开地造。

We're running the whole campaign in the open, with our own agent. Come and watch it make mistakes.整个众筹我们都用自己的 Agent 公开来跑。欢迎来看它犯错。

Want the dev kit first?想先拿到开发套件?

Tell us what you'd build. The most interesting ideas get early Pod boards.告诉我们你想做什么。最有意思的点子,我们会先寄 Pod 板子。

Email hello@cteno.ai写信到 hello@cteno.ai