2026年1月

1 月 13 日发布的 Chrome 144 稳定版正式支持在 chrome://inspect/#remote-debugging 页面直接启动 remote debugging ,这对于 Chrome Devtools MCP 以及其他希望通过 CDP 协议 来对 Chrome 默认 profile 进行自动化控制的用户是重大利好。Edge 144 也同样支持了该特性。


比如你的工作流中需要 LLM 使用 Chrome Devtools MCP 控制浏览器,在此前的 Chrome 版本中,一般的配置方案如下:

  1. 关闭所有 Chrome 实例,使用 chrome --remote-debugging-port=9222 --user-data-dir=xxx 命令启动一个全新的 Chrome 实例。由于 --user-data-dir 不允许使用用户默认的 profile 路径,用户或 LLM 需要在全新的 profile 下重新登录以访问受限资源。

  2. 使用默认的 Chrome Devtools MCP 配置,比如

    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--browser-url=http://127.0.0.1:9222"
      ]
    }
    

更新 Chrome 144 后,只需做如下配置 LLM 即可通过 Chrome Devtools MCP 控制当前 正在运行 的 Chrome 默认 profile:

  1. 在 Chrome 中访问 chrome://inspect/#remote-debugging,勾选 Allow remote debugging for this browser instance

  2. 使用如下 Chrome Devtools MCP 配置

    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--auto-connect"
      ]
    }
    

这一特性带来很多好处:

  • 你不必关闭正在访问的页面就能立即让 LLM 或其他 CDP 工具控制浏览器
  • LLM 可以复用已经你登陆、已有 cookie 的浏览器会话
  • 在 Web 开发测试过程中,网站出现问题时 LLM 能够随时接管并共享所有的 Devtools 上下文

想要更好地利用 CDP 协议并发现更多工具,可以参考 ChromeDevTools/awesome-chrome-devtools


📌 转载信息
原作者:
carlpayne
转载时间:
2026/1/18 19:06:50

玩具性质,使用中出现问题请直接在本人推特 Sam Altman 下留言
玩具性质,使用中出现问题请直接在本人推特 Sam Altman 下留言
玩具性质,使用中出现问题请直接在本人推特 Sam Altman 下留言

写在前面

来 L 站好久了,非常喜欢这里氛围,有好多大佬分享的教程让我进步很快
所以也希望自己能给社区做点儿什么,这个项目本身比较单纯,就是满足自己的日常需求
如何还额外能帮助到大家,那真是太好辣!

介绍

在站内用了很多 cc/cx/gemini 管理软件,但是使用下来个人觉得都稍微有痛点

  • cc-switch: 简约直观,但缺少一些精细化的日志,统计
  • code-switch-r: 让我体会到代理模式的强大,中转站天生不稳,用了代理模式挂了没关系,拉黑降级,SLA 约等于 100%
  • claude-code-hub: 强大,特别喜欢,就是必须要有个服务器或自己 docker 启动 (功能无敌,ui 细节可以优化,装了 3 次终于用起来)

综合这些个人需求 , 把他们全缝了,下载即用
也增加了自己的一些想法

适合群体就是使用中转站的 CC/CX/Gemini 用户

团队成员

aio-coding-hub 由专业的团队打造,下面是我们的团队成员

功能清单

  • 支持 Win/Mac, 打开即用
  • CC/CX/Gemini 供应商管理
    • 模板顺序 (一键切换工作,生活)
    • 倍率设置
  • 代理模式
    • 自动熔断
    • 支持多 BaseUrl, 排序或 Ping 耗时发起请求
  • Skill/MCP/ 提示词管理
  • 用量统计
    • 预计花费
    • 热力图
    • 耗时、首字时间、缓存率
  • 模型验证
    • 短期内已经出现 3 起富可敌国 cc说掺假, 说是上游问题 , 参考孙佬和 Duck 的帖子以及其他资料,做了个模型验证 (1 元 1 刀,甚至 1.5 元 1 刀,结果给混逆向,兄弟真接受不了啊)

单独提一下,使用中转站理论上会产生中间人,真想做也能实现 100% 对齐官方,验证通过的不一定 100% 是真的,当然还是能揪出一些浑水摸鱼的

Note

虽然 L 站不给富可敌国做任何背书,但从我个人而言,会对富可敌国会有些加分的,天然觉得靠谱一些,我知道有些站长甚至不是技术出身,可能也是被上游欺骗了,让佬友们群策群力一起帮助你们 !

我个人觉得 L 站应该是 AI 相关内容创造力最丰富的中文社区
也希望接着开源集思广益,想出更多的检测方法

首页

花费

供应商管理

供应商模板:按照场景切换,如工作 / 生活,使用不同供应商


模型验证:位置在供应商编辑前面那个按钮

提示词 / Skill/MCP

用量统计

todo

  • 自定义模型映射
  • Win WSL 支持
  • IDE 插件支持
  • 异常消费预警:某段时间相同模型消费金额明显超出往日平均使用量
  • 更丰富通知:因为是本地程序,可以调用系统通知
  • CLI 参数配置:有很多配置也是看哈雷佬才知道的,后续可以都放进 CLI 配置里面
  • Skill Creator: Skill 属于一学就会,一写就废,集成便捷的创建 Skill

如果觉得不错,希望能给个 Star


📌 转载信息
原作者:
ethics
转载时间:
2026/1/18 19:06:39

这是一个开源的社交辅助工具,核心目标是帮助用户在网络沟通中更从容、更有效地表达自己。

为什么做这个项目

在网络社交场景中,我们常常需要快速组织语言、理解对方的言外之意,或者在重要关系中更谨慎地措辞。这个工具就是为了解决这些痛点而生的。它特别适合这些场景:需要改善网络社交质量的人、维护重要人际关系时的沟通润色、工作中需要谨慎表达的对话,以及网络情感交流中的辅助。

同时,它还能作为用户画像记录工具,帮你快速记住和理解社交网络中各种复杂的人际关系状态。

核心功能

1. 实时悬浮窗辅助

