乐于分享
好东西不私藏

一个 Codex 插件两天 1700 Star:Cowart 为什么会火?(附代码思路拆解)

一个 Codex 插件两天 1700 Star:Cowart 为什么会火?(附代码思路拆解)
大家好,我是 Leo。

这两天有个 Codex 插件突然火了。

项目叫 Cowart。

GitHub 地址是:

https://github.com/zhongerxin/Cowart

作者是 钟二信。

项目 README 和插件信息里署名为 ZHONG XIN,GitHub 账号是 zhongerxin,显示名是 Twox。

他的 X 账号也是 @zhongerxin,个人简介写着:

现豆包桌面端产品经理;前 Teambition、飞书智能伙伴设计师、ChatGPT 插件 Pluginpedia 作者。

这个背景挺关键。

因为 Cowart 不是一个纯后端开发者突然做了个画布 demo。

从公开信息看,它更像是一个长期接触产品、设计工具和插件生态的人,把过去对“视觉工作台”的理解,接到了 Codex 插件体系里。

截至 2026 年 6 月 22 日晚,它已经到了 1739 stars、138 forks。

更夸张的是,它不是一个已经打磨很久的老项目。

从 GitHub 信息看,这个仓库创建于 2026 年 6 月 18 日 16:08 UTC,也就是北京时间 6 月 19 日 00:08。

从提交记录看,它的节奏也很密集:

  • 6 月 19 日,first commit
  • 6 月 19 日,加入本地磁盘持久化画布
  • 6 月 20 日,补齐整套绘图和 AI 编辑能力
  • 6 月 21 日,连续更新插件元数据、skills、标注工具、MCP 图片插入、安装文档
  • 同一天,开始合入外部贡献者的 PR

也就是说,它不是那种“发出来大家点个 Star 就散了”的项目。

它很快进入了下一阶段:

有人装,有人用,有人踩坑,有人提 issue,有人交 PR。

这件事比 Star 数本身更重要。

因为对于一个 Codex 插件来说,真正难的不是“看起来很酷”,而是用户真的能装起来、跑起来、用起来,然后愿意帮你修。

Cowart 这次刚好做到了。


Cowart 到底是什么?

一句话说:

Cowart 是一个给 Codex 用的本地无限画布插件。

它基于 tldraw 做了一个网页画布。

你可以在 Codex 里打开它,然后做几件事:

  • 在画布里画图、贴图、写字、放形状
  • 创建一个 “AI 图片” 占位框
  • 让 Codex 根据你的描述生成图片,并插入到这个占位框里
  • 在图片上用标注箭头写修改意见
  • 把标注截图发给 Codex,让它生成一张干净的新图,再放到原图旁边

                                    注:图片来自原作者X推文

听起来像一个小白板。

但它的关键不是“白板”。

关键是:

这块白板不是孤立的。它和 Codex 接上了。

普通白板只能让你自己画。

Cowart 这块画布,可以被 Codex 读到选区,可以被 Codex 写入图片,也可以通过 MCP 工具把生成结果真正落到画布状态里。

这就让它从一个“可视化 UI”,变成了一个“Agent 可以操作的工作空间”。

这个差别很大。


为什么它会突然火?

我觉得有三个原因。

第一个原因是时机。

Codex 插件这件事,本身就在一个非常早的窗口期。

大家都知道 Codex 能写代码。

但“Codex 插件到底能做什么”,很多人其实还没有形成具体想象。

这时候最容易传播的,不是抽象框架,也不是复杂协议,而是一个能马上看懂的例子。

Cowart 就是这种例子。

你一看截图就知道:

哦,原来 Codex 不只是能在终端里改文件,它还可以打开一个本地工具,在里面和我一起做视觉创作。

这就是典型的生态早期样板间。

不是把所有能力都做满,而是让大家第一次看到:

原来这个方向可以这么用。

第二个原因是场景很直观。

很多 Agent 工具很难传播,因为你需要解释一大堆:

