Kunkun
核心概念

扩展类型

比较 Kunkun 的插件运行时,选择适合你的类型。

Kunkun 支持多种插件架构,具有不同的能力和隔离级别。你清单中的每条命令恰好选择一种 mode

快速比较

类型运行时UINode.js 访问用例
Custom-ViewBrowserWindow完全控制复杂 SPA、仪表盘、现有 Web 应用
Worker-ViewWeb WorkerReact → 主机渲染Raycast 风格扩展,最大隔离
Node-ViewNode.js / Deno 进程React → 主机渲染UI + 文件系统/Shell/原生
Worker-HeadlessWeb Worker后台命令(浏览器沙箱)
Node-HeadlessNode.js / Deno 进程需要系统访问的后台命令
ServiceNode.js / Deno 进程为其他扩展和 AI Agent 提供 API

UI 插件

Custom-View

通过 kunkun-ext:// 加载到隔离的 BrowserWindow 中的静态 SPA。你可以使用任意框架控制整个 UI。

{ "name": "main", "mode": "custom-view", "main": "/", "dist": "dist", "devMain": "http://localhost:5173" }

最适合需要完全 UI 控制、迁移现有 Web 应用或希望使用框架特定功能时。→ 指南

Worker-View

React 组件在 Web Worker 中运行;主机将你的组件树渲染为原生 UI(参见扩展运行机制)。一致的样式、强沙箱、快速启动,无需 Node.js。

{ "name": "main", "mode": "worker-view", "main": "dist/App.js" }

最适合 Raycast 风格的列表/表单扩展。→ 指南

Node-View

与 worker-view 相同的 UI 模型,但在 Node.js/Deno 进程中运行——因此你可以访问文件系统、Shell 和原生模块。

{ "name": "main", "mode": "node-view", "main": "dist/node/App.js", "runtime": "auto" }

无头命令

无 UI——执行逻辑,可选择显示 Toast,然后退出。→ 指南

{ "name": "sync", "mode": "node-headless", "main": "dist/node/Sync.js" }

无头命令还可以被调度(intervalcron)或由事件触发。

服务插件

声明一个 services[] 数组,你的扩展将暴露可调用、经过模式验证的方法,其他扩展——以及内置的 AI Agent——可以通过服务代理调用这些方法。→ 指南

运行时选择(Node 模式)

对于 node-view / node-headless / 服务,Kunkun 自动选择运行时:

优先级运行时原因
1Deno最佳沙箱——按域的 --allow-net,限域的 --allow-read/write
2Node.js v20+Node 权限模型
3utilityProcess回退,无沙箱

可通过 "runtime": "deno"(或 "node")强制指定。参见权限 → 进程沙箱

推荐 Deno 是有原因的

Deno 在进程级别按域限制网络访问(--allow-net=api.example.com),而 Node 的模型则更粗粒度。如果你的扩展进行网络 I/O,Deno 能为用户提供更严格的保证。

如何选择

你需要…使用
完全 UI 控制 / 现有 Web 应用Custom-View
Raycast 风格 UI,无需系统访问Worker-View
UI 文件系统/Shell/原生Node-View
后台工作,浏览器沙箱Worker-Headless
需要系统访问的后台工作Node-Headless
为其他扩展 / AI 提供 APIService

On this page