在对话进行时,悬浮窗会实时提供四种辅助模式:

  • 分析模式:结合上下文分析对方发来的消息,帮你理解可能蕴含的深层意思
  • 智能回复:根据对话历史直接生成回复建议
  • 润色功能:把你打好的话复制进去,帮你优化表达
  • 上下文管理:只有当你点击 "复制" 后,AI 的回答才会被记录为上下文。这样你可以自由选择是直接使用 AI 的建议,还是在此基础上修改,或者重新生成

2. 心语对话功能

类似独立的 AI 对话界面,可以基于你积累的用户标签和历史对话记录,深度分析你和某个人之间的沟通模式和关系状态。

技术特点

  • 完全本地化:所有数据都存储在你的手机本地,没有专门的后端服务器。除非你主动向第三方大模型服务发送请求,否则你的对话记录不会离开你的设备
  • 隐私优先:正因为没有后端,你的社交数据和用户画像完全由你自己掌控

当前状态与局限

这是我个人出于兴趣开发的第一个项目,所以肯定有很多不完善的地方。受限于设备条件,目前只在 OPPO Reno 系列手机上做过测试,对其他品牌和机型的兼容性还不确定。

如果你在使用中遇到问题,非常欢迎向我反馈,我会根据大家的使用情况针对性地改进和适配。


📌 转载信息
原作者:
0.6
转载时间:
2026/1/18 19:04:21

rt,roon 播放器播放电脑本地音乐,滚动歌词有延迟
几乎每首歌都有稳定的 0.5s 延迟,太抽象了。不知道各位佬友有没有什么好的解决方案

歌词是内嵌形式:

还是简单介绍一下 roon 吧:与其说 roon 是一个音乐播放器,不如说是音乐中枢 / 数播系统

整个架构由三个部分组成:roon 服务器,roon app,音频设备。

roon server 用于管理音频内容文件;roon app 用于连接 / 控制 roon server,进行播放等操作;音频设备通过特定协议连接到 roon 来播放音乐。

举个例子:在家中的 Windows 上安装 roon,既可以充当 server 来管理音频文件也有 app 的功能。此时可以直接用 Win 端播放音乐,也可以直接在手机,平板,电视上下载 roon app,通过串流连接到 win 来播放音乐,还可以把音频设备比如音响通过 DLNA airplay chromecast 等协议连上 roon 来播放。相当于 roon 就是家庭的音乐中枢,控制所有音频设备。
音频采样、滤波器等内容就不在这展开了~

简中互联网很少有关于这个问题的讨论,外网的 roon 论坛倒是有一些,但最后也都不了了之

希望有用过 roon 的佬友指点一下~


📌 转载信息
转载时间:
2026/1/18 19:02:52

[Z-Library – 世界上最大的电子图书馆。自由访问知识和文化。]
网址:(https://zh.zlib.li/)
个人已经用了很久,登录就可以每天免费下载十本书,对个人来说应该够用了吧!
很多电子书都能找到,我经常下载小说导入到本地阅读器看,挺有用的


📌 转载信息
转载时间:
2026/1/18 19:00:51

跳转到 GitHub 也要手动点击 继续 按钮,觉得太烦了,Vibe 了这个小脚本

// ==UserScript== // @name         Auto Click Popup Continue // @namespace    http://tampermonkey.net/ // @version      1.0 // @description  当弹窗中包含指定域名时,自动点击弹窗中的"继续"按钮 // @author       Your Name // @match        https://linux.do/* // @grant        none // @run-at       document-start // ==/UserScript==

(function () {
  "use strict";

  // 配置:需要检测的域名列表(支持正则表达式) const TARGET_DOMAINS = ["github.com", "github.com/", "githubusercontent.com"];

  // 标记状态 let hasClicked = false;
  let clickCooldown = false;

  // 弹窗选择器关键词 const popupSelectors = [
    '[class*="modal"]',
    '[class*="popup"]',
    '[class*="dialog"]',
    '[class*="overlay"]',
    '[class*="layer"]',
    '[role="dialog"]',
    '[role="alertdialog"]',
    ".modal",
    ".popup",
    ".dialog",
    ".overlay",
    '[aria-modal="true"]',
    ".el-dialog",
    ".ant-modal",
    ".ivu-modal",
    ".layui-layer",
    ".sweet-alert",
    ".swal-modal",
  ];

  // 检查文本是否包含目标域名 function containsTargetDomain(text) {
    if (!text) return false;

    // 支持正则表达式匹配 for (const domain of TARGET_DOMAINS) {
      try {
        // 如果是正则表达式格式 if (domain.startsWith("/") && domain.endsWith("/")) {
          const regex = new RegExp(domain.slice(1, -1));
          if (regex.test(text)) return true;
        } else {
          // 普通字符串匹配 if (text.includes(domain)) return true;
        }
      } catch (e) {
        // 正则表达式错误时回退到普通匹配 if (text.includes(domain)) return true;
      }
    }

    return false;
  }

  // 在容器中检测是否包含目标域名 function containsDomainInContainer(container) {
    // 检查所有链接 const links = container.querySelectorAll("a[href]");
    for (const link of links) {
      const href = link.getAttribute("href") || "";
      if (containsTargetDomain(href)) {
        console.log("检测到目标域名:", href);
        return true;
      }
    }

    // 检查所有文本节点 const walker = document.createTreeWalker(
      container,
      NodeFilter.SHOW_TEXT,
      null,
      false,
    );

    let node;
    while ((node = walker.nextNode())) {
      const text = node.textContent || "";
      if (containsTargetDomain(text)) {
        console.log("检测到目标域名文本:", text.substring(0, 100));
        return true;
      }
    }

    // 检查特定元素的内容 const elements = container.querySelectorAll(
      "[data-url], [href], [src], .url, .link",
    );
    for (const elem of elements) {
      const content =
        elem.getAttribute("data-url") ||
        elem.getAttribute("href") ||
        elem.getAttribute("src") ||
        elem.textContent ||
        "";

      if (containsTargetDomain(content)) {
        console.log("检测到目标域名元素:", content.substring(0, 100));
        return true;
      }
    }

    return false;
  }

  // 查找"继续"按钮 function findContinueButton(container = document) {
    const buttons = container.querySelectorAll(
      'button, input[type="button"], input[type="submit"], [role="button"], .btn, .ant-btn, .ivu-btn, .el-button',
    );

    for (const button of buttons) {
      const text = button.textContent.trim();
      const ariaLabel = button.getAttribute("aria-label") || "";
      const value = button.value || "";

      if (
        text === "继续" ||
        text.includes("继续") ||
        ariaLabel === "继续" ||
        ariaLabel.includes("继续") ||
        value === "继续" ||
        value.includes("继续")
      ) {
        if (isElementVisible(button) && !button.disabled) {
          return button;
        }
      }
    }

    return null;
  }

  // 检查元素是否可见 function isElementVisible(element) {
    if (!element) return false;

    const style = window.getComputedStyle(element);
    if (style.display === "none") return false;
    if (style.visibility === "hidden") return false;
    if (style.opacity === "0") return false;

    const rect = element.getBoundingClientRect();
    if (rect.width === 0 || rect.height === 0) return false;

    return true;
  }

  // 在弹窗中查找按钮 function findButtonInPopup() {
    const combinedSelector = popupSelectors.join(", ");
    const popups = document.querySelectorAll(combinedSelector);

    for (const popup of popups) {
      if (isElementVisible(popup)) {
        // 先检测弹窗中是否包含目标域名 if (containsDomainInContainer(popup)) {
          // 在弹窗内查找"继续"按钮 const button = findContinueButton(popup);
          if (button) {
            return button;
          }
        }
      }
    }

    // 检查页面中是否有直接包含目标域名的弹窗 const anyPopup = document.querySelector(combinedSelector);
    if (anyPopup && isElementVisible(anyPopup)) {
      if (containsDomainInContainer(anyPopup)) {
        const button = findContinueButton(anyPopup);
        if (button) {
          return button;
        }
      }
    }

    return null;
  }

  // 处理弹窗检测 function handlePopupDetection() {
    if (clickCooldown || hasClicked) return;

    const button = findButtonInPopup();

    if (button) {
      console.log('✓ 检测到包含目标域名的弹窗,自动点击"继续"按钮');
      button.click();
      hasClicked = true;
      clickCooldown = true;

      setTimeout(() => {
        clickCooldown = false;
      }, 1000);

      setTimeout(() => {
        hasClicked = false;
      }, 3000);
    }
  }

  // 创建 MutationObserver function createObserver() {
    const observer = new MutationObserver((mutations) => {
      handlePopupDetection();
    });

    observer.observe(document.body, {
      childList: true,
      subtree: true,
      attributes: true,
      attributeFilter: ["class", "style", "display"],
    });

    return observer;
  }

  // 定期检查 function startPeriodicCheck() {
    setInterval(() => {
      handlePopupDetection();
    }, 500);
  }

  // 初始化 function init() {
    createObserver();
    startPeriodicCheck();

    // 多次延迟检查
    [100, 500, 1000, 2000, 3000].forEach((delay) => {
      setTimeout(() => {
        handlePopupDetection();
      }, delay);
    });

    console.log("自动点击脚本已加载,监测域名:", TARGET_DOMAINS);
  }

  // 启动 if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", init);
  } else {
    init();
  }

  window.addEventListener("load", () => {
    setTimeout(() => {
      handlePopupDetection();
    }, 500);
  });
})();

📌 转载信息
原作者:
ageovb
转载时间:
2026/1/18 19:00:22

电池混到一起了,买了个电量检测器

3 条回复

15 次浏览

床边有个氛围灯,需要三节五号电池,最近电池混合到一起了,不知道哪些用过,哪些没用过,买了个电池电量检测器。
氛围灯变很暗就拿下来,测了下都是 1.27-1.30 左右,新的超动力电池 1.63(标称 1.5)
image
image
image
上面是我有的三种电池,用完后的
image
这是新的超动力

QQ 相机拍的,有点糊,虽然这东西几块钱,很简陋,不过确实能用。

利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 

文章代表作者个人观点,少数派仅对标题和排版略作修改。


AI 辅助创作声明:

本文由 Gemini 生成题纲,我完成内容创作,文章由 Gemini 后期润色。个人文笔不好,如对 AI 生成内容敏感还请见谅!


引言:原生党的「网速焦虑」与「毛坯房」

正在使用 Pixel 或类原生系统的朋友,对「毛坯房」这个调侃应该也并不陌生。虽然我们享受着最纯粹的 Android 体验,但总有一些本地化功能的缺失让人抓狂,「实时网速显示」就是其中之一。

在国内复杂的网络环境下,网速显示对我而言几乎是刚需。但尴尬的是 Google 似乎从未打算在系统层面支持这一功能。于是我们不得不转向 Google Play 商店寻找第三方解决方案。然而当我翻遍了市场上的同类应用,如 NetSpeed Indicator、Internet Speed Meter 等,却发现这些「老牌应用」在 2026 年的今天体验依然难以令人满意:它们大多有着过时的 UI 设计,许多 App 的界面还停留在 Android 4.4 或初代 Material Design 时期,放在当下的 Android 系统中总会显得格格不入;实际网速显示效果也一般,要么是状态栏上那个看不清数字和单位的小图标,要么是拖着「正在其他应用上层显示」膏药的悬浮窗;另外功能臃肿也是个问题,我只想要一个网速显示,它们却往往附赠了流量统计、详单分析等一堆我不需要的功能。

更致命的是,它们都有一个共同的痛点:开启代理工具时网速统计严重虚高。Pixel 用户应该遇到过这种情况,明明下载速度只有 5MB/s,网速悬浮窗却显示 10MB/s。

为什么这些工具的网速总是不准?

简单来说,这是 Android 旧版统计机制的「锅」。 传统的网速 App 通常直接读取系统的总流量接口,开启代理工具后,数据包首先通过物理网卡(如 wlan0)进入被统计一次,随后数据被解包并转发到代理工具的虚拟接口(如 tun0),这里又会被统计一次。

大多数老牌 App 只是简单地将所有接口流量相加,导致显示速度往往是实际速度的 2 倍。

好在最近 AI 编程确实火热,既然找不到完美的替代品,我萌生了一个想法:为什么不让 AI 帮我写一个专门适配 Pixel 的网速 App 呢?

于是 Pixel Meter 诞生了。

Pixel Meter 到底好在哪?

作为一款以解决个人需求为出发点的 App,Pixel Meter 主要解决了两个核心问题。