它怎么调工具?

怎么读上下文?

怎么管理状态?

怎么跟外部服务交互?

听起来都对,但用户没有画面。

Cowart 不一样。

它的传播图像非常简单:

Codex + 一块画布 + AI 生图 + 标注修改。

这个组合天然适合截图。

也天然适合在社交平台传播。

因为所有人都能马上理解它在干什么。

第三个原因是它不是 demo,而是闭环。

很多项目看起来很酷,但只停在演示层:

打开一个页面,点一个按钮,生成一张图,然后结束。

Cowart 做得更进一步。

它把本地持久化、选区读取、图片资源保存、画布状态更新、插件安装、skills 指令、MCP 工具都串起来了。

这意味着用户不是只能看作者演示。

用户自己也可以把它装进 Codex,然后在自己的项目目录里生成 canvas/ 数据。

这对开源项目很重要。

能跑起来,才会有人帮你修。

从 GitHub PR 看,6 月 21 日已经有外部贡献者开始修安装、依赖、粘贴图片刷新竞态等问题。

这说明它已经越过了“围观”阶段,进入了“真实使用”阶段。


它火的过程,其实很像一次产品冷启动

如果只看 Star 数,很容易把 Cowart 的火理解成一次流量事件。

但从提交历史看,我觉得它更像一次典型的小产品冷启动。

第一步,先做出最小可用形态。

6 月 19 日,它先把 tldraw 画布跑起来,并且把画布数据保存到本地项目目录。

这一步非常关键。

因为 Codex 插件不是普通 SaaS。

用户会关心:

我的画布数据放在哪里?

会不会被存到插件仓库里?

换项目之后会不会串数据?

Cowart 的答案很明确:

数据默认保存在当前用户项目的 canvas/ 目录。

这一步解决的是信任感。

第二步,补上 AI 工作流。

6 月 20 日,它加入整套绘图和 AI 编辑功能。

也就是不只是“打开画布”,而是让 Codex 可以围绕画布做事。

这里最核心的是两个场景:

一个是 AI 图片占位框。

用户在画布上放一个 “AI 图片” holder,Codex 读取它的尺寸和位置,再把生成图片放进去。

另一个是标注式编辑。

用户在图上用箭头和文字写修改意见,Codex 根据标注生成新图,再放到旁边,保留原图和标注。

这两个场景都很适合 Agent。

因为它们把人的意图变成了视觉上下文。

第三步,补上插件包装。

6 月 21 日凌晨,它开始大量完善 .codex-plugin/plugin.json、skills 和 README。

这一步决定了它能不能从“本地项目”变成“Codex 插件”。

你会看到它不是只写了一段安装命令,而是把三类能力拆成了三个 skill:

  • cowart-open-canvas:
    打开本地画布
  • cowart-image-gen:
    生成图片并插入画布
  • cowart-image-edit:
    根据标注截图生成修订图

这其实很聪明。

它没有把所有逻辑塞进一个万能 prompt。

而是把用户任务拆成三个入口。

这对 Codex 来说更好理解,也更容易稳定执行。

第四步,社区开始补坑。

外部 PR 很快出现。

有贡献者修 Codex MCP 安装后的启动问题。

有贡献者修粘贴图片后被旧快照覆盖的问题。

还有贡献者补缺失依赖、移除 hardcoded path。

这很像一个产品真正跑起来之后必然经历的阶段:

作者解决核心想法,真实用户暴露边角问题,社区开始把它推向可用。

所以 Cowart 的火,不只是“发了一个项目”。

而是它在很短时间内完成了一个小产品的四步:

可用原型 -> AI 闭环 -> 插件包装 -> 社区修补。


代码核心实现:Cowart 是怎么把 Codex 和画布接起来的

下面讲代码。

我尽量不讲太细的源码,而是讲它的架构。

更有意思的是,Cowart 基本踩中了 OpenAI 官方 Codex 插件文档里推荐的结构。

