
这两天 X 上被 Codex 无限画布改图玩法刷屏了。
说起来也挺有意思,创新此玩法的作者是一位豆包的产品经理,在 Codex 上搭了一个本地无限画布,专门用来做图片批注和精准改图。

AI大佬们实测之后纷纷转发,作者昨天已经把玩法连同无限画布 Codex 插件一起开源了。
开源项目名为:Cowart。
我去 GitHub 扒了一下项目,代码刚放出来不久,目录结构很清爽:.codex-plugin 是插件本体,skills/ 里是 Skill 脚本,src/ 是画布前端,还有一个 mcp/ 目录,用来做 MCP 工具集成。

之所以这个小工具能在短时间内被各路大佬实测分享,核心不是它做了多复杂的事情,而是它戳中了一个非常真实的痛点——在 AI 改图这件事上,聊天框的表达力其实不够。
你要让 AI "把图里这只鸟去掉",说起来简单,但真正操作时,光靠文字描述"哪只鸟、在什么位置、去掉后背景该怎么补",就非常费力。
而 Cowart 选择了另一条路:给 Codex 装一张电子白板,让它在画布里摆材料、画箭头、留版本,自己看。
Cowart 在 GitHub 的自我介绍很简单:面向 Codex 的本地无限画布插件。
它基于 tldraw 做可视化画布,用于构思、标注、生成图片,以及根据标注迭代图片。
画布运行在本地网页服务中,数据默认保存到当前用户项目的 canvas/ 目录,不会上传到插件仓库里。
这段话里有几个关键词,每一个都值得展开说一下。
第一,面向 Codex。它不是一个独立的 AI 画布产品,它的定位是 Codex 的插件。也就是说,它不自己做生图模型,也不自己做视觉理解,而是把画布、图片、标注、版本这些"材料"摆到 Codex 面前,让 Codex 自己去看、自己去操作。
第二,本地无限画布。画布用的是 tldraw,这是一个开源的无限白板框架,之前很多 AI 画板项目都基于它。无限画布的好处是,你可以把原图、标注图、每一代版本平铺在一张桌子上,不用来回切文件。
第三,根据标注迭代图片。这是 Cowart 区别于普通生图工具的核心能力。不是"生成一张新图",而是"基于标注生成新图并放在原图旁边"。原图不会被覆盖,版本链是清晰的。
在聊功能之前,先聊聊问题本身。
现在用 AI 改图,主流路径有两条。
一条是 Lovart 这样的专业画布 AI,界面完整,交互顺,设计资产管理成熟,卖的是 AI Design Partner、Touch Edit、Style Consistency、Text Edit 这些设计工作流。
另一条是在聊天框里写一大串描述,让 GPT Image 或其他模型按文字改图。
两条路径各有各的问题。Lovart 的问题是,它是一个封闭产品,你需要去一个新平台,用它提供的模型和工具链,接受它的定价。
聊天框改图的问题是,空间信息很难塞进文字里——原图在哪、批注在哪、上一版在哪、哪张图才是当前选中版本,这些信息如果都要靠文字描述,会非常啰嗦。
Cowart 的思路是,画布 AI 不一定非得是一个封闭产品。如果 Codex 本来就在你的电脑里,本来就能读项目、跑命令、调用图像模型,再给它一张画布,它就能长出一个低配 Lovart。 而且是本地的、可改的、能接你自己工具链的。
这才是这个小项目被大家盯上的原因。它做的事情本身不大,但它暴露了一个方向:Codex 正在从"回答问题"往"摆弄材料"走。代码、截图、报错、设计稿、标注、箭头、版本、结果,全都可以留在一张桌子上。
画布不是为了好看,它是在帮 Codex 保存空间上下文。
Cowart 的能力可以拆成四个核心模块,我们一个一个说。
在 Codex 的对话里说一句 Open the Cowart canvas for this project.,Cowart 会启动本地服务,默认地址是 http://127.0.0.1:43217/。
画布数据会保存在当前项目目录下的 canvas/pages/<page-id>/ 里,画布本体是一个 cowart-canvas.json,图片资源放在同目录的 assets/ 文件夹中。
这个设计有一个很重要的细节:每个项目的画布是独立的。
你在 A 项目里打开的画布,和在 B 项目里打开的画布,数据是分开存储的。这对于把 Cowart 当成项目工作台来用的场景非常友好。
在画布中创建并选中一个 AI image holder,然后在 Codex 里描述要生成的图片,Codex 会读取选中的 holder,按它的比例生成图片,并插入到 holder 中。
这个流程把"描述需求 → 生成图片 → 放到画布上"串成了一条线。
这是整个项目最"绝"的功能。
你在 Cowart 画布中对图片做标注,画箭头,写一句简单的需求,然后把标注后的图或直接选中标注的图片,让 Codex 根据标注生成干净的新图。
新图会被放到原图旁边,原图和标注不会被删除或移动。
关键在于迭代。你可以选中新版本继续标注,Codex 知道这次要基于"已经去掉鸟"的图继续改,而不是从原图重来。
这就是画布带来的空间上下文——哪张是原图、哪张是 V1、哪张是 V2、当前选中的是哪一张,Codex 看一眼画布就知道了。
Cowart 还提供了 MCP 工具。这意味着 Codex 可以通过标准的工具协议来读取画布中的选择状态、插入图片、保存页面资源到本地目录。
对于熟悉 MCP 生态的用户来说,这打开了很多自定义扩展的可能性。
Cowart 的 Codex 插件里带了三个 Skill,对应三个核心操作:
cowart:cowart-open-canvas:打开 Cowart 本地画布。负责启动本地服务、加载项目画布数据。cowart:cowart-image-gen:把生成的图片插入选中的 AI image holder。负责根据选中 holder 的尺寸比例生成图片。cowart:cowart-image-edit:根据用户提供的 Cowart 标注截图生成修订图。负责读取标注、生成新版、放到原图旁。Skill 体系的设计很克制——每个 Skill 只做一件事,但做完整。
没有搞一堆花哨的辅助 Skill,而是把核心能力做扎实。
把下面这段话发给 Codex:
请从 https://github.com/zhongerxin/cowart.git 安装 Cowart Codex 插件。
请 clone 仓库到 ~/plugins/cowart,确认 .codex-plugin/plugin.json 存在,
把插件加入 personal marketplace,然后运行 codex plugin add cowart@personal。
安装后请校验插件,并告诉我是否需要开启一个新对话来加载新技能和 MCP 工具。Codex 会自己 clone 仓库,检查 plugin.json,加入 personal marketplace,跑安装命令,然后告诉你下一步怎么做。
这对于不想折腾配置的用户来说非常友好。
推荐把插件 clone 到 Codex personal marketplace 默认会引用的位置:
mkdir -p ~/plugins
git clone https://github.com/zhongerxin/cowart.git ~/plugins/cowart
cd ~/plugins/cowart
npm install
npm run build然后确保 ~/.agents/plugins/marketplace.json 中有 Cowart 条目:
{
"name": "personal",
"interface": {
"displayName": "Personal"
},
"plugins": [
{
"name": "cowart",
"source": {
"source": "local",
"path": "./plugins/cowart"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}然后安装插件:
codex plugin add cowart@personal安装后建议开启一个新的 Codex 对话,让新的 Skill 和 MCP 工具完整加载。
第一步:生成原图。 比如:让 GPT Image 生成一张宠物店海报,得到原始图片。
第二步:放入 Cowart 画布。 在 Codex 里说 Open the Cowart canvas for this project.,画布打开后把图片拖进去,或者创建一个 AI image holder 让 Codex 把图塞进去。
第三步:标注并改第一轮。 在画布上画箭头指向图里的小鸟,写一句"去掉这只鸟"。然后把标注截图发给 Codex,或者直接说"按选择图片的最新标注再修改一下"。Codex 会读标注、箭头和当前图片,生成一个新版本,放到原图旁边。
第四步:标注并改第二轮。 选中刚刚生成的 V1 版本,再标注"去掉这只兔子"。Codex 知道这次要基于 V1 继续改,而不是从原图重来。它会生成 V2 并放在 V1 旁边。
第五步:继续迭代或导出。 想要继续调整就继续标注,想要导出就直接从画布拿图片。整个版本链在一张画布上一目了然。
Cowart 是一个刚开源的小项目,代码量不算大,功能也还有限。但它在一个很有意思的时间点出现——正好是 Codex 从编码工具转向通用工作工具、整个行业都在思考"Agent 下一步怎么走"的时候。
在这个大背景下,Cowart 做了一件很具体的事情:给 Codex 装一张电子白板,让它从"回答问题"向"摆弄材料"再往前走一步。
这件事情本身不大,但它暴露的方向值得大家关注。
项目地址: https://github.com/zhongerxin/cowart
如果本文对您有帮助,也请帮忙点个 赞👍哈!❤️