如何从零写一个OpenCLI适配器:TypeScript适配器完整开发教程
如何从零写一个OpenCLI适配器TypeScript适配器完整开发教程【免费下载链接】OpenCLIMake Any Website into CLI Use your logged-in browser by AI agent.项目地址: https://gitcode.com/gh_mirrors/ope/OpenCLIOpenCLI 是一款把任意网站变成命令行工具的项目核心能力是让 AI Agent 复用你已登录的浏览器会话Make Any Website into CLI。本文是一份面向新手的OpenCLI 适配器完整开发教程从环境准备、策略选择、骨架生成到opencli browser verify验收带你从零写出第一个可用的适配器无需逆向、无需爬虫经验。一、适配器是什么为什么值得自己写一个OpenCLI 已内置 Bilibili、知乎、小红书、HackerNews 等上百个站点命令见clis/目录。但当你想查询自己常用的网站内部系统、小众论坛、行业门户时只需写一个适配器就能把它变成opencli 站点 命令这样一条稳定命令——人类和 AI Agent 都能直接调用。一个适配器本质上只是一次cli({...})注册调用由三部分组成部分作用类比declaration声明站点名、命令名、策略、域名身份证args / columns参数与输出列命令接受什么参数、输出哪些列接口契约func函数体真正取数并返回行数据实现官方 TypeScript 适配器开发指南在这里docs/developer/ts-adapter.md完整运行手册见 skills/opencli-adapter-author/SKILL.md。二、环境准备3 步确认桥接可用写适配器前先确认 OpenCLI 与浏览器的桥接正常安装 OpenCLI 并安装 Browser Bridge 浏览器扩展桌面端推荐 OpenCLIAppCLI 端可全局安装jackwener/opencli要求 Node.js ≥ 20.18.1在已登录目标网站的 Chrome 中保持扩展启用运行体检命令opencli doctor看到 Everything looks good 即可开工。 这一步能帮你排除 80% 的玄学失败。三、动手前最重要的一步选对策略先定策略再写代码——这是适配器开发的第一原则。OpenCLI 提供四类策略常量定义见Strategy策略适用场景维护成本PUBLIC无需登录Node 端fetch直接拿 JSON/HTML最低 ⭐COOKIE需要登录态复用浏览器 cookie低UI驱动页面交互点击、填表、发布中INTERCEPT截获页面自然发出的签名请求高官方 skill 给出的经验数据PAGE_FETCH/INTERCEPT类实现的修复频率约为公开接口的 7-8 倍。所以优先找公开/官方接口接口不可用时稳定的页面语义DOM/SSR 数据也比无契约的内部接口更可靠。判断口诀数据在浏览器里看得到吗→ 是 HTTP/JSON/HTML 吗→ 需要实时推送吗三个问题的答案决定你该不该写、怎么写。详见 skills/opencli-adapter-author/references/strategy-selection.md。四、生成骨架一行命令起步不要手写文件。用opencli browser init生成骨架再对着最相似的邻居适配器改三处命令名 / URL / 字段映射opencli browser init mysite/trending # 编辑 ~/.opencli/clis/mysite/trending.js opencli browser verify mysite/trending私人适配器放在~/.opencli/clis/站点/命令.js写完即可运行、无需构建确认稳定后如需贡献或分享再拷贝到仓库clis/站点/目录或打包成插件路径规划见 docs/guide/extending-opencli.md。五、适配器解剖看懂这份活例子以仓库中的真实适配器 clis/eastmoney/convertible.js 为例结构一目了然import { cli, Strategy } from jackwener/opencli/registry; cli({ site: eastmoney, name: convertible, description: 可转债行情列表, domain: push2.eastmoney.com, strategy: Strategy.PUBLIC, browser: false, args: [ { name: sort, type: string, default: turnover }, { name: limit, type: int, default: 20 }, ], columns: [rank, bondCode, bondName, bondPrice, /* ... */], func: async (args) { // fetch 公开接口 → 解析 → map 成与 columns 同名的行对象 return diff.slice(0, limit).map((it, i) ({ rank: i 1, bondCode: it.f12, bondName: it.f14, /* ... */ })); }, });新手只需记住 4 条铁律columns与返回对象的 keys 完全对齐含顺序它决定表格列序browser字段决定函数签名browser: false是func(args)browser: true是func(page, args)。搞反后参数会静默回退到默认值是最常见的坑参数必须给default否则命令会被拒绝启动需要登录时cookie 用page.getCookies()读别用document.cookieHttpOnly 的登录态读不到HTML 请求走 Node 侧fetchJSON 接口用内置page.fetchJson()。完整模板与 COOKIE 骨架在 skills/opencli-adapter-author/references/adapter-template.md。六、错误处理让失败可被机器理解OpenCLI 约定用类型化错误而不是裸Error或静默返回空数组五类错误定义在 src/errors.tsArgumentError—— 参数非法AuthRequiredError—— 需要登录exit code 77EmptyResultError—— 业务上合法的空结果exit code 66CommandExecutionError—— 请求/执行失败TimeoutError—— 超时为什么要这么讲究因为 autofix 自动化修复流程正是靠 exit code 决定是否重试。⚠️ 反例数据为空时返回一行暂无数据的哨兵行会让下游命令拿着空 ID 白跑一趟——直接抛EmptyResultError即可。七、验收与踩坑清单验收流程比跑通了更重要# 首轮通过后生成 fixture 种子 opencli browser verify mysite/trending --write-fixture # 手改 fixture补 patternsURL/日期/ID 正则 notEmpty核心字段 # 再跑一次确认 ✓ matches fixture opencli browser verify mysite/trending然后肉眼比对网页数值——verify 能过但数据错位的静默失败有 11 种典型形态清单见 skills/opencli-adapter-author/references/success-rate-pitfalls.md。高频坑速查现象原因与修法某列永远是null字段路径写错回到字段解码步骤数值差 10000 倍单位不统一万 vs 元百分比小 100 倍接口已返回0.025别再 ×100换中文浏览器后 0 匹配选择器锚在了aria-label/placeholder等本地化文本上应优先data-testid等稳定标识八、上手路径总结 opencli doctor确认桥接 ✅侦察站点opencli browser analyze url→ 选策略验证候选接口 → 解码字段 → 设计 columnsopencli browser init生成骨架 → 参考最像的邻居适配器改写opencli browser verify --write-fixture 肉眼比对私人使用留在~/.opencli/clis/分享则做成插件更多参考资料TypeScript 适配器指南docs/developer/ts-adapter.md适配器模板与 COOKIE 骨架skills/opencli-adapter-author/references/adapter-template.md扩展路径总览插件 / 私人适配器 / 外部 CLIdocs/guide/extending-opencli.md完整开发流程文档docs/developer/contributing.md照着走第一个适配器通常 30 分钟内就能通过 verify。祝你顺利把常用网站变成一条命令【免费下载链接】OpenCLIMake Any Website into CLI Use your logged-in browser by AI agent.项目地址: https://gitcode.com/gh_mirrors/ope/OpenCLI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