官方文档里说,如果只是个人工作流,可以先做 local skill;但如果要把 workflow 分享出去,或者要打包 MCP 配置、app integration、hooks,就应该做成 plugin。

Cowart 正好就是这个形态:

.codex-plugin/plugin.json 负责声明插件。

skills/ 负责告诉 Codex 每类任务怎么做。

.mcp.json 和 mcp/server.mjs 负责把“读选区、插入图片”变成 Codex 可以调用的工具。

所以它不是一个随手拼出来的 demo,而是一个非常标准的 Codex 插件样板。

Cowart 的实现可以拆成三层:

Codex 插件层    ↓本地画布服务层    ↓MCP 操作层

这三层合在一起,才是 Cowart 真正的核心。


第一层:Codex 插件层

入口是:

.codex-plugin/plugin.json

这个文件告诉 Codex:

这是一个插件。

它叫什么。

它有哪些 skills。

它有哪些 MCP server。

它在插件界面里怎么展示。

Cowart 的插件描述里写得很直接:

它是一个本地无限画布,用于 visual thinking、image generation 和 annotation-driven edits。

注意这里有两个东西很关键。

第一个是:

skills": "./skills/"

这代表 Cowart 把使用方式写成了 Codex 可以加载的 skill。

第二个是:

mcpServers": "./.mcp.json"

这代表它不是只靠自然语言提示 Codex。

它还给 Codex 提供了真正可以调用的工具。

这就是 Codex 插件最有意思的地方:

skill 负责告诉 Agent 怎么做,MCP 负责给 Agent 一双手。

没有 skill,Agent 不知道流程。

没有 MCP,Agent 只能讲,不能稳稳地改画布状态。

Cowart 把这两个都补上了。


第二层:本地画布服务层

画布本身在 src/App.jsx。

技术栈很简单:

  • React
  • Vite
  • tldraw

但它在 tldraw 上做了几件自己的事情。

第一件事,是加了一个 AI 图片 holder。

在代码里,这个 holder 本质上是一个 tldraw frame。

它的 meta 里会带上:

{"cowartAiImageHolder":true}

这就像给普通 shape 贴了一个标签。

用户看到的是一个 “AI 图片” 框。

Codex 看到的是:

这里有一个可以被填充的目标位置。

这个设计很小,但很关键。

因为 AI 生图最大的问题之一是:

生成出来之后放哪里?

尺寸是多少?

要不要覆盖原图?

有没有 anchor?

AI 图片 holder 把这些问题提前变成了画布上的一个对象。

用户用视觉方式定义位置,Agent 用结构化信息读取位置。

第二件事,是加了一个标注工具。

Cowart 自己实现了一个 CowartAnnotationTool。

用户拖动时,它会创建一条带箭头的 tldraw arrow,并且自动进入文字编辑状态。

默认颜色是红色。

标签位置会被固定。

这看起来像一个小交互,但它背后解决的是另一个核心问题:

让用户用最自然的方式告诉 AI:改这里。

不用写很长 prompt。

不用描述“左上角那个物体旁边第三个区域”。

直接画箭头,写一句话。

这就是标注式编辑的价值。

第三件事,是保存画布状态。

Cowart 不是只把画布存在浏览器内存里。

它会把画布 snapshot 保存到当前项目的:

canvas/pages/<page-id>/cowart-canvas.json

图片资源保存到:

canvas/pages/<page-id>/assets/

同时还会保存选区状态:

canvas/cowart-selection.json

以及视图状态:

canvas/cowart-view-state.json

这几个文件非常重要。

因为它们让画布从一个临时网页,变成了项目的一部分。

你的画布数据跟着当前项目走。

你的图片资源也跟着当前项目走。

这对 Codex 这种本地工作流来说很自然。

第四件事,是通过 Vite 插件层提供 API。

vite.config.js 里做了很多本地服务工作。

