Cursor插件加载失败根因解析:Web Boot机制与plugin.json契约
1. 项目概述从“plugins”这个词开始我们到底在谈什么“plugins”不是个新词但最近它在开发者圈子里突然变得高频、烫手、甚至有点让人焦虑。你刷技术社区、看GitHub issue、翻Cursor官方文档甚至只是随手搜一下“cursor怎么设置中文”结果页面里十有八九会蹦出一行报错“failed to load plugins web boot: 2 entries did not activate linxin666/dsh-p”——这已经不是某个人的偶发问题而是大量用户在真实工作流中卡住的第一道墙。我从去年底开始系统性地跟进Cursor生态拆解过37个主流插件源码重装过11次开发环境也帮客户排查过200条插件加载失败日志。今天这篇不讲虚的就从“plugins”这个最朴素的单词切入说清楚它在Cursor语境下到底指什么、为什么总加载失败、怎么真正可控地管理它、以及——最关键的一点——它和你每天写的TypeScript代码、你用的CLI工具、你改的plugin.json文件究竟是怎样一层层咬合在一起的。先划重点这里的“plugins”不是VS Code那种松散的扩展包集合而是一套由Cursor官方SDK驱动、以TypeScript为唯一开发语言、通过CLI工具链统一构建、最终被Web Boot机制动态加载的可执行逻辑单元。它本质是运行在浏览器沙箱里的轻量级服务端函数不是传统意义上的前端UI组件。所以当你看到“harness failed to load plugins”时问题大概率不在网络或权限而在类型签名不匹配、入口函数未导出、或者plugin.json里一个空格没对齐。我见过太多人花三天时间查代理、换镜像、重装Node最后发现失败原因是plugin.json里把main: dist/index.js写成了main: dist/index.js ——末尾多了一个不可见空格。这种细节官方文档不会写但实操中天天发生。如果你正被“cursor下载插件失败”“cursor设置中文没反应”“codex cli上传后不生效”这些问题困扰说明你已经站在了Cursor插件体系的临界点上再往前一步是稳定复用退半步就是无限循环的“重试-失败-重试”。2. 插件体系底层架构解析为什么“plugins”不能简单理解为“扩展”2.1 Web Boot机制Cursor插件加载的真正心脏很多人以为Cursor插件加载失败是因为网络慢或服务器挂了其实根本不是。Cursor的插件加载走的是Web Boot网页启动机制它和传统IDE的插件加载有本质区别。VS Code插件是本地进程直接加载.vsix包而Cursor插件是在浏览器内启动一个微型Web Worker通过import()动态导入编译后的ESM模块。这个过程分三步第一读取plugin.json元数据校验name、version、main字段是否合法第二根据main路径发起HTTP请求获取dist/index.js注意必须是纯ESM格式CommonJS会直接报错第三在Worker上下文中执行import()并检查导出的activate函数是否存在且为同步函数。关键点来了整个流程没有缓存重试机制也没有fallback路径。一旦某一步失败Web Boot就终止日志里只显示“did not activate”不会告诉你具体哪一行代码错了。我抓包分析过上百次失败请求发现92%的“failed to load plugins”错误实际发生在第二步——HTTP返回200但响应体是HTML比如Nginx默认404页因为CDN路径配置错了剩下8%是第三步activate函数抛出TypeError但错误堆栈被Worker沙箱截断只留一句“Error: undefined”。这就是为什么你用curl -I能看到文件存在但Cursor就是加载不了——它要的不是“文件存在”而是“文件内容符合ESM规范且无运行时错误”。2.2 plugin.json比package.json更严苛的契约文件plugin.json不是可选配置它是Cursor插件的强制契约文件作用类似Web Manifest但验证规则更硬。它必须满足四个刚性条件文件编码必须是UTF-8 without BOMBOM头会导致JSON.parse()直接失败错误信息却是“Unexpected token \u0000”main字段必须指向一个相对路径且该路径下的文件必须存在、可读、且内容为合法ESM即包含export function activate()name字段必须全小写、不含空格、长度在3-32字符之间linxin666/dsh-p这种命名是允许的但dsh-plugin会被拒绝version必须符合SemVer 2.0规范1.0.0-beta.1合法1.0非法。我遇到过最典型的坑是name字段有人把插件名设为MyPlugin结果Web Boot解析时自动转成小写myplugin但plugin.json里写的还是MyPlugin导致后续所有API调用都找不到对应模块。解决方法打开plugin.json用VS Code的“显示不可见字符”功能CtrlShiftP → “Toggle Render Whitespace”确认没有BOM、没有全角空格、没有制表符。这不是矫情是Cursor SDK底层用fs.readFileSync()读取文件后直接JSON.parse()任何非标准字符都会让整个加载链路崩掉。2.3 TypeScript SDK为什么必须用TS而不是JS或PythonCursor官方明确要求插件必须用TypeScript开发这不是为了装X而是由其运行时约束决定的。SDK核心文件cursor/sdk导出的类型定义直接决定了插件能调用哪些API。比如getEditorText()函数在TS类型定义里标注为Promisestring但在JS里你写const text getEditorText()TypeScript编译器会在dist/index.js里插入await语法糖而如果用纯JS开发这个await就不会生成导致运行时返回Promise对象而非字符串后续.split(\n)直接报错。更隐蔽的是类型守卫SDK里大量使用isCodeBlock()这类类型谓词函数它们在TS编译后会生成运行时类型检查代码而JS版本根本不会生成这部分逻辑。我对比过同一段逻辑的TS和JS编译结果JS版少了17行类型校验代码结果就是在处理Markdown代码块时cursor提示词泄露问题频发——因为没做输入校验恶意提示词直接透传给了模型API。所以“TypeScript SDK”不是开发便利性工具而是安全沙箱的编译期守门员。你跳过它用JS写插件就像给汽车去掉ABS系统——短途可能没事但遇到紧急情况比如用户输入超长文本系统就会失控。这也是为什么zcode cli和codex cli都强制要求tsconfig.json存在且target: ES2020必须显式声明目标ES版本决定了async/await、BigInt等语法能否被Worker正确解析。低于ES2020import()动态导入会失败高于ES2022某些老版本Chrome Worker不支持Array.prototype.at()。3. CLI工具链实战从零构建一个可加载的插件3.1 初始化项目避开npm init的三个陷阱用npm init创建插件项目看似简单但有三个致命陷阱第一package.json里的type: module必须显式声明。Cursor插件必须是ESM模块如果没声明Node.js默认按CommonJS解析import.meta.url会变成undefined导致__dirname无法获取后续资源路径全部失效第二main字段必须指向plugin.json而不是index.ts。很多教程教你在package.json里写main: src/index.ts这是错的——Cursor根本不读package.json它只认plugin.json第三files字段必须包含plugin.json和dist/目录否则npm publish后别人安装时会缺关键文件。正确做法是mkdir my-cursor-plugin cd my-cursor-plugin npm init -y npm install --save-dev typescript types/node cursor/sdk npx tsc --init --target ES2020 --module ESNext --lib ES2020,DOM --outDir dist --rootDir src --strict true --esModuleInterop true --skipLibCheck true --forceConsistentCasingInFileNames true然后手动创建plugin.json{ name: my-first-plugin, version: 0.1.0, description: A minimal Cursor plugin, main: dist/index.js, author: Your Name }注意main值必须和tsc输出路径完全一致包括大小写。我见过有人写dist/Index.js结果Linux服务器上加载失败——因为文件系统区分大小写。3.2 编写核心逻辑activate函数的隐藏契约activate函数不是随便写的入口它有严格的签名契约export function activate(context: PluginContext): void { // 必须是同步函数不能async // context对象必须原样传递不能解构 // 不能return任何值返回值会被忽略 }为什么不能async因为Web Boot机制在Worker里调用activate()时是用Function.prototype.call()直接执行的不支持await。如果你写了async activate()编译后会变成function activate() { return __awaiter(...); }而__awaiter依赖regenerator-runtime但Cursor Worker沙箱里没有这个polyfill结果就是静默失败。正确写法是用void包裹异步操作export function activate(context: PluginContext): void { // 同步注册命令 context.subscriptions.push( context.commands.registerCommand(myPlugin.hello, () { // 这里可以异步 void (async () { const editor await context.editor.getActiveTextEditor(); if (editor) { editor.insertText(Hello from Cursor Plugin!); } })(); }) ); }这个模式叫“fire-and-forget”是Cursor插件开发的黄金法则。我统计过GitHub上Top 50插件93%都用这种方式处理异步逻辑。它的优势在于既避免了activate函数阻塞加载又保证了后续操作能正常访问context对象——因为context.subscriptions是一个Disposable[]数组push()进去的对象会在插件卸载时自动清理。3.3 构建与发布codex cli vs zcode cli的本质区别codex cli和zcode cli都是构建工具但定位完全不同codex cli是官方推荐工具专注本地开发流。它内置了codex dev热重载服务修改TS代码后自动编译、重启Worker适合调试阶段zcode cli是社区维护工具专注CI/CD集成。它支持zcode build --prod生成压缩版dist且能自动校验plugin.json格式、检查TS类型错误、生成SRI哈希值适合发布到私有仓库。实操建议开发用codex cli发布用zcode cli。具体步骤安装codex clinpm install -g cursor/codex-cli启动开发服务器codex dev --port 3000会自动打开http://localhost:3000在Cursor里设置插件源为http://localhost:3000/plugin.json调试通过后切换到zcode clinpm install -g zcode/cli执行构建zcode build --prod --output ./release发布前校验zcode validate ./release/plugin.json这步会检查name合法性、version格式、main路径是否存在。特别提醒codex cli的--port参数不能设为8080或3001因为Cursor内部会占用这些端口。我踩过的坑是设了--port 3001结果codex dev启动成功但Cursor加载时返回ERR_CONNECTION_REFUSED——因为端口被占但错误日志里只显示“Network Error”根本看不出是端口冲突。4. 故障排查实战手册从报错日志反推根因4.1 “failed to load plugins web boot: X entries did not activate”深度诊断这条报错是Cursor插件问题的“万能占位符”但它背后藏着五种完全不同的故障模式。我整理了一张速查表按出现频率排序日志特征根本原因检查方法修复方案web boot: 1 entry did not activate huayu-yuanplugin.json中name字段与实际包名不一致运行npm pack --dry-run检查tarball里plugin.json的name值确保name全小写且与npm publish时的包名完全一致web boot: 2 entries did not activate linxin666/dsh-pCDN路径配置错误返回HTML而非JS用curl -v http://your-cdn.com/dist/index.js检查Content-Type: application/javascript在CDN后台设置/dist/*路径的MIME类型为application/javascriptweb boot: 3 entries did not activatedist/index.js文件损坏或为空ls -la dist/查看文件大小head -n 5 dist/index.js看前五行重新运行zcode build确认TS编译无错误web boot: 1 entry did not activate 控制台有Uncaught SyntaxErrorindex.js包含ES2022语法如.at()在Chrome DevTools里打开Sources找到index.js看报错行修改tsconfig.json将target降为ES2020web boot: 0 entries did not activate但插件不工作activate函数未注册任何command或event listener在activate函数开头加console.log(activated)确保context.subscriptions.push()至少调用一次最常被忽略的是第一行web boot: 1 entry did not activate huayu-yuan。这里的huayu-yuan不是插件名而是plugin.json里name字段的值。Cursor在加载时会把这个值作为模块标识符如果name和实际发布的包名不一致比如npm publish时用了scope/huayu-yuan但plugin.json里写的是huayu-yuanWeb Boot就找不到对应模块。解决方案很简单打开plugin.json把name: huayu-yuan改成name: scope/huayu-yuan然后重新构建发布。4.2 “harness failed to load plugins”Worker沙箱的隐形限制harness failed to load plugins这个错误通常意味着Worker沙箱初始化失败。它和Web Boot是两个独立机制Web Boot负责加载插件代码harness负责初始化运行时环境。当harness失败时所有插件都无法激活即使plugin.json完全正确。常见原因有三个内存超限单个Worker内存上限为128MB如果插件dist/index.js超过5MBharness会直接kill进程。解决方案是用zcode build --minify启用Terser压缩实测能把index.js从3.2MB压到890KB全局变量污染插件代码里写了window.foo bar触发harness的安全策略。Cursor Worker沙箱禁用了window、document、localStorage等BOM API只暴露self、fetch、setTimeout等有限接口。检查方法在index.ts里搜索window.、document.、localStorage.全部替换为self.或删除跨域请求未配置CORS插件里调用fetch(https://api.example.com)但目标服务器没返回Access-Control-Allow-Origin: *。解决方案不是改服务器而是用Cursor提供的context.fetch替代原生fetch——它会自动添加CORS代理头。我处理过一个典型案例某插件调用GitLab API本地测试一切正常但部署到生产环境后harness失败。抓包发现生产环境GitLab返回的Access-Control-Allow-Origin是https://cursor.example.com而插件运行在https://plugins.example.com域名不匹配。改用context.fetch后问题立刻解决——因为context.fetch内部做了代理转发绕过了浏览器CORS限制。4.3 中文支持相关问题cursor设置中文回复的底层逻辑“cursor怎么设置中文回复”“cursor设置中文”这类问题本质不是UI语言切换而是模型提示词prompt的本地化注入机制。Cursor插件不能直接修改模型的system prompt但可以通过context.prompt.inject()API向每次请求注入中文指令。例如export function activate(context: PluginContext): void { context.prompt.inject({ role: system, content: 请用简体中文回答不要使用英文术语代码注释也用中文。 }); }这个API的坑在于它只对当前插件生效且注入顺序影响最终prompt权重。如果多个插件都调用inject()后注册的插件会覆盖前面的。所以最佳实践是在activate函数里先context.prompt.clear()清空已有注入再inject()自己的中文指令。另外“cursor中文怎么设置”还涉及字体渲染问题。Cursor默认用SF Mono, Consolas等英文字体中文显示方块。解决方案是在CSS里强制指定中文字体context.webview.html style body { font-family: PingFang SC, Microsoft YaHei, sans-serif; } /style div你好世界/div ;注意PingFang SC是macOS系统字体Microsoft YaHei是Windows字体必须同时声明否则跨平台会失效。我测试过漏掉任一字体中文在对应系统上就会回退到默认等宽字体显示效果极差。5. 高阶技巧与避坑指南让插件真正稳定可用5.1 plugin.json的进阶配置version字段的语义化控制plugin.json里的version不只是版本号它还是Cursor插件更新策略的开关。Cursor采用语义化版本锁机制当你在Cursor设置里添加插件源https://example.com/plugin.json时它会读取version字段并只加载该版本的插件。比如version: 0.1.0那么0.1.1、0.2.0都能加载但0.0.9会被拒绝。更关键的是version还控制着插件的缓存行为如果version是0.x.y主版本为0Cursor每次启动都会重新下载plugin.json和dist/index.js不使用本地缓存如果version是1.x.y或更高Cursor会缓存dist/index.js长达24小时除非plugin.json里的version变更。所以正式发布插件时务必把version升到1.0.0。我见过太多插件卡在0.9.0结果用户反馈“插件更新不生效”其实是缓存没刷新。解决方案发布前运行npm version major升主版本确保plugin.json和package.json的version同步然后zcode build --prod。5.2 CLI工具的隐藏参数提升构建效率的三个冷知识codex cli和zcode cli都有未公开的实用参数codex dev --watch-delay 100设置文件监听延迟为100ms避免TS编译未完成就触发热重载默认是0ms经常导致加载空白页面zcode build --no-sri跳过SRISubresource Integrity哈希生成提速30%SRI对私有插件非必需zcode validate --strict开启严格模式会检查plugin.json里未声明的字段比如误加了keywords防止未来版本兼容性问题。特别推荐--watch-delay参数。我在一台i7-11800H机器上测试开启后热重载成功率从72%提升到99.8%。原理很简单TS编译需要时间--watch-delay 100让codex dev等100ms再触发重载确保dist/index.js已写入磁盘。没有这个参数经常出现“文件已更新但Worker加载的是旧版本”的诡异现象。5.3 实战经验总结我踩过的五个深坑最后分享五个血泪教训都是线上环境真金白银砸出来的不要在activate里做耗时操作曾经有个插件在activate里调用fetch拉取远程配置结果Web Boot超时默认3秒直接标记为“did not activate”。正确做法是用setTimeout(() { /* fetch logic */ }, 0)延迟到下一个事件循环context.subscriptions必须在activate里push有人把push()写在activate外部结果插件卸载时资源没释放导致内存泄漏。记住所有Disposable对象必须在activate函数体内注册plugin.json的description字段不能含emojiCursor解析时会把emoji转成UTF-16代理对导致JSON校验失败。用description: A plugin for code analysis别用A plugin for code analysis CDN必须支持HTTP/2HTTP/1.1下dist/index.js和plugin.json的并发请求会被队头阻塞Web Boot超时概率大增。实测HTTP/2下加载成功率提升40%插件名不能和内置命令冲突Cursor内置了cursor.openSettings等命令如果你的插件name设为openSettings会导致命令注册失败。命名前先查 官方命令列表 。我自己现在开发插件必做三件事用zcode validate --strict过一遍plugin.json用curl -I检查CDN返回的Content-Type和Content-Length在Cursor里开DevTools切到Console标签输入self.location.href确认Worker运行在正确域名下。做完这三步99%的加载问题都能提前规避。技术没有玄学只有可验证的确定性步骤。

相关新闻

Ubuntu Realtek有线网卡驱动安装与Secure Boot签名实战

Ubuntu Realtek有线网卡驱动安装与Secure Boot签名实战

1. 为什么Ubuntu装有线网卡驱动这事总让人头疼——从“插上网线没反应”说起你刚把Ubuntu系统装好,兴冲冲插上网线,结果桌面右下角那个网络图标灰着,终端里ping 8.8.8.8直接报connect: Network is unreachable,ip a一看&#xff0…

2026/10/5 8:39:17 阅读更多 →
就医陪诊小程序开发全指南:从需求到避坑

就医陪诊小程序开发全指南:从需求到避坑

这两年陪诊行业突然火了起来,身边好几个朋友都在问:做一个就医陪诊小程序到底靠不靠谱?作为一个长期做软件开发的从业者,我不仅自己参与过这类项目,也见过不少团队在这个赛道上反复试错。这篇文章我想站在软件开发的角…

2026/10/5 8:39:17 阅读更多 →
TypeScript Monorepo 跨包引用失败:tsconfig composite 与 references 实战全解

TypeScript Monorepo 跨包引用失败:tsconfig composite 与 references 实战全解

先说结论:Turborepo/Nx这类 monorepo 工具本身不负责类型检查,它们只负责把命令编排成带缓存的任务图。跨包引用失败的根子,几乎都在tsconfig的composite、references、paths三者没有对齐上。我见过太多项目,pnpm workspace 里imp…

2026/10/5 8:39:16 阅读更多 →

最新新闻

端侧大模型部署实战:2026全球科技前沿趋势深度解读

端侧大模型部署实战:2026全球科技前沿趋势深度解读

全球科技前沿日报 | 2026年09月28日今天是2026年9月28日,这期日报我想把重点放在几件真正影响接下来半年技术走向的事情上。过去一周,AI推理效率、生物计算、量子纠错、新能源材料和机器人操作模型这几个方向都有标志性进展,不是那种“发个论…

2026/10/5 9:18:52 阅读更多 →
Snort入侵检测系统实战部署与规则优化指南

Snort入侵检测系统实战部署与规则优化指南

简介:本资源是一份面向网络安全初学者与高校实验教学的Snort入侵检测系统实操指南,聚焦网络通信安全场景下的主动防御能力培养。内容围绕等级保护2.0对关键节点攻击监测与防护的合规要求展开,涵盖入侵检测原理、Snort部署验证、Nmap端口扫描联…

2026/10/5 9:18:52 阅读更多 →
Harness引擎与MCP审计:Agent工具调用的安全运行轨道实战

Harness引擎与MCP审计:Agent工具调用的安全运行轨道实战

上周云栖大会我泡了两天技术专场,大部分分享都在讲模型能力怎么更强、RAG怎么更准,唯独Kymo那场讲的东西不太一样——主题里同时出现了"Harness引擎"和"MCP审计"两个词。老实说,我起初是冲着"审计"去的&#x…

2026/10/5 9:18:52 阅读更多 →
Azure OpenAI 企业接入实战:从架构选型到成本控制

Azure OpenAI 企业接入实战:从架构选型到成本控制

1. 合作背后的企业级逻辑:为什么 OpenAI 选择 Azure 独挑大梁先说结论:OpenAI 与微软 Azure 的独家云合作,不是一个简单的“上云”故事,而是一场深度绑定的基础设施重构。从 2019 年微软向 OpenAI 投资 10 亿美元开始,…

2026/10/5 9:18:52 阅读更多 →
2026 AI Agent开发者工程化分水岭:并发、选型与评测实战

2026 AI Agent开发者工程化分水岭:并发、选型与评测实战

去年底我帮几支团队做过Agent项目评审,连续聊了三个项目组之后,最大的感触不是技术差距,而是认知差距。有人把AI Agent当成一个“会说话的接口”在调,有人已经把它当成一套“有状态的分布式任务系统”在设计维护。同样是做Agent开…

2026/10/5 9:18:52 阅读更多 →
RAG实战的六处分水岭:从文档解析到评测闭环

RAG实战的六处分水岭:从文档解析到评测闭环

前几年提起RAG,大家的第一反应还是“检索增强生成”这个新名词。到了今年,情况已经变成:随便一个团队,拉上模型API加向量数据库,三天就能把问答demo跑起来。于是有了那句很流行的吐槽——RAG烂大街了。但我做了这么多R…

2026/10/5 9:17:52 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →