GUI.for.Cores News
1.87K subscribers
44 photos
1 video
3 files
81 links
版本更新、通知发布、使用手册

交流群组:https://t.me/GUI_for_Cores

项目地址:https://github.com/GUI-for-Cores
Download Telegram
插件发布 【Speedtest CLI】

插件ID:plugin-speedtest-cli

插件描述:适用于命令行的互联网速度测试

通用插件
GUI.for.Cores 滚动更新日志

- 为订阅添加独立的【脚本】支持 1
- 调整配置生成逻辑 2
- 调整订阅更新逻辑 3

1】功能入口:右键订阅 - 脚本

脚本示例:

const onSubscribe = async (proxies, subscription) => {
// 将订阅总流量设置为100GB
subscription.total = 100 * 1024 * 1024 * 1024;
// 将已用上行流量设置为20GB
subscription.upload = 20 * 1024 * 1024 * 1024;
// 将已用下行流量设置为40GB
subscription.download = 40 * 1024 * 1024 * 1024;
// 将订阅过期时间设置为10年后
subscription.expire = Date.now() + 10 * 365 * 24 * 60 * 60 * 1000;
return { proxies, subscription };
};


注意:订阅脚本中的 onSubscribe 与插件系统中的 onSubscribe 钩子方法的差异:返回值不同

2】现在的配置生成逻辑

首先按 GUI 的配置生成内核配置,然后内核配置进入【插件系统】进行处理并返回给 GUI,最后 GUI 按【混入与脚本】再处理一遍形成最终的配置。

3】现在的订阅更新逻辑

首先从网络获取或本地读取订阅,然后订阅进入【插件系统】进行处理并返回给 GUI,最后 GUI 按【脚本】再处理一遍形成最终的订阅。

注:请使用【滚动发行】插件完成上述更新
插件发布 【节点智能切换】

插件 ID:plugin-smart-proxy-switcher

插件描述:实现动态代理选择机制,包含故障转移、断路器、EWMA 延迟跟踪、基于分数调度与滞后控制。

建议修改的插件可配置项:【应用智能切换的策略组】、【并发检测数量】、【检测时间间隔】

可使用AI生成策略参数,提示词:

你是一个代理服务器调度系统的参数专家。我想要不同风格的调度参数配置。系统包括 EWMA、优先级、断路器、惩罚分机制和滞后控制(hysteresis)等策略。请只输出**与默认值不同的参数和注释**,格式如下:

{
"参数名": 新值,
"_参数名": "简洁说明"
}

默认值如下(用于参考):
ewmaAlpha: 0.3
failureThreshold: 3
circuitBreakerTimeout: 360000
penaltyIncrement: 5
penaltyDecayRate: 0.1
priorityWeight: 1.0
latencyWeight: 100.0
penaltyWeight: 1.0
hysteresisMargin: 0.1

请根据以下风格返回配置(任选一种或多种):

- 稳定型:减少切换,宽容波动
- 延迟优先型:频繁检测,追求最快响应
- 高可用型:容忍短暂失败,但快速恢复
- 掉线惩罚型:代理一旦失败,长时间惩罚不让用
- 最小波动型:非常保守切换策略

返回 JSON 格式,只输出修改过的参数及注释。


通用插件
GUI.for.Cores 滚动更新日志

- 重构核心版本管理
- 增加版本回滚按钮
插件发布 【流媒体解锁检测】

插件 ID:plugin-media-unlock-checker

插件描述:检测当前网络环境下的流媒体解锁情况。

通用插件
GUI.for.Cores 【v1.9.7】已发布

- 优化从规则集中心添加的规则集名称显示,格式为[name]-[geosite/geoip]-[format]
- 调整运行时的配置日志等级,控制在 INFO 及以下
- 网络 API 增加参数:Redirect,用于控制是否支持重定向
- 增加 API:UnzipTarGZFile,用于解压 .tar.gz 文件
- 解压核心资源包采用 UnzipTarGZFile API,不再依赖系统 tar 命令
- 优化 MMDB 操作 API
- 重构 StartServer API,增加参数 StaticPath、StaticRoute、UploadPath、UploadRoute、MaxUploadSize,分别用于设置静态资源目录、静态资源路由、上传目录、上传路由、上传文件大小
- 修改 StartServer API 参数,cert 和 key 改为大驼峰 Cert 和 Key

StartServer 使用示例