比如:

  • GET /api/canvas
     读取画布
  • PUT /api/canvas
     保存画布
  • GET /api/selection
     读取选区
  • PUT /api/selection
     保存选区
  • GET /api/view-state
     读取视图状态
  • PUT /api/view-state
     保存视图状态
  • /page-assets/
     负责暴露页面级图片资源
  • /api/canvas-events
     用 SSE 通知画布变化

这说明 Cowart 不是只在前端里玩 tldraw。

它还做了一个很轻量的本地状态服务。

这个服务的作用就是:

让浏览器、文件系统和 Agent 之间有一个共同的状态入口。


第三层:MCP 操作层

真正让 Cowart 变成 Codex 工具的,是 mcp/server.mjs。

这个 MCP server 暴露了两个工具。

第一个是:

get_cowart_selection

它负责读取当前画布选中的 shape。

比如选中的是不是 AI 图片 holder。

它的尺寸是多少。

它有没有图片 asset。

它的 meta 是什么。

第二个是:

insert_cowart_image

它负责把一张本地图片插入画布。

这个工具做的事情比名字听起来复杂:

  • 读取当前画布 snapshot
  • 找到选中的 anchor shape
  • 判断目标 page
  • 读取图片尺寸
  • 把图片复制到 page-local assets 目录
  • 创建 tldraw image asset
  • 创建 tldraw image shape
  • 计算 shape 的 fractional index
  • 尽量把新图放在 anchor 旁边,避免覆盖已有内容
  • 通过 Cowart 本地 API 保存新的 canvas snapshot

也就是说,当 Codex 生成一张图之后,不需要手写一堆脆弱的 tldraw 记录。

它可以调用 MCP 工具:

把这张图放到当前画布里。

这一步非常关键。

因为 Agent 最怕的就是:

你让它直接改一个复杂 JSON。

能改,但容易错。

Cowart 把“插入图片”封装成了一个工具。

这就把不稳定的自然语言执行,变成了更稳定的结构化操作。

所以我前面说,Cowart 的核心不是画布,而是这套连接结构。

画布只是用户看到的表面。

真正有价值的是:

它让 Codex 可以通过 skill 理解任务,通过 MCP 调用工具,通过本地 API 写回画布。

这就是一个完整的 Agent 工作流闭环。


为什么这个实现值得看?

因为它给 Codex 插件开发者提供了一个很好的样板。

很多人做 AI 工具,会一上来想做很大的东西:

我要做一个新的 IDE。

我要做一个新的设计工具。

我要做一个新的 Agent 平台。

但 Cowart 的路线更轻。

它没有重新发明画布。

它直接用 tldraw。

它没有重新发明 Agent 框架。

它接入 Codex。

它没有重新设计插件协议。

它按 Codex plugin、skill、MCP 的方式包装。

它真正做的,是把几个成熟部件接起来:

tldraw 负责画布Vite 负责本地服务文件系统负责持久化MCP 负责工具调用Codex skill 负责操作流程imagegen 负责生成图片

这就是现在很多 AI 小产品最现实的做法。

不是拼模型能力。

而是拼工作流闭环。

你能不能把一个用户任务,从输入、操作、生成、保存、复用完整接起来。

Cowart 这次火,本质上就是因为它把这个闭环做得很直观。


它现在还不完美

当然,Cowart 现在还远远不是一个成熟产品。

从 issue 和 PR 看,问题已经开始暴露。

比如有人提到,希望能调整画板参数。

也有人提到,目前生图能力主要依赖 Codex 内置 Image Gen,不一定适配其他生图方式。

还有更深层的问题:

外部 Agent 会写 canvas snapshot。

如果 snapshot 里有一条非法记录,tldraw 校验可能导致整张画布白屏。

这个问题很典型。

它说明 Cowart 现在已经碰到了真正的产品化问题:

当 Agent 也能写状态时,系统必须对坏状态有容错能力。

这不是 demo 阶段会优先处理的问题。

但只要真实用户开始使用,就一定会遇到。

所以我觉得 Cowart 接下来真正要补的,不只是功能。