精准的流量统计(告别虚高)

Pixel Meter 摒弃了过时的全局统计方案,转而利用 Android S (API 31) 引入的新 API TrafficStats.getRxBytes(ifaceName)

这个 API 允许 App 精确获取指定网络接口的流量数据,通过内置的网卡白名单与黑名单机制,Pixel Meter 能智能过滤掉代理工具虚拟接口的重复数据。最重要的是,实现这一功能不需要 Root 也不需要 Shizuku 权限,做到了既高效又精准。

可能是目前最优雅的展示方式

实时活动通知(Live Update Notification)是我认为 Pixel Meter 最大的撒手锏,在 Android 16 及部分支持该特性的高版本系统中,实时活动通知相比于传统状态栏图标,不会有显示空间受限、可读性差等问题,允许我们灵活展示更丰富的内容。

不妨看个对比:

传统方案:拥挤的状态栏,数字和单位难以看清

Pixel Meter 则利用通知区域的实时更新特性,虽然有字符限制( 7 个字符),但足以清晰地展示「数字+单位」:

实时活动方案以及悬浮窗

更重要的事,它看起来不像是第三方的补丁,而更像是系统自带的原生功能——做到了干净、自然、无缝融合。

幕后故事:我负责提想法,AI 负责写代码

AI 时代的到来彻底改变了个人开发的门槛。

以前我也曾尝试开发过一些小工具(比如自动跳过广告的 App),但往往因为初期繁琐的代码构建和漫长的正反馈周期而「弃坑」。投入精力太大、产出太慢,热情很容易被耗尽。

另一个从兴趣满满到再也不想打开的孵化项目

但这一次完全不同。在 Pixel Meter 的开发过程中,我采用了一种新的「人机协作」模式:

  • 我负责:架构设计、需求分析、以及在 AI 犯错时进行「代码审查」和方向纠正。
  • Gemini 负责:编写具体实现代码、生成文档、甚至处理上架素材。

我使用了 AntiGravity,配合自定义的 GEMINI.md 规则文件。这就像是给了 AI 一份「长期记忆」,让它能记住我们之前的架构讨论和代码规范;即使是新建会话,它也能读取这些「记忆文件」,快速进入开发状态。

AI4
让AI进行技术栈推荐与决策
AI5
架构设计讨论
新建会话时读取「记忆」文件让Gemini快速「回想」起项目的需求

最终的数据令人惊讶:Pixel Meter 目前已发布了 3 个版本,其中90% 的代码是由 Gemini 生成的。甚至连 GitHub 仓库的 README 文档、隐私政策,以及 Google Play 上的宣传文案和置顶图,都是由它操刀完成的。

邀请你来体验

目前,Pixel Meter 已经在 GitHub 开源,你也可以直接前往 Google Play 商店搜索「Pixel Meter」即可下载安装使用。

 

无论你是想体验一个纯净的网速显示工具,还是对 AI 辅助开发的代码质量感兴趣,都欢迎来试一试 Pixel Meter。

> 关注 少数派公众号,让你的 Google Pixel 更好用 📱

