t3code 双形态开发工具:Electron 桌面端与 CLI 安装配置实战
1. 从 t3code 这个标题说起它到底想解决什么问题第一次看到 t3code 这个名字我下意识把它拆成了两半t3 和 code。在开发者圈子里带数字前缀的命名往往意味着某个东西的第三代或者某个极简版本而 code 则直接指向了代码、编码、开发工具这条线。结合热搜词里反复出现的 Electron、CLI、Homebrew、winget 这几个关键词我基本能判断出这是一个围绕代码开发场景构建的工具而且它同时提供了图形界面Electron 桌面端和命令行界面CLI两种形态并且通过 HomebrewmacOS和 wingetWindows这两个主流包管理器进行分发。这个判断很关键因为它决定了整篇内容的走向。一个工具如果只做 CLI那它的用户群就是终端重度使用者如果只做 GUI那它面向的是更广泛的普通开发者。而 t3code 选择两条腿走路说明它的目标用户覆盖了从习惯敲命令的老手到偏好可视化操作的新手这个定位本身就值得聊一聊。那它到底能做什么从热词里能扒出几条线索electron 菜单、electron localhost、electron 打包 apk、codex cli 的各种命令/compact、/model、/resume、lm studio cli 启动模型报错、openspec cli、minimax cli……这些词拼在一起勾勒出的画面是t3code 很可能是一个集成了 AI 编码辅助能力的开发工具它能在本地跑模型、能连接远程模型服务、能通过 CLI 快速调用同时还有一个 Electron 做的桌面界面来降低使用门槛。适合谁来参考我觉得有三类人最该往下看第一类是日常写代码、想把手里的 AI 辅助工具串成一套顺手工作流的开发者第二类是对 Electron CLI 双形态工具感兴趣、想自己做一个类似东西的人第三类是刚接触 Homebrew 或 winget、想搞清楚怎么正确安装和卸载这类工具的新手。不管你属于哪一类下面这些内容都是我踩过坑之后整理出来的能帮你少走弯路。2. 整体架构设计思路为什么是 Electron 加 CLI 的组合2.1 双形态并存的底层逻辑很多人会问既然有了 CLI为什么还要费劲做一个 Electron 桌面端反过来也一样有了图形界面为什么还要保留命令行这个问题我在自己做过类似工具之后才真正想明白。CLI 的优势在于可脚本化、可组合、启动快。你在终端里敲一行命令它就能干活还能通过管道和其他工具串联。比如你想批量处理一批文件、想在 CI 流程里自动调用、想写个 shell 脚本定时跑CLI 是唯一合理的选择。但 CLI 的短板也很明显学习成本高参数记不住输出是纯文本交互体验差。Electron 桌面端的优势正好相反可视化、交互友好、状态可见。你能看到菜单、能看到进度条、能点击按钮、能在一个窗口里管理多个任务。但它的缺点是重一个 Electron 应用动辄几百 MB启动慢还占内存。t3code 把两者都做了本质上是让用户按场景自由切换。日常快速操作走 CLI复杂配置和可视化查看走桌面端。这种设计在近几年的开发工具里越来越常见因为它承认了一个事实没有一种交互形态能通吃所有场景。2.2 Electron 端的关键设计点从热词里的 electron 菜单 和 electron localhost 能看出一些实现细节。Electron 应用的菜单系统是通过 Menu 模块构建的主进程负责创建菜单模板渲染进程负责响应点击事件。一个设计良好的菜单会把常用操作新建、打开、设置、退出放在最显眼的位置把高级功能收进子菜单。electron localhost 这个词很有意思它暗示 t3code 的 Electron 端可能在本地起了一个 HTTP 服务。这是 Electron 应用常见的架构模式主进程启动一个本地服务器监听 127.0.0.1 的某个端口渲染进程通过 HTTP 请求和这个服务器通信而不是直接用 IPC。这么做的好处是前后端解耦渲染层可以用标准的 fetch 或 axios 发请求调试起来也方便浏览器开发者工具直接就能看网络请求。提示本地服务一定要绑定 127.0.0.1 而不是 0.0.0.0否则同一局域网内的其他机器可能访问到你的服务存在安全隐患。2.3 CLI 端的设计取舍CLI 这边从 codex cli 相关的热词能看出它有一套子命令体系。像/compact、/model、/resume这种带斜杠的命令通常是交互式会话里的指令而不是启动参数。这说明 t3code 的 CLI 可能有两种模式一种是直接执行型t3code run xxx一种是交互式会话型进入一个 REPL 环境然后敲斜杠命令。交互式会话的好处是上下文保持。你在一个会话里切换模型、压缩历史、恢复之前的对话这些操作如果每次都重新启动进程会很麻烦。REPL 模式让这些操作变得自然。但代价是实现复杂度上升需要处理输入解析、历史管理、状态持久化等一系列问题。2.4 分发渠道的选择Homebrew 与 winget工具做出来了怎么让用户装上t3code 选了 HomebrewmacOS和 wingetWindows这两个主流包管理器。这个选择很务实。Homebrew 在 macOS 开发者群体里的覆盖率极高几乎是人手一个。通过brew install安装用户不需要手动下载 dmg、拖拽到 Applications、处理安全提示这一套流程。winget 是微软官方推出的 Windows 包管理器虽然普及度还不如 Homebrew但胜在是系统自带Win10 后期和 Win11 都内置了用起来也方便。选包管理器分发的另一个好处是版本管理自动化。用户升级只需要brew upgrade或winget upgrade不用自己去官网找新版本。对开发者来说维护一个 formula 或 manifest 文件比每次发版都手动更新下载链接要省心得多。3. 核心细节解析安装、配置与实操要点3.1 Homebrew 安装 t3code 的完整流程macOS 上装 t3code第一步是确认 Homebrew 本身是好的。很多人卡在这一步因为 Homebrew 的安装和更新在国内网络环境下经常出问题。热词里 mac 安装 homebrew 失败、mac 安装 homebrew 报错 出现频率很高说明这是普遍痛点。先检查 Homebrew 是否已安装which brew brew --version如果没装官方安装脚本是/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)但实测下来这个脚本在国内经常卡在下载环节。我的经验是先配置好镜像源再装或者用国内维护的安装脚本。装完之后第一件事是跑brew doctor它会告诉你环境有没有问题。确认 Homebrew 正常后安装 t3codebrew tap t3code/tap brew install t3code这里解释一下brew tap的作用。Homebrew 的核心仓库homebrew-core只收录经过严格审核的软件很多新工具或小众工具进不去。tap机制允许第三方维护自己的仓库用户先tap一下把仓库加进来然后就能像装核心软件一样安装了。t3code 如果不在 core 里就需要先 tap。注意Homebrew 已经取消了对 macOS 10.15 及更早版本的支持。如果你的系统是 Catalina 或更老brew install会直接报错。解决办法要么升级系统要么手动下载二进制包。这个在热词里 homebrew 取消 10.15 的支持 有体现不是个别现象。3.2 winget 安装 t3code 的流程Windows 这边相对简单因为 winget 是系统自带的。打开 PowerShell 或 CMDwinget search t3code winget install t3codewinget search先确认包存在避免装错。winget 的包源有微软官方源和社区源搜索时能看到来源。安装完成后可能需要重启终端才能让 PATH 生效。winget 的一个坑是版本滞后。社区维护的 manifest 更新不一定及时有时候官网已经发了新版本winget 里还是旧的。如果你需要最新版可以去项目的 release 页面手动下载。另外 winget 卸载有时候会留残留这个后面讲卸载的时候细说。3.3 Electron 端的首次配置装好之后第一次打开 Electron 桌面端通常会有一个初始化流程。这里有几个配置项值得注意模型配置。从热词 lm studio cli 启动模型时提示 model not found 能看出t3code 支持连接本地模型服务。LM Studio 是一个本地跑大模型的工具它启动后会暴露一个兼容 OpenAI 格式的 API。t3code 连接它的时候需要填对 base URL 和模型名称。报 model not found 通常是因为模型名称填错了——LM Studio 里显示的模型名可能和 API 里实际接受的名字不一致要去 LM Studio 的 server 日志里看它实际加载的模型标识。工作目录设置。t3code 作为编码工具需要知道你的项目在哪里。首次配置时指定一个默认工作目录后续操作会方便很多。快捷键与菜单。Electron 菜单里的快捷键可以自定义。我习惯把最常用的操作比如打开会话、切换模型绑到顺手的组合键上能省不少时间。3.4 CLI 的初始化与常用命令CLI 首次运行一般需要初始化配置t3code init这会生成一个配置文件通常在~/.t3code/config.json或类似位置里面存 API key、默认模型、工作目录等。配置文件的位置和格式因工具而异用t3code config path之类的命令可以查。进入交互式会话t3code进去之后就能用斜杠命令了。根据热词常见的命令有命令作用使用场景/compact压缩对话历史上下文太长、接近 token 上限时/model切换模型需要在不同模型间对比效果时/resume恢复之前的会话中断后想接着上次继续/compact这个命令特别值得说。大模型有上下文窗口限制对话轮次多了之后历史消息会占满窗口导致新消息没地方放。/compact的作用是把历史对话总结成一段更短的摘要释放空间。但要注意压缩是有损的细节会丢失。我的做法是在关键节点手动压缩而不是等它自动触发这样能控制哪些信息被保留。4. 实操过程从零搭建一套顺手的 t3code 工作流4.1 环境准备与依赖检查在动手之前先把基础环境理清楚。t3code 依赖 Node.js 运行时Electron 和 CLI 都基于 Node所以第一步是确认 Node 版本。热词里 node 安装 codex cli 很慢 说明 Node 生态的安装速度是个普遍问题。node --version npm --version建议 Node 版本在 18 以上太老的版本可能不兼容。如果 npm 安装慢配置国内镜像npm config set registry https://registry.npmmirror.com这个镜像同步频率很高绝大多数包都能正常拉取。配置完之后再装全局 CLI 工具会快很多。4.2 安装 t3code 并验证按前面说的方式装好之后验证一下t3code --version t3code --help--help会列出所有子命令这是了解一个 CLI 工具最快的方式。把输出仔细看一遍能发现很多文档里没强调的功能。如果命令找不到检查 PATHecho $PATHHomebrew 装的软件通常在/opt/homebrew/binApple Silicon或/usr/local/binIntel确认这些目录在 PATH 里。4.3 配置模型连接这是整个流程里最容易出问题的一步。t3code 要干活得先能连上模型。有两种情况连本地模型比如 LM Studio。先在 LM Studio 里加载一个模型启动 server记下端口默认 1234。然后在 t3code 配置里填base_url: http://127.0.0.1:1234/v1 model: LM Studio 里显示的模型标识 api_key: 随便填本地服务通常不校验model not found 的排查顺序先确认 LM Studio server 在跑再确认端口对再确认模型名。模型名要去 LM Studio 的 server 页面看它列出的 model 字段才是 API 接受的名字不是你在界面上看到的显示名。连远程模型服务。填对应的 base URL 和 API key。这里要注意 key 的存放安全别直接写在会提交到 git 的配置文件里。用环境变量或者专门的密钥管理。4.4 跑通第一个任务配置好之后跑个简单任务验证链路t3code run 解释一下这段代码的作用 --file ./test.js如果能看到模型返回结果说明整条链路通了。这一步很重要因为后面所有复杂操作都建立在这个基础之上。链路不通的时候先别急着调参数先把连接问题解决。4.5 Electron 端与 CLI 端的协同我实际用下来最高效的模式是两端配合。Electron 端用来做需要可视化的事情查看会话历史、管理多个项目、调整配置。CLI 端用来做快速操作临时问个问题、跑个脚本、在编辑器里直接调用。比如我在 VS Code 里写代码遇到问题直接开个终端敲t3code run比切到 Electron 窗口再操作要快。但如果是需要反复对话、需要看历史记录的场景Electron 端的优势就出来了。5. 常见问题与排查技巧实录5.1 安装类问题速查问题现象可能原因解决思路brew install卡住不动网络问题源访问慢配置镜像源或换时间段重试brew报不支持当前系统系统版本低于 10.15升级系统或手动下载二进制winget install找不到包包源未更新或名称不对winget search确认准确名称安装后命令找不到PATH 未生效重启终端检查 PATH 配置npm 全局安装极慢默认源在国外切换国内镜像源5.2 运行时报错排查没有可用的终端或文件读取工具。这个报错在热词里出现过通常是因为 t3code 需要调用系统的终端或读取文件但权限不够或者环境变量缺失。macOS 上要去系统设置 - 隐私与安全性里给终端应用授权。Windows 上检查是否被安全软件拦截。模型连接超时。先curl一下 base URL 看通不通curl http://127.0.0.1:1234/v1/models如果 curl 不通说明是模型服务本身的问题跟 t3code 无关。如果 curl 通但 t3code 报错检查配置里的 URL 有没有多写或少写/v1。上下文超限。对话太长导致报错用/compact压缩或者开新会话。我的习惯是一个任务一个会话任务结束就关掉避免历史堆积。5.3 卸载与残留清理热词里 homebrew 卸载残留 是个高频问题。Homebrew 卸载软件用brew uninstall t3code但这只删了主程序配置文件、缓存、日志通常还在。彻底清理brew uninstall --zap t3code--zap会连带删除相关的配置和缓存。如果 tap 也不要了brew untap t3code/tap手动检查残留的位置~/.t3code、~/Library/Application Support/t3code、~/Library/Caches/t3code。这些目录里的东西不删重装的时候可能会读到旧配置导致奇怪的问题。winget 卸载winget uninstall t3codewinget 的残留主要在%APPDATA%和%LOCALAPPDATA%下手动去对应目录清理。5.4 几个我踩过的坑坑一配置文件被覆盖。有次我手动改了配置文件结果 Electron 端启动时又写了一遍把我的修改冲掉了。后来我改成用环境变量传关键配置避免和工具自己的写入冲突。坑二模型切换后会话状态混乱。在会话中途用/model切模型有时候上下文格式不兼容导致报错。我的做法是切换模型就开新会话别在同一个会话里混用。坑三Electron 端本地端口冲突。如果同时开了多个 Electron 应用本地服务端口可能撞车。t3code 一般会自动选可用端口但如果配置里写死了端口就要注意别和其他软件冲突。坑四CLI 在非交互环境下的行为。在 CI 或脚本里调用 CLI 时它可能因为检测不到 TTY 而行为异常。加--no-interactive之类的参数强制非交互模式或者用管道喂输入。6. 关于 t3code 这类工具的一些个人体会用了一段时间 t3code 之后我最大的感受是工具的价值不在于功能多而在于能不能无缝嵌入你已有的工作流。t3code 的 Electron CLI 双形态设计本质上是在给不同场景提供不同的入口这个思路是对的。但工具再好也得你自己把配置调顺、把习惯养起来它才能真正提升效率。另外一点这类工具更新迭代很快命令和配置项可能隔几个版本就变。我的建议是养成看 changelog 的习惯每次升级前扫一眼有没有破坏性变更。还有就是别把关键配置只存在工具自己的配置文件里重要的东西用环境变量或独立的配置管理这样工具换了、配置还在。最后分享一个小技巧如果你同时用多个类似的 CLI 工具可以给它们设置不同的配置文件路径通过环境变量避免互相干扰。比如T3CODE_CONFIG/path/to/config这样每个工具读自己的配置互不影响。这个做法在工具多起来之后特别有用。