而是这些东西:

  • 安装流程能不能更稳
  • 不同 Codex 环境下能不能一致启动
  • 画布 snapshot 能不能更强容错
  • 图片生成路径能不能支持更多模型
  • 多页面、多项目、多历史版本怎么管理
  • 用户误操作之后怎么恢复

这些问题听起来不酷。

但这正是一个玩具项目变成工具项目必须经历的阶段。


Cowart 给插件开发者的启发

我觉得 Cowart 最值得学的,不是它用了 tldraw。

而是它踩准了 Codex 插件生态里的三个点。

第一,插件要有一个非常直观的入口。

“给 Codex 一块无限画布”这个入口非常清楚。

用户不需要理解 MCP,不需要理解 snapshot,也不需要理解 plugin manifest。

他只需要知道:

我能打开一块画布,让 Codex 和我一起画图、生成图、改图。

第二,插件最好有一个可视化结果。

Agent 工具如果只在终端里跑,很难传播。

不是终端不好,而是传播门槛高。

Cowart 的结果是画布。

截图天然就是传播素材。

这对早期项目太重要了。

第三,插件要把流程写清楚。

Cowart 的 skill 写得很细。

什么时候打开画布。

什么时候读取选区。

什么时候生成图片。

什么时候插入 holder。

什么时候保留原图。

什么时候不应该替换标注。

这些说明看起来像文档,其实是 Agent 的操作规程。

未来做 Codex 插件,很可能不是只写代码。

你还要写一套给 Agent 看的“工作说明书”。

谁能把这套说明书写清楚,谁的插件就更容易稳定运行。


写在最后

Cowart 这次火,我觉得是一个很有意思的信号。

它说明 Codex 插件生态的早期机会,不一定在“大而全”的 IDE 级工具里。

反而可能在这种小而完整的工具里:

一个清楚的场景。

一个直观的界面。

一组可调用的 MCP 工具。

几份写清楚流程的 skills。

再加上一个能被用户马上截图理解的结果。

这就足够形成传播。

过去我们说 AI 编程,更多是在说:

AI 能不能把代码写对。

但 Cowart 让我看到另一个方向:

AI 编程工具接下来要竞争的,可能不是谁更会聊天,而是谁能给 Agent 提供更好的工作空间。

聊天框是入口。

终端是手。

文件系统是记忆。

而画布、浏览器、表格、设计稿、数据面板这些东西,会变成 Agent 的新工作台。

Cowart 只是其中一个很早的样板。

但正因为它早,所以才值得拆。

下一个机会也许不是“做一个更强的 Agent”。

而是问一句:

我的工作流里,有没有一个地方,也可以变成 Agent 能看、能改、能保存的本地工作台?

如果有,那可能就是下一个插件机会。


参考信息

  • Cowart 仓库:https://github.com/zhongerxin/Cowart
  • OpenAI Codex 插件文档:https://developers.openai.com/codex/plugins/build
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-24 23:30:54 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/784405.html
  2. 运行时间 : 0.092664s [ 吞吐率:10.79req/s ] 内存消耗:4,734.03kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0dab3e4bc17b2625897dc9ea927e18e8
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000599s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000839s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000303s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000281s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000661s ]
  6. SELECT * FROM `set` [ RunTime:0.000243s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000764s ]
  8. SELECT * FROM `article` WHERE `id` = 784405 LIMIT 1 [ RunTime:0.000551s ]
  9. UPDATE `article` SET `lasttime` = 1782315054 WHERE `id` = 784405 [ RunTime:0.000846s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000292s ]
  11. SELECT * FROM `article` WHERE `id` < 784405 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000502s ]
  12. SELECT * FROM `article` WHERE `id` > 784405 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000516s ]
  13. SELECT * FROM `article` WHERE `id` < 784405 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001036s ]
  14. SELECT * FROM `article` WHERE `id` < 784405 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000886s ]
  15. SELECT * FROM `article` WHERE `id` < 784405 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001234s ]
0.094273s