/* 触发器 手动触发 */
const onRun = async () => {
// 创建一个支持上传与静态资源的服务
const { close } = await Plugins.StartServer(
"127.0.0.1:8080",
"StartServerTest",
async (req, res) => {
res.end(
200,
{ "Content-Type": "application/json" },
"Server is running..."
);
},
{
StaticPath: "data/.cache",
UploadPath: "data/.cache",
// MaxUploadSize: 50 * 1024 * 1024, 默认值50MB
// StaticRoute: "/static/", 默认值
// UploadRoute: "/upload", 默认值
}
);

// 测试上传
const res = await Plugins.Upload(
"http://127.0.0.1:8080/upload",
"data/user.yaml"
);
console.log(`[${Plugin.name}]`, res);

// 测试静态资源
const res2 = await Plugins.HttpGet("http://127.0.0.1:8080/static/user.yaml");
console.log(`[${Plugin.name}]`, res2);

// 关闭服务
await close();
};
插件更新 【文件互传助手】

更新说明

- 支持多文件传输
- 支持大文件传输
- 不会导致GUI内存暴涨
- 自动下载快捷指令到共享文件夹
GUI.for.Cores 滚动更新日志

- 新建配置的restful api密钥将采用16进制编码的256位密钥
- Switch组件添加切换动画
- 测节点延迟时,失败也更新延迟数值
- 优化首页控制器鼠标滚轮事件,减少误操作,提升动画性能
- 增加控制器面板关闭模式,可选仅按钮关闭


GUI.for.SingBox

- fix: 修复http3类型的DNS格式问题

GUI.for.Clash

- feat: URLTest类型策略组可手动固定节点与清除固定

提示:为了进一步加强安全,可编辑配置 - 通用设置 - RESTful API密钥 - 点击右侧刷新按钮,生成更长的密钥

请使用【滚动发行】插件完成上述更新。
GUI.for.Cores 滚动更新日志

- 在概览界面 - 核心管理处添加自定义操作 API

关键代码:

// target目前可取值:core_state
// actions为组件配置,可传入单个或多个
const removeFn = Plugins.useAppStore().addCustomActions(target, actions);


使用教程:

// 保存插件状态
window[Plugin.id] = window[Plugin.id] || {};

const onRun = async () => {
const appStore = Plugins.useAppStore();
onRemove();
// 把移除方法存到插件状态里
window[Plugin.id].remove = appStore.addCustomActions("core_state", [
{
component: "Button",
componentProps: {
size: "small",
onClick: () => {
Plugins.message.success("点击了按钮");
},
},
componentSlots: {
default: "一个按钮",
},
},
{
component: "Switch",
componentSlots: {
default: "一个开关",
},
componentProps: {
size: "small",
modelValue: true,
onChange: (vvv) => {
console.log(vvv);
},
},
},
{
component: "CheckBox",
componentProps: {
size: "small",
modelValue: ["1"],
options: [
{ label: "多选1", value: "1" },
{ label: "多选2", value: "2" },
],
onChange: (vvv) => {
console.log(vvv);
},
},
},
{
component: "Radio",
componentProps: {
size: "small",
modelValue: "1",
options: [
{ label: "单选1", value: "1" },
{ label: "单选2", value: "2" },
],
onChange: (vvv) => {
console.log(vvv);
},
},
},
{
component: "Dropdown",
componentProps: {
size: "small",
style: { color: "green", fontSize: "12px" },
},
componentSlots: {
default: "下拉菜单",
overlay: ({ h }) => {
return h("div", [
h(
"Button",
{
onClick: () => {
console.log("点了菜单1");
},
},
() => "菜单1"
),
h(
"Button",
{
onClick: () => {
console.log("点了菜单2");
},
},
() => "菜单2"
),
]);
},
},
},
{
component: "div",
componentProps: {
style: {
color: "red",
},
},
componentSlots: {
default: () => {
return "一个div";
},
},
},
{
component: "Icon",
componentProps: {
icon: "refresh",
},
},
{
component: "Tag",
componentProps: {
color: "cyan",
},
componentSlots: {
default: "👍",
},
},
]);
Plugins.message.success("添加自定义操作成功");
};

const onRemove = () => {
// 从插件状态拿移除方法并执行
window[Plugin.id].remove?.();
Plugins.message.success("移除自定义操作成功");
};


请使用【滚动发行】插件完成更新。
GUI.for.Cores 滚动更新日志