相关新闻

用pstack诊断Claude本地工具卡死与网络超时问题

用pstack诊断Claude本地工具卡死与网络超时问题

1. “pstack-claude”不是工具名&#xff0c;而是开发者调试现场的真实快照你搜“pstack-claude”&#xff0c;大概率是在终端里敲下pstack <pid>后&#xff0c;突然看到进程堆栈里赫然出现claude相关符号——比如libclaude.so、codex_engine、pi_agent_worker&#xff0…

2026/10/9 9:31:42 阅读更多 →
控制科学如何约束AI:在安全边界内实现智能融合

控制科学如何约束AI:在安全边界内实现智能融合

1. “边界”和“大脑”的相遇&#xff1a;控制科学给AI定了什么规矩过去两年我一直在做自动控制与人工智能融合的落地项目&#xff0c;从电机调速、机械臂轨迹规划到无人车局部路径规划都碰过。团队里一直有两种声音&#xff0c;一种是“AI赋能控制”&#xff1a;把神经网络、强…

2026/10/9 9:30:42 阅读更多 →
OneAPI 1.2.0 接口计费系统开源版:把 settings 改到 TaoToken 的本地部署与计费验证

OneAPI 1.2.0 接口计费系统开源版:把 settings 改到 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/9 9:30:42 阅读更多 →