VB操作Word核心原理:COM对象模型与Range/Selection优化

VB操作Word核心原理:COM对象模型与Range/Selection优化

简介:面向Visual Basic开发者的Word自动化操作详解资料,基于Microsoft Office Automation技术,系统讲解Word对象模型的使用方法。内容覆盖Application、Document、Bookmark、Selection等核心对象,说明如何利用方法与属性完成打开、…

2026/9/18 18:48:31 阅读更多 →
爱立信LTE后台操作指南:开站配置与故障定位实战

爱立信LTE后台操作指南:开站配置与故障定位实战

简介:爱立信TD-LTE基站现场维护手册是一份面向LTE基站维护与后台操作人员的实用技术文档,系统讲解EM安装、EM连接、eNB近端侧与OSS侧使用EM等核心操作流程,帮助读者快速掌握设备配置、连接测试与日常维护方法。文档对IP、Radio Network、Soft…

2026/9/18 18:48:31 阅读更多 →
PyMC 贝叶斯分位数回归:3 步让安全库存不再只靠均值

PyMC 贝叶斯分位数回归:3 步让安全库存不再只靠均值

PyMC 贝叶斯分位数回归:3 步让安全库存不再只靠均值 【免费下载链接】pymc Bayesian Modeling and Probabilistic Programming in Python 项目地址: https://gitcode.com/GitHub_Trending/py/pymc 备多少货才不缺货?均值预测永远答不准&#xff1…

2026/9/20 16:22:02 阅读更多 →

最新新闻

OpenClaw技能原子化编排:契约驱动的AI工作流实践

OpenClaw技能原子化编排:契约驱动的AI工作流实践

1. OpenClaw 不是“另一个低代码平台”,而是技能原子化编排的实践现场OpenClaw 这个名字刚出现在我视野里时,我下意识点开了 GitHub 仓库,扫了一眼 README 就关掉了——又一个带 workflow 字样的 AI 工具?直到上周帮朋友调试一个跨…

2026/9/21 0:49:28 阅读更多 →
电影字幕下载网站大全:类型、筛选标准与实战避坑指南

电影字幕下载网站大全:类型、筛选标准与实战避坑指南

1. 从“找字幕”这件小事说起:为什么我们需要一份靠谱的字幕站点清单如果你平时有收藏高清电影、追冷门剧集或者看一些小众纪录片,大概率遇到过这样的场景:视频文件已经躺在硬盘里了,画质、音轨都满意,唯独缺一条匹配的…

2026/9/21 0:49:28 阅读更多 →
Abaqus批量添加弹簧脚本Setsprings:从节点集合到inp定义实战解析

Abaqus批量添加弹簧脚本Setsprings:从节点集合到inp定义实战解析

简介:针对ABAQUS中批量添加弹簧单元的需求,这份资源以铁路建模为典型场景,提供了可直接打开与参考的CAE模型、Python脚本、INP输入文件及ODB结果文件。包内共有21个文件,涵盖模型定义、脚本驱动、分析输入与结果归档等关键环节&am…

2026/9/21 0:49:28 阅读更多 →
TanStack Table (Octane) 行选择(Row Selection)完整指南:从状态管理到 Shift 范围选择

TanStack Table (Octane) 行选择(Row Selection)完整指南:从状态管理到 Shift 范围选择

前端UI组件 【免费下载链接】table 🤖 Headless UI for building powerful tables & datagrids for TS/JS - React-Table, Vue-Table, Solid-Table, Svelte-Table 项目地址: https://gitcode.com/gh_mirrors/ta/table 点击查看 免费下载 导读&#…

2026/9/21 0:49:28 阅读更多 →
Netdiscover实战指南:ARP扫描在局域网资产发现中的应用

Netdiscover实战指南:ARP扫描在局域网资产发现中的应用

简介:Netdiscover 是一款面向网络管理员、安全审计人员和无线网络运维工程师的开源地址扫描工具,专注解决无 DHCP 无线网络中设备发现与信息收集难题,通过主动发送 ARP 请求快速定位在线设备,并输出 IP 地址、MAC 地址、网络掩码等…

2026/9/21 0:49:28 阅读更多 →
Hugging Face 开源权重模型怎么接到 TaoToken:Kimi K2.7 Code 的 OpenRouter 用量观察

Hugging Face 开源权重模型怎么接到 TaoToken:Kimi K2.7 Code 的 OpenRouter 用量观察

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

2026/9/21 0:48:28 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/20 0:00:46 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/20 0:00:46 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →