Observed since 20 Oct, 21:38 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
芊云全景cli工具
面向芊云全景插件生态的官方 CLI + SDK。
从插件创建、工程初始化、本地开发、宿主能力调用,到构建、发布、版本上线,一条链路完成。
芊云全景 是面向全景创作者、商家与开发者的一站式 VR 全景创作与分发平台。平台不仅提供 360° 全景制作、可视化编辑、云端托管和多端传播能力,也持续开放插件、API 与宿主 SDK,让开发者可以在现有全景作品之上继续构建自己的交互、业务和品牌体验。
如果你只是想制作和发布全景作品,可以直接使用芊云全景;如果你希望进一步扩展作品能力、开发定制交互或接入自己的业务,9kvr 就是进入芊云全景开发者生态的工具链。
芊云全景不是一个单纯的“全景图片播放器”,而是一套覆盖 采集、制作、编辑、托管、传播和二次开发 的 VR 全景平台。
将标准 2:1 全景图制作成可拖动、可缩放、可沉浸浏览的 VR 全景作品,并支持多个场景组成完整漫游空间。
适合:
平台提供全景发布、场景管理、场景切换和在线浏览能力,用户不需要自己搭建播放器、切片服务器和作品管理后台。
全景作品发布之后,可以继续在芊云编辑器中进行可视化配置,而不是反复修改代码。
目前平台公开能力包括:
对于普通创作者,它是一套低门槛的 VR 内容生产工具;对于开发者,它又提供了可以继续扩展的宿主运行环境。
芊云全景提供全景图片处理和云端作品托管能力,可将高清全景素材处理成适合网络浏览的内容,并由平台负责作品访问与展示链路。
这意味着开发者或创作者可以把精力放在内容和业务上,而不是自己维护全景切片、静态资源分发、播放器部署和作品访问页面。
芊云全景正在把 AI 能力逐步融入工作台和全景生产流程。
面向实际业务,AI 可以参与:
目标不是单独增加一个“AI 聊天入口”,而是让 AI 参与全景内容从制作到开发的真实工作流,降低学习成本和重复操作。
完成的全景内容不只停留在一个网页里,还可以继续向更多渠道传播。
平台公开提供或对接的能力包括:
同一份全景内容可以同时承担作品展示、营销传播、线上导览和短视频素材等用途。
除传统 360° 全景外,芊云全景也提供 3D 模型展示能力,公开支持 OBJ、GLTF、GLB 等常见模型格式,可用于独立 3D 展示或与全景内容组合呈现。
适合产品展示、数字展厅、空间说明以及需要 3D 资产辅助表达的业务场景。
芊云全景提供面向移动端的全景采集能力,可通过手机完成全景拍摄流程,包括陀螺仪引导、自动拍摄、实时预览、补拍对齐和素材导出等能力。
对于没有专业全景相机的用户,这可以显著降低采集门槛,让“拍摄 → 制作 → 发布”形成更完整的闭环。
芊云全景不仅提供成品功能,也允许开发者在平台能力之上继续开发。
你可以通过插件和开放能力构建:
9kvr 就是这套开发者能力的本地入口。
平台功能、套餐权益及开放范围会持续更新,具体以芊云全景官网和开发者平台当前页面为准。
全景插件开发最容易卡住的并不是“写一个按钮”,而是下面这些问题:
9kvr 把这些流程统一起来。
插件中心创建插件
↓
获取插件 ID
↓
9kvr 初始化本地工程
↓
本地开发 / 调试
↓
构建 UMD 产物
↓
发布历史版本
↓
确认后正式上线
平台负责插件身份、配置和运行环境,9kvr 负责本地工程、SDK 和发布链路,开发者只需要专注自己的插件业务。
9kvr CLI 已覆盖插件开发常用流程:
| 能力 | 命令 | 说明 |
|---|---|---|
| 登录 | npx 9kvr login --key=<开发者key> | 使用芊云开发者 Key 建立 MCP 身份 |
| 初始化插件 | npx 9kvr plugin <插件ID> | 从插件中心读取插件信息并生成工程 |
| 本地开发 | npm run dev / npx 9kvr dev | 启动模板项目开发环境 |
| 构建 | npm run build / npx 9kvr build | 构建平台可加载的插件产物 |
| 发布 | npx 9kvr pub | 上传当前构建并生成历史版本 |
| 更新 | npx 9kvr update | 更新已有插件版本 |
| 上线 | npx 9kvr online --history-id=<ID> | 将指定历史版本切换为线上版本 |
| 查看路径 | npx 9kvr current | 查看当前目录和 9kvr 安装目录 |
| 上传素材 | npx 9kvr upload file <文件路径> | 将本地媒体上传到芊云素材库并返回素材 ID/链接 |
远程插件操作统一通过芊云 MCP 完成,不再依赖旧的快捷码、uid/token 或历史 Develop API 调用方式。
先使用开发者 Key 登录,然后可以上传本地文件:
npx 9kvr login --key=<开发者key>
npx 9kvr upload file ./cover.jpg
MCP 与 CLI 的选择建议:小于 30KB 的图片或短内容可以使用 MCP upload_media 的 Base64;大文件不要转成 Base64 发送给 MCP,应优先使用本 CLI 的 npx 9kvr upload file <文件路径>,避免 Base64 膨胀、上下文过大或传输失败。MCP 上传失败或客户端无法传递本地文件时,也使用 CLI 兜底。执行 CLI 上传前必须先完成 npx 9kvr login --key=<开发者key>。
也可以直接传入 Base64 或 Data URL。Base64 上传必须指定带扩展名的文件名:
npx 9kvr upload file \
--base64='<base64内容或data:image/png;base64,...>' \
--filename=cover.png \
--name='作品封面'
命令成功后返回 JSON,包含素材表数字 media_id、素材链接 url 和文件名。不同媒体类型使用独立大小限制,用户/企业素材空间不足时会拒绝上传。
作品封面和素材封面通常使用正方形图片;如果是后续 MCP 生图或图片处理,建议提示生成约 400×400,这里只是推荐尺寸,不是 CLI 或服务端的硬性尺寸限制。
CLI 会在请求服务端前校验文件后缀、真实格式和大小,限制与服务端一致:
jpg、jpeg、png、webp、gif,最大 500KBmp3、mpeg、wav,最大 5MBmp4,最大 10MB文件真实格式必须与扩展名一致。服务端还会再次执行同口径校验和空间校验。素材名称、说明会进行内容安全检测;媒体上传后还会进行异步安全审核,审核异常会删除对应素材并通知用户。
插件不需要直接操作芊云播放器内部实现。宿主通过 pluginContext / pluginBridge 向插件暴露稳定能力,SDK 再提供更易使用的封装。
当前 SDK 已覆盖:
| 能力 | SDK / Bridge | 可以做什么 |
|---|---|---|
| 插件生命周期 | definePlugin | 统一 setup / mount / update / unmount |
| 插件上下文 | usePluginContext | 获取当前插件运行上下文 |
| 插件清单 | usePluginManifest | 获取插件 ID、名称、版本、入口等信息 |
| 插件配置 | usePluginConfig | 获取用户在编辑器内填写的插件配置 |
| 环境信息 | usePluginEnv | 获取当前来源、场景、布局等环境数据 |
| 场景控制 | useScene | 获取当前场景、切换场景、监听场景变化 |
| 视角控制 | getViewState / setView | 读取或调整 hlookat / vlookat / fov |
| 热点能力 | useHotspot | 新增、更新、删除、读取文本 / 图片热点 |
| 热点事件 | onHotspotClick / onHotspotDrag | 响应热点点击和拖拽 |
| 宿主事件 | usePluginEvents | emit / on / off 双向事件通信 |
| UI / 封面 | useCover | 进入全景、关闭封面、读取布局状态 |
| 渲染状态 | useRender | 判断播放器渲染是否就绪、读取渲染状态 |
| 调试能力 | useDebug | 日志、警告、错误和运行时快照 |
| 数据桥 | pluginContext.bridge.data | 获取 manifest、config、pluginConfig、env 等宿主数据 |
通过 usePluginEvents()、useScene() 和 useHotspot() 注册的部分监听会绑定当前插件作用域,并在插件卸载时自动执行清理,避免插件反复挂载后留下无效监听。
插件统一采用:
setup
↓
mount
↓
update(0 ~ N 次)
↓
unmount
这使 Vue、React 和原生 JavaScript 插件都可以使用同一套宿主协议,而不需要分别适配芊云播放器内部实现。
初始化插件时可以直接选择:
react — 适合 React 技术栈和组件化交互插件vue2 — 适合现有 Vue 2 项目和芊云生态中的存量前端方案vanilla — 原生 JavaScript,依赖更少,适合轻量插件npx 9kvr plugin <插件ID>
CLI 会自动:
.9kvr-plugin.json;plugin.manifest.json;plugin.schema.json;这可以保证“平台里的插件”和“本地工程”从一开始就是同一个插件,而不是两个需要人工对齐的孤立项目。
先在平台创建插件记录,配置插件基础信息,并取得插件 ID。
不要先随意创建一个本地工程再想办法绑定。
当前推荐流程是平台先创建、本地后初始化。
开发者 Key:
https://9kvr.cn/tour/workbench/credentials
npx 9kvr login --key=<开发者key>
登录成功后凭证保存在:
~/.9kvr/auth.json
npx 9kvr plugin <插件ID>
然后选择:
Vue 2
React
原生 JavaScript
npx 9kvr init <插件ID>目前仍兼容,但已经进入迁移状态,新项目请使用plugin命令。
cd <插件目录>
npm install
npm run dev
npm run build
模板最终会输出芊云插件运行时需要的 UMD 构建产物。
npx 9kvr pub
发布成功代表:新的历史版本已经上传。
它并不等于当前线上插件已经被替换,这样可以避免一次构建错误直接影响正在使用的作品。
发布成功后会得到历史版本 ID:
npx 9kvr online --history-id=<历史版本ID>
上线后,该历史版本才会成为当前正式版本。
下面的插件在挂载时读取当前场景,并监听场景切换:
import { definePlugin, useScene, useDebug } from '9kvr'
export default definePlugin({
setup() {
const scene = useScene()
const debug = useDebug()
const handleSceneChange = (packet) => {
debug.log('scene changed', packet)
}
scene.onSceneChange(handleSceneChange)
return {
mount(el) {
el.innerHTML = `当前场景:${scene.getCurrentSceneId()}`
},
update() {
debug.log('plugin updated')
},
unmount() {
// 通过 SDK 注册的监听会跟随插件作用域执行清理。
},
}
},
})
你也可以进一步:
const scene = useScene()
const hotspot = useHotspot()
await scene.switchScene('scene-id')
await scene.setView({ hlookat: 90, vlookat: 0, fov: 80, duration: 800 })
hotspot.addTextHotspot({
id: 'demo-hotspot',
title: '了解更多',
ath: 30,
atv: 0,
drag: true,
})
插件不是一块与全景内容无关的 iframe,而是可以在受控协议下感知并操作当前全景宿主状态。
适合:
适合:
适合承载更完整的业务页面,例如:
结合场景、视角、热点和宿主事件,可以开发:
当编辑器现有功能不能满足特殊需求时,可以通过插件补充自己的交互,而不必自己重做一套全景播放器。
可以在芊云全景现有制作和托管能力上加入品牌、营销、导览、业务入口和行业逻辑,缩短项目交付周期。
可以直接使用熟悉的 React、Vue 2 或原生 JavaScript 开发,不需要从 krpano 或底层全景渲染开始重新学习整个技术栈。
可以把芊云全景作为 VR 内容基础设施,在此之上扩展自己的行业产品和业务系统。
平台适合但不限于:
全景的价值不只是“能转一圈”,而是把真实空间变成一个 可访问、可交互、可传播、可持续编辑 的数字内容载体。
所有官方模板最终都需要产出平台可加载的 UMD 文件。
当前发布逻辑会从 dist 中查找:
*.umd.min.js
推荐命名语义为:
<插件ID>.<版本号>.umd.min.js
插件运行时统一使用:
pluginContext
pluginBridge
setup / mount / update / unmount
更新已有插件时,应先修改 package.json.version,重新构建,再执行发布 / 更新流程。
为了让插件在芊云宿主环境中稳定运行,建议遵循以下原则:
9kvr 当前同时承担两类职责:
负责:
登录
插件初始化
本地开发
构建
发布
更新
上线
负责:
插件生命周期
宿主上下文
场景 / 视角
热点
事件
UI
渲染状态
调试
数据桥
项目当前版本以 package.json 为准。
| 入口 | 地址 |
|---|---|
| 芊云全景官网 | https://9kvr.cn/ |
| 芊云全景 Web | https://web.9kvr.cn/ |
| 插件开发文档 | https://9kvr.cn/t/kLiUn |
| 开发者凭证 | https://9kvr.cn/tour/workbench/credentials |
芊云全景希望解决的不只是“怎样把一张 360° 图片放到网页上”,而是让 全景内容真正具备生产、编辑、托管、传播和扩展能力。
对于创作者,你可以更低成本地完成一套专业的 VR 全景作品;对于商家,你可以把真实空间变成持续传播的数字资产;对于开发者,9kvr 和芊云插件体系则提供了继续向上开发的入口。
先把全景做出来,再把你的业务能力装进去。
开始使用:https://9kvr.cn/
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.1.4Registry latest | 19 Aug 2026 | 7 | |
| 1.1.3 | 19 Aug 2026 | 7 | |
| 1.1.2 | 18 Aug 2026 | 10 | |
| 1.1.1 | 18 Aug 2026 | 7 | |
| 1.1.0 | 6 Apr 2026 | 10 | |
| 1.0.26 | 5 Apr 2026 | 8 | |
| 1.0.25 | 5 Apr 2026 | 8 | |
| 1.0.24 | 27 Oct 2024 | 7 | |
| 1.0.23 | 27 Oct 2024 | 7 | |
| 1.0.22 | 27 Oct 2024 | 7 | |
| 1.0.21 | 4 Oct 2024 | 7 | |
| 1.0.20 | 3 Oct 2024 | 7 | |
| 1.0.18 | 3 Oct 2024 | 7 | |
| 1.0.16 | 3 Oct 2024 | 7 | |
| 1.0.15 | 3 Oct 2024 | 7 | |
| 1.0.14 | 2 Oct 2024 | 7 | |
| 1.0.13 | 2 Oct 2024 | 7 | |
| 1.0.12 | 2 Oct 2024 | 7 | |
| 1.0.11 | 29 Sept 2024 | 7 | |
| 1.0.10 | 29 Sept 2024 | 7 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:38 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:d544fd5978245d05fa195c22a558fe6178cb9b974965689d5ad75208946b015e