最新新闻

90DaysOfDevOps 第 3 天:以應用程式為核心的 DevOps 生命週期——開發、測試、整合、部署與監控的無限循環

90DaysOfDevOps 第 3 天:以應用程式為核心的 DevOps 生命週期——開發、測試、整合、部署與監控的無限循環

文档/教程 【免费下载链接】90DaysOfDevOps This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Pri…

2026/10/9 10:14:34 阅读更多 →
练完这36页,你的OpenClaw就牛了:TaoToken统一Key接入实战

练完这36页,你的OpenClaw就牛了: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/9 10:14:34 阅读更多 →
光纤熔接现场正常,几天后却断纤?延迟断纤排查与预防指南

光纤熔接现场正常,几天后却断纤?延迟断纤排查与预防指南

新接的光纤没几天自己就断了&#xff0c;这个问题我在同行群里见过太多次了&#xff0c;说实话每次看到都觉得可惜。熔接机现场测出来的损耗明明很漂亮&#xff0c;热缩管也套了&#xff0c;盘纤也盘了&#xff0c;结果用户住进去没几天&#xff0c;网断了&#xff0c;一查断点…

2026/10/9 10:14:34 阅读更多 →
Java开发环境配置:从JDK选择到IDE集成的全链路指南

Java开发环境配置:从JDK选择到IDE集成的全链路指南