> 实用、好用的 正版软件,少数派为你呈现 🚀

    极简自用,无花里胡哨,核心需求:精确分流

    1. 全 CDN 高精度 GEO 集成
    2. 主流 AI 分流
    3. 性能兼容性优化 (IPv6/QUIC)
    4. DNS 分流不泄露
    5. 微信苹果等服务优化

    使用方法:

    function main(config) {
        const allProxies = (config.proxies || []).map((p) => p.name).filter(Boolean);
    
        // --- 1. 全局资源与性能优化 (Hackl0us & Loyalsoldier) ---
        config["ipv6"] = false;
        config["unified-delay"] = true;
        config["tcp-concurrent"] = true;
        
        // 开启 Geodata 模式(必须开启才能使用 geosite/geoip 规则)
        config["geodata-mode"] = true;
        // 加载器设为 standard 或 memconservative 均可
        config["geodata-loader"] = "standard";
    
        // [核心] 替换为高精度资源地址 // 1. Geosite (域名): 使用 Loyalsoldier,规则最全
        config["geosite-url"] = "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat";
        
        // 2. MMDB (IP): 使用 Hackl0us,国内 IP 精度最高 (小巧且精准)
        config["mmdb-url"] = "https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb";
        
        // 3. GeoIP (备用): 虽然主力是用 MMDB,但防止内核回退,也指向 Loyalsoldier
        config["geoip-url"] = "https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat";
    
        // 自动判断下载 CDN(防止 Github 抽风)
        config["find-process-mode"] = "strict";
    
        config["sniffer"] = {
            enable: true,
            sniff: {
                TLS: { ports: [443, 8443] },
                HTTP: { ports: [80, "8080-8880"], "override-destination": true },
                QUIC: { ports: [443] }
            }
        };
    
        // --- 2. 策略组设置 --- const DNS_INTL_GROUP = "🛡️ DNS(国外)";
        const NODE_GROUP = "🚀 节点选择";
        const AUTO_GROUP = "♻️ 自动选择";
        const AI_GROUP = "🤖 AI服务";
        const EMBY_GROUP = "🎥 Emby服务"; 
        const DIRECT_GROUP = "🎯 全球直连";
        const FINAL_GROUP = "🐟 漏网之鱼";
    
        // 筛选 AI 节点 (排除大陆和特定地区) const aiBlacklistRegex = /流量|到期|重置|香港|HK|Hong Kong|澳门|澳門|Macau|MO|俄罗斯|Russia|RU|伊朗|Iran|IR|朝鲜|North Korea|KP|叙利亚|Syria|SY|古巴|Cuba|CU|白俄罗斯|Belarus|BY|韩国|KR|Korea/i;
        const aiFilteredProxies = allProxies.filter(name => !aiBlacklistRegex.test(name));
        
        // 筛选 Emby 节点 const embyFilteredProxies = allProxies.filter(name => /Emby/i.test(name));
    
        config["proxy-groups"] = [
            { name: NODE_GROUP, type: "select", proxies: [AUTO_GROUP, ...allProxies, "DIRECT"] },
            { name: DNS_INTL_GROUP, type: "url-test", url: "https://www.gstatic.com/generate_204", interval: 300, proxies: allProxies.length ? allProxies : ["REJECT"] },
            { name: AUTO_GROUP, type: "url-test", url: "https://www.gstatic.com/generate_204", interval: 300, tolerance: 50, proxies: allProxies.length ? allProxies : ["REJECT"] },
            { 
                name: EMBY_GROUP, 
                type: "url-test", 
                url: "http://www.gstatic.com/generate_204", 
                interval: 300, 
                tolerance: 50, 
                proxies: embyFilteredProxies.length ? embyFilteredProxies : [NODE_GROUP] 
            },
            { name: AI_GROUP, type: "select", proxies: aiFilteredProxies.length ? [NODE_GROUP, ...aiFilteredProxies] : [NODE_GROUP, ...allProxies] },
            { name: DIRECT_GROUP, type: "select", proxies: ["DIRECT", NODE_GROUP] },
            { name: FINAL_GROUP, type: "select", proxies: [NODE_GROUP, DIRECT_GROUP] }
        ];
    
        // --- 3. DNS 优化 --- const dnsCn = ["https://223.5.5.5/dns-query", "https://1.12.12.12/dns-query"];
        const dnsIntl = ["https://8.8.8.8/dns-query", "https://1.1.1.1/dns-query"];
    
        config["dns"] = {
            enable: true,
            ipv6: false,
            "enhanced-mode": "fake-ip",
            "respect-rules": true,
            "dns-hijack": ["any:53"],
            "nameserver": dnsCn,
            "proxy-server-nameserver": dnsCn,
            "fallback": dnsIntl,
            "nameserver-policy": {
                "geosite:cn": dnsCn,
                "geosite:gfw,geolocation-!cn": dnsIntl
            }
        };
    
        // --- 4. 规则逻辑 (完全依赖 Geosite + 手动补充) ---
        config["rules"] = [
            // 0. 本地网络 "IP-CIDR,127.0.0.0/8,DIRECT,no-resolve",
            "IP-CIDR,192.168.0.0/16,DIRECT,no-resolve",
            "IP-CIDR,10.0.0.0/8,DIRECT,no-resolve",
            "IP-CIDR,172.16.0.0/12,DIRECT,no-resolve",
    
            // 1. Apple 登录鉴权 "DOMAIN,appleid.apple.com," + AI_GROUP,
            "DOMAIN,idmsa.apple.com," + AI_GROUP,
            "DOMAIN,gsa.apple.com," + AI_GROUP,
            "DOMAIN,identity.apple.com," + AI_GROUP,
    
            // 2. Emby // 3. Apple 其他服务 "GEOSITE,apple," + DIRECT_GROUP,
            "DOMAIN-SUFFIX,apple.com," + DIRECT_GROUP,
            "DOMAIN-SUFFIX,icloud.com," + DIRECT_GROUP,
    
            // 4. 社交软件直连 "DOMAIN-KEYWORD,tencent," + DIRECT_GROUP,
            "DOMAIN-KEYWORD,qq," + DIRECT_GROUP,
            "DOMAIN-KEYWORD,wechat," + DIRECT_GROUP,
    
            // 5. 拦截 "AND,((DST-PORT,443),(NETWORK,UDP)),REJECT",
            "DOMAIN,dns.google," + DNS_INTL_GROUP,
            "DOMAIN,cloudflare-dns.com," + DNS_INTL_GROUP,
            "DST-PORT,53,REJECT",
    
            // 6. AI 规则 (使用 Loyalsoldier 的 Geosite 分类) "GEOSITE,openai," + AI_GROUP,
            "GEOSITE,anthropic," + AI_GROUP,
            "GEOSITE,x," + AI_GROUP,
            "GEOSITE,google," + AI_GROUP,
            "GEOSITE,youtube," + AI_GROUP,
            "DOMAIN-SUFFIX,bard.google.com," + AI_GROUP,
            "DOMAIN-SUFFIX,gemini.google.com," + AI_GROUP,
            "DOMAIN-SUFFIX,bing.com," + AI_GROUP,
    
            // 7. 国内分流 (使用 Hackl0us MMDB) "GEOSITE,cn," + DIRECT_GROUP,
            "GEOIP,CN," + DIRECT_GROUP + ",no-resolve",
    
            // 8. 兜底 "MATCH," + FINAL_GROUP
        ];
    
        return config;
    }
    
    

    📌 转载信息
    转载时间:
    2026/1/18 15:52:21

    TAGS: scaleway, clawcloud, hidencloud, lemonhost, bot-hosting, chisel, gonc

    首先感谢 继续开发 cursor-api,这两天测试了 19 个版本还在继续解决。虽然每次会话要重启一次,但是感觉目前 cursor 的 api 调用是最快的,速度超快,挂代理还是慢。

    避雷针:首先我发帖是按照自己的思路,不会迎合某些人,好的建议我会虚心接受,我听着不顺耳的我也不会理会。我不缺 token,一线模型随便用,25 年 cursor 就烧了 5B。其他免费的都没算过。第二我不缺梯子,研究这些免费的纯粹是好玩,研究他们是如何运作的。

    1. scaleway, clawcloud, hidencloud, lemonhost, bot-hosting 分类

    • 基本是三类

    • Pterodactyl 派生系:hidencloud, lemonhost, bot-hosting

    • 大厂 serverless container 系:scaleway

    • diy 其他系:clawcloud, vps.oicqto.me

    • P 系都是魔改开源框架,账户端和 pannel 端分离,所以 hiden 抢主机,付款,续费;lemonhost 挣积分;bot-hosting 挣金币。但是 panel 基本都差不多,api 几乎通用。这系列主要是在 pannel 有

      • 控制 "server" (container)power,开关机之类
      • console 获取 container 日志
      • sftp 传文件
      • 开发 1-2 个端口映射,全映射无限制
      • 定义入口,就是跑什么类型的程序,nodejs/python/deno/bun
      • 其他功能比如 db 等等
      • 限制:无 ssh,userid 限制,rootless 权限
    • serverless 系,scaleway 做的最好,真的是大厂风格,架构优秀,文档清晰,tools 齐全

      • 本质上也是 container
      • 定制 container
      • 限制更多
        • 免费 https 域名反向代理 80/443 映射到内部 x1 端口
        • http 保活检测
        • 提供 http1.1/2
        • 无 tcp/udp
        • 配置相当复杂
        • scw/terraform/logcli/grafan 监控支持,都是生产级别的
        • api key 支持
        • root 权限
    • Diy 其他系:

      • claw 应该是学 scaleway 或者大厂的风格,UI 做的现代,配置简单,但是限制 tcp/udp/http/ws 等,和 Zeabur Koyeb 类似,这俩我记不清了,这两天没有仔细研究。rootless 应该是
      • coze,这个应该可以搞起来,和 scaleway 类似,有 80/443 反向代理映射
      • vps.oicqto.me 站内大佬免费送的,应该是 diy 的方案,root,多端口映射
      • Zeabur Koyeb 这俩我忘记了,这次没研究,但是我记得也是限制很多

    2. 研究思路

    直接用 chrome dev-tool mcp + zed + opus 让 AI 自己分析登录需要的 token,流程,api 验证 curl,总结到文档,积分 api 等。需要很多轮会话。我应该搞了几个晚上。


    3. 想法

    其实我是先有想法,然后做 api 研究的,主要针对下边这几类想构建一些东西:

    • 管理部署监控问题,可以做到控制 power on/off/restart,拉取 console 日志,上传下载文件,ssh 进去 debug,探针监控接口。
    • 端口限制问题,主要思路是通过 http 隧道,研究并实践了 chisel 可以在 scaleway 上实现 tunnel 多路复用,目前看没有其他更好的方案,我在学习 grpc 的方案,似乎看来没有可用的。走 http/1.1 然后通过 ssh 加密实现多路复用。换句话说,反代可以把 443 流量打到内部 chisel 的监听,c 把流量分为普通 http 和其他 ws 的流量,http/s 可以提供正常服务,ws 走 tunnel 多路复用。这个方案几乎可以用在任何端口协议限制的容器中。已经验证了 ssh 直接到容器内部。
    • rootless 问题,主要思路是 hack dropbear,可以实现 userspace 的 ssh,已经合并多个公开方案实现。主要针对第一类的 P 方案限制 rootless 的方案。
    • container 软件包限制,P 方案实现很多都是不同的 container base images,基本都是 debian/ubuntu,对于 rootless,验证可以实现手工解压需要的依赖 deb 来运行,比如 ip/traceroute/httping/htping 等,验证实现。有个想法是做一个 userspace 软件包管理方案。
    • 盾,目前 cf 盾好像验证成功,大佬的方案,但是 bot-hosting 的是 hCaptcha AI 识别不靠谱,目前没有什么好的思路,我记得有大佬用 yolo 做 G 加的 Captcha,有空接下来研究一下。bothosting 的积分还是比较麻烦
    • gRPC 协议,主要是想用 Rust 做一个隧道多路复用,类似 chisel,实现 http2+gRPC。做了一个初步的验证,后续估计会烂尾,毕竟很复杂。好像看讨论,有一些协议是比较好的,还需要调研一下。
    • gonc,在研究 NAT UDP/TCP 打洞的时候的一个研究,对于 NAT4<->NAT [1,3] 成功率很高。是一种补充,如果能用 Rust 实现基本协议,然后作为上述 gRPC 隧道的一个补充,那几乎所有的内网都能互通了。
    • 大佬(忘记名字了)的一些破盾方案,包括 tunnel,指纹,各种盾,b 站找到一些很好的教程分析的很细。

    吃午饭了,干不动了,有什么其他的再说再写,欢迎讨论。这几个主题我看讨论的都比较少。gonc/gRPC/rootless/chisel 都很少有讨论的。

    写完想起来一个笑话帖子,说搞 20 台 vps 为了干啥,是为了监控剩下 19 台有没有掉线,哈哈。


    📌 转载信息
    原作者:
    laris
    转载时间:
    2026/1/18 15:52:15

    最近趁着黑五入了 RN 的小鸡,顺手部署了 memos 玩玩。
    在尝试从 flomo 导出并转移数据时,搜到了这个非常好用的项目(感谢大佬)

    翻车了

    本想直接白嫖大佬的项目,结果发现代码近期没更新,跑起来直接报错。对比了一下 Memos 文档,发现是 API 的锅:接口路径 从 /resource 变成了 /attachments

    抢救一下

    请 codex 出马,简单修了下。已给原作者提了 PR。如果大家需要,可以直接看这里或者拉我的分支,希望能帮到各位佬友!

    (自己搞了个 memos 每日回顾的插件晚一点也分享下)


    📌 转载信息
    原作者:
    04ffff
    转载时间:
    2026/1/18 15:51:47

    背景

    由于鼠鼠我在服务器上没有 sudo 权限,没法使用 github 上提供的方法,而仅仅通过 SSH 反向隧道经常出现连接不稳定、端口假死或断连的情况。经过一番折腾,我找到了基于 Cloudflare Tunnel 的终极解决方案。本文将分享两种配置方法:一种适合临时测试(无域名),另一种适合长期稳定运行(有域名)。

    准备工作:本地服务配置


    方案一:我没有域名

    如果你只是想临时测试一下,或者不想购买域名,可以使用 Cloudflare 提供的免费临时隧道。

    步骤:

    1. 下载 Cloudflared 工具。
    2. 在下载目录打开 PowerShell,运行以下命令:
    cloudflared.exe tunnel --url http://localhost:8045
    
    1. 终端会输出一个临时的公网地址,格式如:
      https://random-name.trycloudflare.com
    2. 复制这个地址,去服务器配置即可使用。


    方案二:我有自己的域名

    如果你有域名(托管在 Cloudflare),我们可以利用 Cloudflare Zero Trust 面板,将本地电脑变成一台 “服务器”,实现开机自启固定域名无需保持黑窗口运行

    特点:稳定、专业、后台静默运行。

    1. 创建隧道与安装服务

    1. 进入 Cloudflare Zero Trust 面板NetworksManage Tunnels

    2. 创建 Tunnel

    3. 在安装界面选择你 Antigravity Tools 所在的操作系统,复制那一长串安装命令进行安装。

    4. 成功提示Cloudflared agent installed successfully。此时服务已在后台安装,电脑重启也会自动连上。

    2. 绑定域名

    在你的 tunnel 中

    点击 这个 routes 进入配置页面:

    • Subdomain: 填写前缀(如 api)。
    • Domain: 选择你的域名(如 example.xyz)。
    • Service:
    • Type: HTTP
    • URL: 127.0.0.1:8045 (或局域网 IP,或者是你的计算机名,我这里使用的是计算机名,因为我的电脑会经常到处跑)。

    保存后,你的 API 地址就是固定的 https://api.example.xyz 了。


    避坑指南:解决 524 Timeout 与断连

    在使用过程中,我遇到了几个关键问题,这里给出解决方案:

    1. 致命的 HTTP 524 Timeout 错误

    现象:域名能 ping 通,但请求 API 时卡顿很久,最后报错 524: A timeout occurred
    原因:Windows 默认将 localhost 解析为 IPv6 (::1),而某些服务只监听 IPv4。Cloudflare 转发请求时 “迷路” 了。
    解决
    在 Cloudflare 后台配置 Service URL 时,** 千万不要填 localhost:8045**

    • 稳妥写法:填 127.0.0.1:8045
    • 进阶写法:填局域网 IP,如 192.168.1.5:8045

    2. 局域网 IP 变动怎么办?

    如果你使用局域网 IP 配置,重启路由器后 IP 可能会变,这也是我目前使用的方法。
    解决

    在 Cloudflare Service URL 里填写计算机名,前提是你的计算机名是全网独一无二的?(如 http://My-Desktop:8045),让它通过主机名解析。

    服务器端配置示例

    最后,在远程 Linux 服务器上,只需要修改 JSON 配置文件中的 Base URL 即可:

    { "env": { "ANTHROPIC_AUTH_TOKEN": "sk-your-key-here", "ANTHROPIC_BASE_URL": "https://api.example.xyz", "ANTHROPIC_MODEL": "claude-sonnet-4-5-thinking" } } 

    希望能帮助到佬友,有更好的方法大家也可以在下面提出来呀。


    📌 转载信息
    转载时间:
    2026/1/18 15:50:26

    看到了佬的播放器项目:https://linux.do/t/topic/1473938
    以及大佬的 API(再次感谢):https://linux.do/t/topic/1212285
    秉承周末自己闲着也不能让 AI 牛马闲着,正好想试试 OpenSpec 效果如何于是有了下面的:
    mplayer-eight.vercel.app
    等实际试用段时间看看能不能替代 AppleMusic
    [那样我就可以把订阅退了,每月立省一杯奶茶 ]

    使用手机浏览器打开播放,只支持随机当背景音乐。
    多久会被杀后台还没测出来。。。
    用时约 2h

    项目地址:GitHub - yxegla/mplayer: 简洁优雅的在线音乐播放器 - iPhone 优化


    📌 转载信息
    原作者:
    nobody
    转载时间:
    2026/1/18 15:50:06

    最近折腾 Memos,用 claude code 和 codex 搓了一个小玩具,实现开源卡片笔记 Memos 的每日回顾,参考了 flomo。

    主要功能:

    • 卡片式翻阅:像抽卡一样回顾笔记,随时切换 “换一批。
    • Markdown - 支持标题、列表(含嵌套)、行内格式
    • 图片弹窗预览 - 多图预览和左右切换
    • 编辑同步 - 支持回顾中编辑当前 Memo 并保存到服务器

    使用

    复制脚本内容并粘贴到 设置-系统-自定义脚本,保存即可,右下角会出现 “每日回顾” 按钮。

    说明

    感谢站内各位大佬的公益站。我本人完全不懂代码,纯粹为了好玩,有什么改进或问题可能要麻烦大佬们亲自动手了,老弟水平有限 。
    下一步研究一下 blinko,感觉也很有意思。


    📌 转载信息
    原作者:
    04ffff
    转载时间:
    2026/1/18 15:50:04

    最近一段时间在做内容型网站、SaaS 博客和一些出海项目,SEO 仍然是一个绕不开的话题。

    但做得越久,越明显感觉到一个问题:

    大多数效率问题,并不出现在「写内容」,而是出现在「写之前」。


    先说下我踩过的坑

    我自己之前常见的工作流是:

    • 先定关键词
    • 看几篇 SERP 里的竞品
    • 凭经验在脑子里拼一个结构
    • 然后交给 AI 或编辑去写

    问题在于:

    • 这个过程高度依赖个人经验,不可复制
    • 不同人拆 SERP,结构差异很大
    • AI 写出来的内容经常 “像是对的”,但并不完整
    • 老文章流量下滑时,很难判断是哪里出了问题

    本质上是:内容规划这一步太模糊了


    我的思路:把「规划阶段」单独抽出来

    后来我干脆把人做 SEO 内容规划时的思考过程拆解了一下,做成了一个小工具,现在叫 DeepSeeds

    它不做 “直接写文章” 这件事,而是专注在两类更偏工程化的输出。


    1. SEO Content Brief(新内容)

    给定一个关键词,输出的是一份结构化 Brief,而不是成文内容:

    • 搜索意图拆解(信息型 / 商业型 / 混合)
    • 推荐的页面结构(H1 / H2 / H3)
    • 每一部分应该覆盖的问题点
    • 可直接交付给 AI / 编辑 / 外包的执行指引

    更像是一个 “内容 PRD”,而不是写作结果。


    2. Content Refresh Brief(老内容)

    这个功能是我自己用得最多的。

    针对已经存在的页面,做的是:

    • 当前页面结构 vs SERP 头部结构的对比
    • 哪些点没覆盖、哪些段落冗余
    • 给出明确的修改方向(补充 / 重写 / 合并)

    适合那种:

    页面以前有流量,现在掉了,但你不知道该怎么系统性去改。


    适合什么场景

    我觉得它比较适合下面这些情况:

    • 独立站 / 内容站 / 技术博客
    • SEO 流量是长期投入,而不是一次性投机
    • 已经在用 AI,但希望输出更稳定、更可控
    • 有一定存量内容,需要持续做内容维护


    项目地址

    DeepSeeds

    目前是个人项目,有免费额度,主要是想验证一件事:

    如果把内容规划这一步做清楚,后面的写作是不是反而更简单。

    项目还在迭代中,如果你本身也在做 SEO、内容系统或类似工具,
    很欢迎从技术、产品或使用逻辑上拍砖,提意见比单纯注册更有价值。


    📌 转载信息
    原作者:
    Deland
    转载时间:
    2026/1/18 15:49:29

    各位大佬好!最近笔记本更换了系统,从 Windows 换到了 Deepin 25。

    以前在 Win 下习惯用 AHK 自动化,现在发现 Deepin 使用.sh 脚本非常强大,虽然完全没有编程基础,但主打一个折腾。随即尝试用 AI 帮我写脚本,结果可想而知:

    就这一个脚本都磕磕绊绊、缝缝补补一两个月 (每天折腾一小会)。
    后知后觉意识到不是 AI 不行,而是我作为 “提问者” 词不达意,不懂如何给 AI 下达清晰的指令。

    想请教各位大佬:

    1. 入门路径: 想要系统性地提升 “提问力”,有没有公认的底层逻辑或框架值得学习?(比如大家常说的结构化提示词)

    2. 思维转变: 面对 AI 时,如何把模糊的需求拆解成它能听懂的逻辑指令?

    3. 进阶建议: 大家平时是如何打磨提示词的?有没有什么高质量的教程或者实战心得可以分享?

    希望有经验的大佬指点迷津,在此谢过!

    帖子也是通过 GPT 优化了一下,希望大佬们不要介意
    快捷.txt


    📌 转载信息
    原作者:
    15sir
    转载时间:
    2026/1/18 15:49:18

    打开上面的网址,默认会选择第一个 GCP 项目,如果和反代的项目不一致,再选择对应的
    然后勾选下面的预览版,保存即可。


    📌 转载信息
    原作者:
    Zephyr1996
    转载时间:
    2026/1/18 15:49:09

    Satellite

    全新 SAT 求解器喵


    技术栈

    • CUDA C++
    • RUST
    • PYTHON + JUPYTER


    功能

    • 高度可自定义的外部语言约束
    • VSCode Extension
    • GPU 运算
    • 现代化 CDCL
    • 分布式计算


    适用场景

    • 复杂可满足性公式求解
    • 机构拥有共享大型机计算资源
    • 二进制工程(见下文


    安装方法

    直接 cargo install satellite-cli 即可使用大部分 cli 功能
    如需 vscode extension 可自己编译
    python 扩展同理 暂时没有发布至 PyPi


    优势

    • GPU 加速计算
    • 无锁数据结构
    • 自动推导 batch dim
    • 支持外部约束
    • 高性能缓存


    二进制工程...?

    此求解器可用于移除 denuvo drm
    已测试 破解器代码永远不会发出
    denuvo 对性能影响约为 2~5%
    具体原理是:

    先通过 llvm lift 提升并展开动态链接 并 o3+trition pass
    然后探测 syscall 网络调用 提取上下文并构建 url 过滤 denuvo 认证服务器调用 标记
    接着构建 sat 图树 ast 分析 构建 anti-crash 断言 标记认证链路为不可达 (nop)
    运行 satellite 求解
    将条件应用回 ir 运行 o3+trition pass
    剔除 watchdog 进程 特征是注册大量崩溃处理和 vmcall
    dump 并 llvm 编译


    仓库地址


    📌 转载信息
    原作者:
    rand0mdevel0per
    转载时间:
    2026/1/18 15:47:12

    桌面端

    首页仪表盘渠道管理
    octopus | 为个人打造的美观优雅的 LLM API 聚合服务 支持 单渠道多 KEY 多端点 自动分组 自动同步上游模型 热重载 负载均衡 协议互转 用量统计1octopus | 为个人打造的美观优雅的 LLM API 聚合服务 支持 单渠道多 KEY 多端点 自动分组 自动同步上游模型 热重载 负载均衡 协议互转 用量统计2
    分组管理模型管理
    octopus | 为个人打造的美观优雅的 LLM API 聚合服务 支持 单渠道多 KEY 多端点 自动分组 自动同步上游模型 热重载 负载均衡 协议互转 用量统计3octopus | 为个人打造的美观优雅的 LLM API 聚合服务 支持 单渠道多 KEY 多端点 自动分组 自动同步上游模型 热重载 负载均衡 协议互转 用量统计4

    移动端

    首页渠道分组模型设置
    octopus | 为个人打造的美观优雅的 LLM API 聚合服务 支持 单渠道多 KEY 多端点 自动分组 自动同步上游模型 热重载 负载均衡 协议互转 用量统计5移动端渠道移动端分组移动端模型移动端设置


    功能

    • OpenAI Chat / OpenAI Responses / Anthropic 三种协议互转
    • 一套配置适应不同客户端,不需要反复更新 BASEURL 和 MODEL_NAME
    • 多渠道负载均衡
    • 用量统计

    功能亮点

    • 统一的模型名称,cli 客户端无需重启即可热重载渠道和模型

    • 自动从上游更新模型价格

    开源地址

    反馈问题

    没想到发布没多久,就收到佬友们如此热烈的支持,收到了很多反馈,感谢佬们的支持 你们的小就是对我最大的支持
    这里总结一下佬们反馈的功能建议,都会做的

    1. 添加渠道时自动将模型添加到分组 (已完成)
    2. 日志记录 (已完成)(增加是否保存历史日志的控制项,但是日志过多,日志页面可能会有卡顿)
    3. 设置页面增加系统信息 (已完成)
    4. Gemini API 的支持 (已完成) 感谢 @heerheer
    5. 同步渠道商模型 (已完成)
    6. 多数据库支持 SQLite、MySQL、PostgreSQL 直接部署到云平台 (已完成)
    7. Key 权限 (过期日期,金额限制) 统计数据 (已完成)
    8. Key 登录,以及 key 登录的单独页面显示 (已完成)
    9. 单渠道多 Key, 多端点 (已完成)
    10. 重构分组管理

    关于日志功能的一个投票,我个人从没有看过 newapi 的历史请求日志,我更倾向于仅实时日志,代码简单,数据库压力小

    • 53% 日志页面实时日志 + 历史日志

    • 47% 日志页面仅实时日志

    45 投票人


    📌 转载信息
    原作者:
    bestrui
    转载时间:
    2026/1/18 15:46:25