- 订阅支持自定义请求头(header.request)、响应头(header.response)
- 订阅移除userAgent字段,已有字段将迁移至header.request['User-Agent']

GUI.for.Clash:

- 移除了订阅中的健康检查开关,有需要请用脚本添加

注:如果你自己写的插件里使用了订阅的userAgent字段,请注意迁移。

请使用【滚动发行】插件完成更新
GUI.for.Cores 滚动更新日志

- 重构 WebSocket 连接处理
- 启动 core 后将发起 3 条常驻连接(/memory、/traffic、/connections)
- /logs 连接将按需开启并自动关闭
- 增加 onLogs、onTraffic、onMemory、onConnections API

新增 API 使用示例:

const kernelApi = Plugins.useKernelApiStore();

// 处理核心的日志信息
const unregisterLogsHandler = kernelApi.onLogs((data) => {
console.log("onLogs", data);
});

// 处理核心的流量信息
const unregisterTrafficHandler = kernelApi.onTraffic((data) => {
console.log("onTraffic", data);
});

// 处理核心的内存信息
const unregisterMemoryHandler = kernelApi.onMemory((data) => {
console.log("onMemory", data);
});

// 处理核心的连接信息
const unregisterConnections = kernelApi.onConnections((data) => {
console.log("onConnections", data);
});

// 1分钟后移除所有注册的回调
setTimeout(() => {
unregisterLogsHandler();
unregisterTrafficHandler();
unregisterMemoryHandler();
unregisterConnections();
}, 60_000);


请使用【滚动发行】插件完成更新
GUI.for.Cores 滚动更新日志

- 新增插件触发器:onCoreStarted(核心启动后)、onCoreStopped(核心停止后)

使用教程:

/* 触发器 核心启动后 */
const onCoreStarted = async () => {
console.log(`[${Plugin.name}]`, "核心启动了");
};

/* 触发器 核心停止后 */
const onCoreStopped = async () => {
console.log(`[${Plugin.name}]`, "核心停止了");
};


请使用【滚动发行】插件完成更新
GUI.for.Cores 滚动更新日志

- 新增插件触发器:onBeforeCoreStart(核心启动前)、onBeforeCoreStop(核心停止前)

使用教程:

/* 触发器 核心启动前 */
const onBeforeCoreStart = async (config, profile) => {
console.log(`[${Plugin.name}]`, 'onBeforeCoreStart')
return config
}

/* 触发器 核心停止前 */
const onBeforeCoreStop = async () => {
console.log(`[${Plugin.name}]`, 'onBeforeCoreStop')
}


请使用【滚动发行】插件完成更新
GUI.for.Cores 滚动更新日志

- 新增设置项【将代理组添加到托盘菜单】。

该设置默认关闭,以减少托盘菜单的刷新频率。

开启后,在切换【展示不可用节点】或【按延迟排序】时,托盘菜单将随之更新;此外,节点的可用性变化或延迟排序的更新也会触发托盘菜单的刷新。
插件发布 【SNI 伪造】

插件ID:plugin-sni-spoofing

插件说明:通过为浏览器添加启动参数和运行 Nginx 反代服务,实现免代理访问被墙网站。Supported by: 泡泡茶壶

通用插件
GUI.for.Cores 滚动更新日志

- 增加插件API: Plugins.modal
- 插件支持自定义UI,提供完整的Vue3框架能力

使用示例:

const onRun = async () => {
const ui = createUIModal()
ui.open()
}

const createUIModal = () => {
const { h, defineComponent } = Vue

const component1 = () => 'component1'

const component2 = {
template: '{{msg}}',
setup() {
return { msg: 'component2' }
}
}

const component3 = defineComponent(() => {
return () => h('div', 'component3')
})

const component4 = defineComponent({
render() {
return h('div', 'component4')
}
})

const modal = Plugins.modal({ title: '自定义UI使用示例', component: h(component4) })

return modal
}


更多示例请参考插件【插件UI示例
插件发布 【WARP 配置生成】

插件ID:plugin-generate-warp-config

插件说明:自动注册并生成 Cloudflare WARP 的配置信息。Supported by: 泡泡茶壶

通用插件
GUI.for.Cores 滚动更新日志

- 新增插件元数据:【是否具有用户界面】

配合【手动触发】触发器使用,开启后运行按钮前有个bling bling的小图标