1. 为什么“装Java”这件事&#xff0c;十年老手也常卡在第一步&#xff1f;很多人点开“Java安装教程”&#xff0c;心里想的是&#xff1a;“不就是下一个安装包、点几下下一步吗&#xff1f;”——结果三小时后&#xff0c;终端里还飘着java: command not found&#xff0c;…

2026/10/9 10:14:34 阅读更多 →
CGI程序原理与实战:理解Web服务底层通信协议

CGI程序原理与实战:理解Web服务底层通信协议

1. 什么是CGI程序&#xff1a;从Web服务底层讲清楚它到底在干什么你可能在某个老派技术文档里见过“CGI程序”这个词&#xff0c;也可能在调试一个老旧后台系统时&#xff0c;看到服务器日志里反复出现/cgi-bin/xxx.pl这样的路径。它不像Node.js、Flask或Spring Boot那样常被提…

2026/10/9 10:14:34 阅读更多 →
使用 lm-evaluation-harness 评估 TriviaQA:从 YAML 任务配置到 exact_match 评分的完整实战指南

使用 lm-evaluation-harness 评估 TriviaQA:从 YAML 任务配置到 exact_match 评分的完整实战指南

大模型推理模型微调模型推理服务 【免费下载链接】s1 s1: Simple test-time scaling 项目地址&#xff1a; https://gitcode.com/gh_mirrors/s1/s1 点击查看 免费下载 本文以 s1 仓库中 lm-evaluation-harness 评估套件内置的 TriviaQA 任务为主线&#xff0c;完整讲解该开放问…

2026/10/9 10:13:33 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题&#xff0c;隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题&#xff0c;排查到最后发现是ZonedDateTime序列化后时区丢了&#xff0c;用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问&#xff1a;办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好&#xff0c;问题是工作场景经常要在几处环境之间来回切换&#xff0c;每次都先登录跳板机再层层代理&#xff0c;实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及&#xff0c;但真正动手搭过一套能跑起来的 Agent 系统的人都知道&#xff0c;从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地&#xff0c;从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

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/8 15:26:32 阅读更多 →
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/8 15:26:40 阅读更多 →
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/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →