标签 开源工具 下的文章

第一步:开启 Chrome 远程调试权限

这是所有操作的前提,必须手动开启。

  1. 打开 Chrome 浏览器,在地址栏输入:chrome://inspect/#remote-debugging
  2. 勾选 “Allow remote debugging for this browser instance”
  1. 确认下方出现:Server running at: 127.0.0.1:9222(这表示“门”已打开)。


第二步:配置 MCP 服务

AionUI 图形界面配置

  1. 进入 AionUI 的 Settings(设置)Tools Settings(工具设置)

  2. MCP Management 区域点击 Add MCP Service

  3. 选择 Add via JSON,粘贴以下配置:

{ "mcpServers": { "chrome-devtools": { "command": "npx", "args": [ "-y", "chrome-devtools-mcp@latest", "--autoConnect", "--channel=stable" ] } } } 


第三步:激活连接(关键动作)

配置完成后,Gemini 并不会立刻接管浏览器,需要一次“握手”:

  1. 在 Gemini CLI 或 AionUI 中输入第一个指令,例如:截取当前网页的屏幕

  2. 切换回 Chrome 浏览器:你会看到页面顶部弹出一个系统确认框,询问 “Allow incoming debugging connection?”

  3. 点击 Allow(允许)

  4. 浏览器顶部出现横幅(显示“正在受自动测试软件控制”),说明连接成功。


第四步:实战常用指令

连接成功后,你可以直接用自然语言指挥 Gemini 处理你当前看到的网页:

  • 视觉分析
    • “帮我截个图,分析一下现在的 UI 布局有没有错位?”
  • 性能诊断
    • “分析当前页面的性能,告诉我 LCP(最大内容绘制)是多少,怎么优化?”
  • 代码调试
    • “检查当前页面的 Console 控制台,有没有报错?如果有,帮我解释原因。”
  • 网页抓取与操作
    • “提取当前网页中所有商品的价格并列成表格。”
    • “帮我点击页面上的‘提交’按钮。”(AI 会通过 DOM 树自动定位元素)


推荐模型:Gemini 3 Flash、Gemini 3 Pro、GLM 4.7(英伟达无限免费 API)
使用案例:



感谢 的AionUI
AionUi V1.7.4 更新:兼容了Newapi(Cowork开源版可以用公益站/中转站了)

也欢迎使用我的 AMC,这个教程的方法也都是我用 AMC 的深度搜索功能学会的
AMC更新:支持Markdown 转 PDF、划词 TTS


推荐使用 @bbbugg 佬的AIStudioToAPI 构建自己的API 池
https://linux.do/t/topic/1371269

【二改】二改build反代(AIStudio to API),优化云端部署


📌 转载信息
原作者: yeahhe
转载时间: 2026/1/25 08:06:46

https://linux.do/t/topic/1465569?u=yeahhe




📌 转载信息
原作者: yeahhe
转载时间: 2026/1/25 08:05:53

几个月前佬 开发了一个给图片添加AI水印的,当时觉得很好玩,但是他把源码弄丢了,我想二开都没东西 。上个月又刷到帖子发现了AI Studio网页上有历史水印的素材,这我可不困了,开始库库搜集所有AI生成水印的素材。这两天不是opencode很火么,就用这个项目练手搓出来一个我认为可以交付的网页。


基本功能:

  • 单张或者批量导入图片
  • 调整尺寸匹配主流AI生成尺寸(可跳过,可缩放,可裁切)
  • 添加各种AI水印,甚至自定义文字或者图片水印
  • 导出可选择多种格式和图片质量

水印种类:

  • 谷歌:当前白色十字芒星/旧版彩色十字芒星/旧版AI
  • 字节:豆包/即梦/Dreamina(即梦海外版)
  • 阿里:千问/通义万相/夸克造点
  • 百度:百度/文心
  • 智谱:智谱清言/ZAI
  • 腾讯:腾讯混元
  • 自定义:任意图片/文本
  • 如果有其他平台/渠道的水印需要添加,欢迎在评论区提出!

细节与亮点:

  • 静态网页,完全本地处理,数据安全
  • 调整尺寸环节可以缩放图片,也可以调整宽高比裁切图片(当水印选择“无”时,你甚至可以把他当成批量缩放/裁切到特定比例的工具)
  • 水印自动适配不同分辨率,保证水印比例和各家官方一样
  • 可以批量上传图片,可以左下角删除单张图片,可以zip批量导出
  • 响应式,中英双语,暗黑模式


看起来很炫酷,但我们大部分的需求是去水印啊,这加水印有什么用呢?

当然也可以叠水印杀人书


开源地址:GitHub - JasonWenTheFox/VibeMark

(喜欢的点个star吧!)

即开即用Demo:

已知需要优化的地方:

缺失Grok的两个版本的水印,缺少Adobe Firefly的水印,很遗憾,目前他们的渠道都没有水印,我没有黑底的水印图,无法制作。


📌 转载信息
转载时间: 2026/1/25 08:05:24

从上次说起

我的skill都可以在这里看到

安装也是非常的简洁

npx skills add BenedictKing/codex-review
npx skills add BenedictKing/tavily-web
npx skills add BenedictKing/context7-auto-research
npx skills add BenedictKing/exa-search
npx skills add BenedictKing/firecrawl-scraper

上下文占用非常少,主打的就是一个省钱还好用


📌 转载信息
原作者: Foward
转载时间: 2026/1/25 08:04:37

最近整理微服务架构笔记时快被逼疯了:写了 3 页文档,结果评审时被指出漏了 “分区容忍性” 的核心场景;之前存的 “分布式锁” 模块,换个电商场景根本用不了 —— 索性花 3 天写了个轻量化工具 edisao,把自己的知识管理流程做成了闭环,现在开源出来给有同样痛点的朋友用~

我写的原子化校验核心代码(自己调试了5次才跑通)

def check_atomicity(module: dict) -> dict:

# 针对微服务模块的校验逻辑(自己踩坑后加的)
if "微服务" in module["content"]:
    if not ("注册中心" in module["content"] and "熔断" in module["content"]):
        return {"status": "fail", "reason": "微服务模块缺核心组件"}
return {"status": "pass", "reason": "原子化检测通过"}

10分钟跑通edisao(亲测Windows/Mac通用)

  1. 克隆仓库:git clone https://gitcode.com/edisao/edisao-知识管理闭环模型2.0.git
  2. 装依赖:pip install -r requirements.txt(我踩的坑:Python版本要3.8+)
  3. 跑第一个校验:打开test_module.yaml,填自己的技术笔记,然后运行python atomicity_check.py

目前这个工具只适配了技术知识整理,接下来打算加 “考研考点模板”(自己也在备考),如果有朋友用了发现问题,欢迎去 GitCode 提 Issues~
https://gitcode.com/edisao/edisao-pkm-v2-core

【项目背景】 英语持续学习者一枚,平时高度依赖浏览器翻译。但在每天使用非浏览器应用比如每天早上看网易邮箱大师汇总的各种国外邮件时,叽里咕噜说了一大堆完全看不懂,只能手动复制去翻译,步骤繁琐。 市面上的大模型翻译软件虽然强大,但对于我这种只求 “快速看懂” 的场景来说,有点 “杀鸡用牛刀”。

【开发初衷】 既然刚升了 3 级,最近发现有有始皇提供的 DeepLX API Key 这个好东西,不想浪费,于是萌生了自己动手的想法。 既然是自用,主打一个超低占用、极简主义。不搞花里胡哨的功能,只解决核心痛点。

【技术栈】

  • 框架: Tauri + Rust(确保超低内存占用)
  • 开发辅助: 代码主要由 Sonnet 4.5 生成
  • 翻译源: 完美适配 L 站 DeepLX API

【功能展示】

1. 单词翻译:响应迅速

2. 长短句翻译:准确流畅

3. 极简设置:填入 Key 即可用

4. 极致轻量:几乎不占内存

【致谢】 特别感谢 L 站 提供的优质资源,以及 wong 公益站随时跑路公益站 提供的支持

1、单词翻译效果:

2、长短句翻译效果

3、设置

4、超低占用

最后
再次感谢 L 站,以上有和我类似诉求的佬友试试看,由于我本身是做 python 和 C++ 的开发,这个项目使用的技术依赖 AI, 难免有没考虑到的,使用过程中可以随时反馈,对了由于我没有苹果电脑,使用苹果的佬友可以自行编译看看。


📌 转载信息
原作者:
ljchengx
转载时间:
2026/1/20 10:09:00

刚好最近在研究 RSS 订阅各种信息源,整理了一份清单分享给大家。

包含两部分:

  1. 官方 RSS - LinuxDo、V2EX、Hacker News、GitHub 等网站自带的 RSS
  2. RSSHub 路由 - 微博、知乎、B 站、掘金等通过 RSSHub 生成的 RSS


项目地址GitHub - JackyST0/awesome-rsshub-routes: 🎯 精选 RSSHub 实用路由推荐,让你的 RSS 阅读更高效!

RSSHub 官方仓库GitHub - DIYgod/RSSHub: 🧡 Everything is RSSible

RSSHub 官方文档https://docs.rsshub.app


欢迎 Star 和补充更多实用订阅源!


📌 转载信息
原作者:
JackyST0
转载时间:
2026/1/20 10:04:14

今天在看一个 pdf 文档,但是原文档没有目录,导致跳转比较麻烦。搜了下,好像没有比较方便快捷的工具可以加目录的,就动手写了个。

核心特性

  • 智能目录提取:内置高精度算法,一键扫描文档前 50 页并自动识别潜在层级结构。
  • 自由拖拽排序:支持通过手柄直接拖拽调整目录顺序,所见即所得。
  • 多层级支持:支持三级目录结构(章、节、点),轻松应对复杂文档。
  • 页码偏置修正:自适应纸质页码与电子页码的偏差,确保跳转精准无误。
  • 本地化存储:尊重隐私,文件处理完成后自动清理服务器残留。

Docker 部署

  1. 拉取镜像

docker pull ghcr.io/jiangnan1224/pdf-toc-editor:latest

  1. 运行容器

docker run -d -p 5000:5000 --name pdf-toc-editor ghcr.io/jiangnan1224/pdf-toc-editor:latest

应用截图


体验地址

开源地址


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

作为一个热爱摸鱼的开发者,每天都要和 Claude Code、Codex、Gemini 这些 AI 工具打交道,常常多并发跑,有些任务确实是太久了,而有些任务完成又太快了,为了赶进度有时候确实要一直在电脑旁,想摸鱼都不行。

于是结合我自己的一些实际情况,我写了一个 AI CLI Complete Notify(AI CLI 任务完成提醒)

以监听的形式,通过解析输出中的特定标记或结束信号来判定 “一轮任务完成”,再结合耗时阈值(minDurationMinutes)做筛选,最后调用 engine.js 统一派发通知

支持了 多种通知方式,确保无论你在刷什么,都能收到提醒:

  1. 协作平台(飞书 / 钉钉 / 企微):摸鱼时最常用,假装在工作
  2. Telegram Bot:支持代理,适合国际摸鱼爱好者
  3. 邮件通知:适合不想装额外软件的人
  4. 桌面通知:系统原生气泡提示,不容易被忽略
  5. 声音提醒:TTS 语音播报 + 提示音,戴着耳机也能听到
  6. 手环提醒:通过手环 App 转发通知,手机不在身边也能收到

你可以同时开启多个通道,比如我自己就开了飞书 + 桌面通知 + 声音提醒。而且如果你有智能手环、手表的话,也可以允许这些应用提醒,这样手机不在身边也可以及时收到。

不需要修改 claude、codex、gemini 这些 ai 工具的环境配置,只需要修改这个项目里的.env 文件就可以了,支持 exe 打开,支持托盘隐藏,内存占用小,适用于交互式 CLI / VSCode

GitHub 地址(求 star)

https://github.com/ZekerTop/ai-cli-complete-notify

Windows 用户

  1. Releases 下载最新的 ai-cli-complete-notify-x.x.x.zip

  2. 压缩包解压后放到任意目录(如 D:\Tools\

  3. 复制 .env.example.env,按照里面的要求填写通知配置

  4. 双击运行桌面应用(可滑至 “测试” 测试是否正常运行,需要在界面上打开相应的开关)

macOS / Linux 用户

# 克隆仓库
git clone https://github.com/ZekerTop/ai-cli-complete-notify.git
cd ai-cli-complete-notify

# 安装依赖
npm install

# 配置环境变量 cp .env.example .env # 编辑 .env 文件,填写您的通知配置 # 运行桌面应用
npm run dev

自己实际测试了很久,也修改了很多版本 ,如果你有其他更好的建议或者不一样的看法 ,欢迎提交 issue,最后求个 star!!!!拜托拜托


📌 转载信息
原作者:
zekertop
转载时间:
2026/1/19 18:23:07

解决像 GoogleAIStudio 不能上传文件夹的痛点。

该工具可以将文件夹里面所有文件内容保持目录结构进行合并,一键复制给 AI。

项目地址:GitHub - AkenClub/Folder2Prompt: Prepare codebase context for AI. (为 AI 准备代码库上下文)

里面也有 Github Page 的地址可以直接用


📌 转载信息
转载时间:
2026/1/19 18:17:38

​《FFmpeg开发实战:从零基础到短视频上线》一书的“第 12 章  FFmpeg的移动开发”介绍了如何使用FFmpeg在手机上剪辑视频,方便开发者更好地开发类似剪映那样的视频剪辑软件。那么在Android系统上还有一款国产的开源视频压缩工具VideoSlimmer,通过该框架可以更方便地压缩视频大小,下面就来介绍如何在App工程中使用VideoSlimmer。

VideoSlimmer是一款专为Android平台设计的开源视频压缩工具,它通过Mediacodec实现视频压缩功能,并具有较高的压缩性能。VideoSlimmer支持压缩的视频格式包括mp4和3gp。
VideoSlimmer的源码托管地址为 https://github.com/zolad/VideoSlimmer (星星数0.2k),最近版本更新于2018年10月,该版本的压缩包下载地址为 https://github.com/zolad/VideoSlimmer/archive/refs/heads/master.zip
VideoSlimmer提供了两种集成方式:引用在线库、直接导入源码,分别说明如下:

一、引用VideoSlimmer在线库

Android工程引用VideoSlimmer在线库时,需要修改以下两个配置:
1、打开模块级别的build.gradle,给dependencies节点补充下面几行配置,表示引入1.0.0版本的VideoSlimmer库:

implementation 'com.zolad:videoslimmer:1.0.0'

2、打开App模块的src/main/AndroidManifest.xml,给manifest节点补充下面两行权限配置,表示声明读写存储空间两个权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

二、直接导入VideoSlimmer源码

由于VideoSlimmer的发布时间较早,为了让小海豚版本的Android Studio Dolphin能够打开它的范例工程,需要对VideoSlimmer的App工程作如下修改:

1、升级Gradle版本

打开VideoSlimmer工程的gradle/wrapper/gradle-wrapper.properties,把下面这行配置

distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip

改成如下这行配置,表示把Gradle版本从4.4升级到5.4.1。

distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-bin.zip

2、更新工具库的仓库位置

打开VideoSlimmer工程的build.gradle,把里面的两处“jcenter()”都改为以下配置:

// 以下四行添加阿里云的仓库地址,方便国内开发者下载相关插件
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google'}
maven { url 'https://maven.aliyun.com/repository/gradle-plugin'}
maven { url 'https://maven.aliyun.com/repository/public'}
google()
mavenCentral()

因为jcenter仓库已经废弃,所以改成引用国内的仓库位置。
此外,还要把下面两行配置

classpath 'com.android.tools.build:gradle:3.1.2'

改成下面这行配置,表示把Gradle插件版本升级到3.2.0版本:

classpath 'com.android.tools.build:gradle:3.2.0'

3、调整模块的build.gradle

打开VideoSlimmer工程的app/build.gradle,找到下面这行配置:

compileSdkVersion 28

在上面这行下方补充下面这行配置,表示指定编译工具的版本号:

buildToolsVersion "28.0.3"

还要把下面这行配置

implementation 'com.android.support:appcompat-v7:28.0.0-rc01'

改成下面这行配置:

implementation 'com.android.support:appcompat-v7:28.0.0'

改完build.gradle,记得单击Sync同步App工程配置。

完成以上三处修改后,重新编译App安装到真机上,挑选一个视频后进入视频压缩界面如下图所示:

可见选中视频正在压缩当中。稍等片刻视频压缩完成,界面下方展示结果视频的保存路径以及压缩进度,如下图所示:

发现压缩前的视频大小为85MB,压缩后的视频大小为12MB,仅为原视频的七分之一左右,可见压缩效果还是不错的。压缩之后的结果视频放在公共存储空间的Movies目录,完整路径为“我的手机/Movies/VIDEOSLIMMER_yyyymmdd_hhmiss.mp4”,其中yymmdd为年月日,hhmiss为时分秒。

更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。

自从各大善人慷慨解囊,各种工具层出不穷,开源仓库百花齐放。在 ai 编程,ai 使用开源库工具的便利的同时,不知不觉中,我们的电脑也早已是千疮百孔!

工具的版本落后!
不知名的依赖包!
打开就没关过的服务端口!
安上就找不到的命令行工具!
设置了就忘了的系统环境配置!
每一个都在威胁着你的开发环境和日常使用的安全性!

所以,我又搓了个好东西,分享给大家!

麻烦支持个小星星
[Dev-Janitor 清道夫]

欢迎体验,并反馈你的宝贵意见!

@石头 大佬提供概括图



📌 转载信息
原作者:
Jojo_Coco
转载时间:
2026/1/18 10:09:17

importsysfromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QListWidget,QVBoxLayout,QLineEdit,QWidget,QFrame)fromPyQt5.QtCoreimportQt,QEventfromPyQt5.QtWidgetsimportQDesktopWidgetimportpyautoguiimportpyperclipimporttimedefpowertoy_active_window(text):sleep_second=0.2time.sleep(sleep_second)pyautogui.hotkey("win","alt","k")time.sleep(sleep_second)pyperclip.copy(text)pyautogui.hotkey("ctrl","v")time.sleep(sleep_second)pyautogui.hotkey("enter") classCommandPalette(QWidget):def__init__(self,parent=None):super().__init__(parent)# 1. 设置 UI 属性:无边框、置顶、背景透明self.setWindowFlags(Qt.FramelessWindowHint|Qt.Dialog)self.setAttribute(Qt.WA_TranslucentBackground) # 外层容器(用于实现圆角和边框)self.container=QFrame(self)self.container.setFixedWidth(500)self.container.setStyleSheet("""QFrame {background-color: #252526;border: 1px solid #454545;border-radius: 6px;}""") layout=QVBoxLayout(self.container) # 2. 搜索输入框self.search_bar=QLineEdit()self.search_bar.setPlaceholderText("键入命令名称以筛选...")self.search_bar.setStyleSheet("""QLineEdit {background-color: #3c3c3c;color: #cccccc;border: 1px solid #007acc;padding: 6px;font-size: 14px;selection-background-color: #264f78;}""") # 3. 命令列表self.list_widget=QListWidget()self.list_widget.setStyleSheet("""QListWidget {background-color: #252526;color: #cccccc;border: none;font-size: 13px;outline: none;}QListWidget::item { padding: 10px; border-radius: 4px; }QListWidget::item:selected { background-color: #094771; color: white; }QListWidget::item:hover { background-color: #2a2d2e; }""") layout.addWidget(self.search_bar)layout.addWidget(self.list_widget) main_layout=QVBoxLayout(self)main_layout.setContentsMargins(0,0,0,0)main_layout.addWidget(self.container,alignment=Qt.AlignCenter) # 模拟命令数据# self.commands = [# "File: New File",# "Git: Commit All",# "Python: Run Current File",# "Settings: Open Settings",# "Terminal: Toggle Terminal",# "View: Layout Grid"# ]self.commands=[["1. book","book code"],["2. anti2","anti2 code"],["4. chrounim","chro"],["5.q-dir","q-dir"],]self.refresh_list("") # 信号连接self.search_bar.textChanged.connect(self.refresh_list)self.search_bar.returnPressed.connect(self.execute_selected)self.list_widget.itemClicked.connect(self.execute_selected) # 2. 当在列表中通过方向键选中某项并按回车时,触发 itemActivatedself.list_widget.itemActivated.connect(self.execute_selected) # 安装事件过滤器以捕获按键self.installEventFilter(self) defrefresh_list(self,text):self.list_widget.clear()# 简单的包含搜索(不区分大小写)# filtered = [cmd for cmd in self.commands if text.lower() in cmd.lower()]filtered=[info[0]forinfoinself.commandsiftext.lower()ininfo[0].lower()]self.list_widget.addItems(filtered)ifself.list_widget.count()>0:self.list_widget.setCurrentRow(0) defexecute_selected(self):item=self.list_widget.currentItem()ifitem:print(f"触发动作:{item.text()}")text=item.text()item=[eforeinself.commandsife[0]==text][0]send_text=item[1]print("#执行命令#:{}".format(send_text))powertoy_active_window(send_text)# self.hide()QApplication.instance().quit() defshow_palette(self):width=500height=400# 假设高度为 400self.setFixedSize(width,height) # 2. 获取屏幕中心# availableGeometry() 会避开任务栏,确保真正的视觉垂直居中screen_geo=QDesktopWidget().availableGeometry()screen_center=screen_geo.center() # 3. 计算面板位置,使其中心点与屏幕中心点重合# 我们可以通过 moveCenter 方便地实现qr=self.frameGeometry()qr.moveCenter(screen_center)self.move(qr.topLeft()) # 4. 显示并聚焦self.show()self.raise_()self.activateWindow()self.search_bar.setFocus()self.search_bar.selectAll()# 方便用户直接覆盖键入 defeventFilter(self,obj,event):ifevent.type()==QEvent.KeyPress:# Esc 键退出ifevent.key()==Qt.Key_Escape:self.hide()returnTrue# 下方向键快速进入列表选择ifevent.key()==Qt.Key_Downandself.search_bar.hasFocus():self.list_widget.setFocus()returnTruereturnsuper().eventFilter(obj,event) classMainWindow(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("PyQt5 VS Code Command Palette")self.resize(1000,700)# self.minimumSize()self.showMinimized()self.setStyleSheet("background-color: #1e1e1e;")# 模拟 VS Code 背景 # 初始化命令面板self.palette=CommandPalette(self)# self.palette.hide()self.palette.show_palette()defcenter_on_screen(self):# 获取窗口几何结构frame_geometry=self.frameGeometry() # 获取屏幕中心点# QDesktopWidget().availableGeometry() 会排除任务栏占据的空间screen_center=QDesktopWidget().availableGeometry().center() # 将窗口几何结构的中心点移动到屏幕中心点frame_geometry.moveCenter(screen_center) # 移动窗口左上角到计算出的位置self.move(frame_geometry.topLeft()) defkeyPressEvent(self,event):# 绑定快捷键 Ctrl+Shift+P (Qt.ControlModifier | Qt.ShiftModifier)if(event.modifiers()==(Qt.ControlModifier|Qt.ShiftModifier)andevent.key()==Qt.Key_P):self.palette.show_palette() if__name__=="__main__":app=QApplication(sys.argv)# 设置应用字体app.setStyle("Fusion")window=MainWindow()window.show()sys.exit(app.exec_())

这个东西的主要作用是当我输入 1 时,它会找到 ["1. book", "book code"]这一项,然后 取出book code,然后激活 window 窗口切换器
,我的窗口切换器的的快捷是Win+alt+k,本来想用 ahk 来写的,但是 ahk 写 command picker 实在是不会.

环 9 发布帖:小程序 - 【百万注册小程序大赛作品】BandTOTP | 米坛社区 BandBBS
环 9p 小程序 - BandTOTP | 米坛社区 BandBBS
环 10 小程序 - BandTOTP | 米坛社区 BandBBS
REDMI WATCH 5/6:小程序 - BandTOTP | 米坛社区 BandBBS

实拍图:
rw6:


mb10:

食用教程:

  1. 先在穿戴设备端安装 bandtotp(.rpk
  2. 安装移动端应用 (就是那个 app-release
  3. 使用 Stratum 添加你的 2FA 数据,然后在软件中备份成 URL 列表文件(左下角三横 -> 备份 -> 备份至 URL 列表文件
  4. 去运动健康里面同步一下 然后打开 Bandtotp-> 选择文本文档 -> 选择从 Stratum 备份出来的文件,会自动打开穿戴设备端 bandtotp 并导入
  5. 然后就可以食用了)

PS: 可以使用 AstroBox 安装 bandtotp 手环 / 手表端 官网:astrobox.online

如果你担心数据泄露,
这个程序是开源的,你可以自己编译。
band:GitHub - leset0ng/BandTOTP-Band: a totp client for mi band 9
android:GitHub - leset0ng/BandTOTP-Android: android client for band totp

需要用到的资源放在网盘里了 自取:
https://alist.cxkpro.top/Xiaomi Wearable/quickapp/bandtotp


📌 转载信息
转载时间:
2026/1/18 08:42:01

github 地址:

dreamlonglll/mini-mqtt-client: 一个开源的 mqtt 客户端工具。支持保存命令、定时循环发送和预处理脚本

开发原因

  1. mqttx 不好用,没有指令存储功能
  2. 佬友的另一个 mqtt 项目 【https://linux.do/t/topic/1365043】 采用的 Electron 架构,有点大。

开发目的

主要目的: 自用
次要目的: 为开源事业做一次贡献

项目优势

  • 采用 tarui 架构,整包大小控制在 6M(win/linux 端)左右
  • github action 打包编译 win+mac+linux 多端应用
  • 支持 tls + 自签 CA + 客户端证书 + 证书密钥
  • 支持指令存储以及循环发送(按 server 分割)
  • 支持预处理脚本(按 server 分割)
    • 采用 JavaScript 脚本引擎 + 沙箱模式
    • 支持:发送前预处理、接收后处理
    • 内置加密工具库(AES、SHA、MD5、HMAC 等)
  • 支持切换数据存储位置,可以搭配 OneDrive 实现云端同步
多图


开源感言

首先感谢佬友的使用,也十分感谢提出建议的佬友,并期待佬友提出更多的建议

其他

目前时间挺空的,会及时更新


📌 转载信息
原作者:
wang.wai
转载时间:
2026/1/16 12:25:02

腾讯AngelSlim升级,首个集LLM、VLM及语音多模态为一体的投机采样训练框架,推理速度飙升1.8倍

0%
icon展开列表
腾讯AngelSlim升级,首个集LLM、VLM及语音多模态为一体的投机采样训练框架,推理速度飙升1.8倍
今天
img
DeepSeek连发两篇论文背后,原来藏着一场学术接力
今天
img
仅需一个混频器的无线射频机器学习推理,登上Science Advances!
今天
img
国内首个可复现!萝博派对公开人形机器人 “从 0 到跑” 全开源方案
01月15日
img
联发科天玑9500s、8500发布:GPU、光追拉满,红米Turbo 5Max将搭载
01月15日
img
通用级PixVerse P1的技术突破,揣着进入平行世界的密码
01月15日
img
Mira公司内乱?CTO被开除,带团队回OpenAI,翁荔上推发言
01月15日
img
Nature丨清华等团队揭示AI科研双重效应:个人效率亦或是科学边界
01月15日
img
刚刚,喝到了千问APP给我点的奶茶
01月15日
img
人脸机器人登上Science Robotics封面:用AI教会仿生人脸机器人「开口说话」
01月15日
img
实测夸克「千问划词快捷指令」,这7个邪修Prompt,建议收藏
01月15日
img
已证实!清华姚班陈立杰全职加入OpenAI,保留伯克利教职
01月15日
img
解锁任意步数文生图,港大&Adobe全新Self-E框架学会自我评估
01月15日
img
5分钟定制一个AI采购专家:讯飞发布“招采智能体工厂”,重新定义行业开发范式
01月15日
img
Agent时代,为什么多模态数据湖是必选项?
01月15日
img
大模型长脑子了?研究发现LLM中层会自发模拟人脑进化
01月15日
img
性能提升60%,英特尔Ultra3这次带来了巨大提升
01月14日
img
继宇树后,唯一获得三家大厂押注的自变量:具身模型不是把DeepSeek塞进机器人
01月14日
img
Sebastian Raschka 2026预测:Transformer统治依旧,但扩散模型正悄然崛起
01月14日
img
端到端智驾新SOTA | KnowVal:懂法律道德、有价值观的智能驾驶系统
01月14日
img

腾讯AngelSlim升级,首个集LLM、VLM及语音多模态为一体的投机采样训练框架,推理速度飙升1.8倍

图片

随着大模型步入规模化应用深水区,日益高昂的推理成本与延迟已成为掣肘产业落地的核心瓶颈。在 “降本增效” 的行业共识下,从量化、剪枝到模型蒸馏,各类压缩技术竞相涌现,但往往难以兼顾性能损耗与通用性。

在此背景下,投机采样作为一种 “另辟蹊径” 的推理加速范式,正凭借其近乎无损的加速效果成为业界新宠。腾讯混元近日升级的 AngelSlim 训练框架,首次将这一技术的潜力拓展至 LLM、VLM 及语音的全模态场景,实现了从 “可加速” 到 “善加速” 的关键跃迁。其核心在于独创的 Eagle3 训练架构,通过让小模型学会 “前瞻性” 地为大模型起草多步候选 token,再由大模型并行验证,一举将大模型解码阶段的算力冗余转化为提速动能,实测最高可带来 1.9 倍的推理速度飙升。这不仅是一次技术升级,更是对下一代高效推理基础设施的重要定义,为多模态 AI 应用的实时化、普惠化铺平了道路。

一、AngelSlim + 投机采样

投机采样是一种通过小模型多步预测 + 大模型一步验证的推理加速技术,其核心思想是:使用一个轻量级的草稿模型生成多个候选 token,由目标模型对候选结果进行并行验证是否接受,以此来并行解码加速,在有效利用大模型解码阶段的算力冗余,提升推理吞吐并降低单请求延迟。

AngelSlim 是一款集成了包括量化、投机采样等压缩算法,面向全模态的大模型压缩算法工具包。此次对投机采样训练进行了重磅升级,支持了大语言、多模态理解、语音等不同模态大模型投机采样草稿模型训练能力。

AngelSlim 以 “Eagle3 训练即部署” 为设计核心,提供从数据处理、模型封装到投机采样算法训练的完整链路,帮助开发在不侵入现有模型结构的前提下,显著降低推理时延与计算成本,各模态、各类大模型加速可达 1.4-1.9 倍。

图片

Github 开源地址:https://github.com/Tencent/AngelSlim

二、核心亮点

1. 覆盖从文生文、多模态理解到语音的全模态投机采样训练

AngelSlim 是一个从设计之初就支持全模态的投机采样训练框架,通过统一的训练接口,不同模态之间共享核心算法与工程能力,避免重复造轮子。

2. 面向部署

AngelSlim 并不止步于 “能训”,而是强调训出来就能用。AngelSlim 训练产出的模型可以无缝用于 vLLM/Sglang 等框架进行部署。

三、核心训练组件解析

图片

1. 数据处理模块

图片

数据处理模块为投机采样训练多个模态提供稳定、可复用的数据基础,主要包括:

a. 数据重采样:针对分布外数据集重新采样,生成分布内数据集用以训练。

b. 数据预处理:

i. 统一不同模态的数据格式,将文本、图像、音频等输入标准化处理成 token ids 和 loss mask。

ii. 草稿模型裁剪词表的映射。

c. 隐藏特征提取:根据处理好的 token ids 获取对应的隐藏特征。

图片

2. 模型模块

模型模块是 AngelSlim 实现高度扩展性的关键。

a. 统一的 TargetModel 接口

i.AngelSlim 提供统一的 TargetModel 接口,包括模型加载与权重管理、前向计算、中间层 / 隐状态特征提取等抽象方法;

b. 低成本扩展新的模型后端

ii. 对于新的模型架构或后端,用户只需实现 TargetModel 中定义的抽象方法即可完成模型注册并接入训练流程,无需修改训练器或核心算法代码。这一设计极大降低了对新模型、新模态的适配成本。

图片

3. 训练器模块

a. 训练器针对 Eagle3 算法特点设计了两种训练模式:在线训练和离线训练。在线与离线训练的区别在于是否预先生成并存好全量数据的 hidden states。在线训练适合小尺寸模型或显存足够的场景,离线训练适合大尺寸模型、低显存高磁盘空间机器。

b. 训练器实现封装了 Eagle3 等投机采样算法训练的关键逻辑:

i. 训练时测试(training-time-test):训练时模拟 Eagle3 模型多步生成过程,让 Eagle3 模型看到并学习使用自己的预测。

c. 训练器原生支持断点续训能力,完整保存并恢复:

i. 草稿模型参数

ii.Optimizer/ LR Scheduler 状态以及训练进度

四、实践与部署

1. 快速开始

当安装好 AngelSlim 后,进入 AngelSlim 根目录按照如下命令可以快速开始 Eagle3 的训练:

# 启动vLLM 服务
bash scripts/speculative/run_vllm_server.sh
# 生成训练数据
bash scripts/speculative/generate_data_for_target_model.sh
# 开始在线训练
bash scripts/speculative/train_eagle3_online.sh

其中前两条命令是准备数据,对训练数据进行重采样,生成目标模型分布内的数据。这一步是可选项,如果训练数据已经是来自目标模型的 SFT 数据或自身生成的数据,这一步可跳过。对 Eagle3 模型进行训练直接执行最后一条命令即可,更多进阶的使用指南可以参见我们的文档。

我们提供了全面的多模态模型 Eagle3 训练与部署指南,支持 LLM / VLM / Audio (ASR & TTS) 模型。

详见:https://angelslim.readthedocs.io/zh-cn/latest/features/speculative_decoding/eagle/eagle.html

2.AngelSlim 训练模型的加速表现

我们使用 vLLM 在代码、数学、指令跟随、文本生成、多模态理解等任务上评测了 AngelSlim 所训练的 Eagle3 模型,设置 num_speculative_tokens=2 or 4 下我们所训的模型接收长度可达 1.8-3.5,最高加速可达 1.4-1.9 倍。

图片

3. 代码和模型链接

  • AngelSlim 代码 Github 开源仓库:https://github.com/Tencent/AngelSlim

  • Hugging-Face Eagle3 模型与权重:https://huggingface.co/collections/AngelSlim/eagle3

五、未来计划

在未来规划中,我们将从工具与算法两个层面持续推进投机采样能力演进:工具方面,计划支持基于 vLLM 的离线 hidden states 生成,以进一步降低数据构建与训练成本,并通过系统性的训练加速优化提升整体训练效率;算法创新方面,将探索多模态理解与语音输入信息在 Eagle3 模型中的深度融合,统一建模文本、视觉与语音特征,拓展投机采样在全模态场景下的适用性与加速潜力。

https://sysre.cn/

https://github.com/NORMAL-EX/LetRecovery

就是把重装系统简化了/自动化了。省去了各种手动操作,小白一看就会。点点鼠标就能重装系统。

昨晚上试用了一下,效果很好,可以恢复自定义的 wim esd 之类的系统包。甚至在各种云服务器上都能运行。

各位程序员朋友如果有亲戚朋友求助装系统,就用这个工具试试。

新开发的项目,或许会有些 bug ,开发者很热心会给排查问题的。

目前的缺点就是没有内置 PE,运行重装之前要下载 800M 左右的 PE。瑕不掩瑜,开发者后续会优化 PE 体积的。

我的工作流是一个围绕 superpowers 插件Loop,superpowers 的理念是:先思考再动手。当你提出一个需求,不会急于写代码,而是先退一步问你"你真正想要实现什么",通过对话梳理出完整的设计方案,再分步执行。

核心设计是 masterworker 分离。

  • 脑暴会话 (master):专注于思考和设计,输出高质量的设计文档和执行计划
  • 执行会话 (worker):专注于代码实现,执行详细的计划

分享一下我的 ClaudeCode 工作流:Kitty + Zed + superpowers,可以减少和 AI 的反复拉扯,一次做对1

1、需求录入 - 首先我会在 Zed 上进行需求录入,采用 md 格式。这一步非常重要,我大概有 30% 的时间花在需求录入上,我会把能想到的关于此需求的背景、最终目标、可行的技术方案、风险点、外部 API 文档等等一切资源,都在需求文档中说明。对于需求文档,我不会太在意格式,会有比较多口语化的表达。

2、脑暴阶段 - 把需求 MD 喂给 Claude,调用 /superpowers:brainstorm 和 claude 进行思维碰撞。这个阶段不写任何代码,只讨论设计方案和实现细节,最终输出 design.mdimplement.md,保证最终的实现方案是完美符合我的预期的。

3、 执行阶段 - 这里我会选择新起一个 ClaudeCode 会话,而不是在脑暴会话中进行代码实现。新会话的好处:一、原先脑暴会话已经经过多轮对话了,一般情况下上下文会比较满,新会话响应更快,并且不会“犯傻”;二、implement.md 足够详细,无需额外上下文

4、 CodeReview - 在 Zed 中进行代码审查和功能验收。关于代码审查,对于一些代码细节和实现原理,这里我会使用 zed-agent 来辅助我进行代码 review,当然,你也可以在终端新建一个 ClaudeCode 会话或者使用 Zed 的 Claude Agent。原则是尽量不在脑暴和执行会话中引入太多不必要的问题,保持这两个会话的「干净」。发现问题后,将改进项写入新的需求 MD

5、 LOOP - 改进项 MD 喂回脑暴会话,开始下一轮脑暴迭代

非常简单,但是效果超群。充分的前期设计可以提升 AI 的效率和质量,避免多次的来回拉扯。

举个真实案例:我用这套工作流将个人博客从 Quarz 框架迁移到 Astro 框架。脑暴阶段确认好设计方案后,我让 Claude 执行计划,然后就去睡午觉了。醒来发现 Claude Code 已经完美完成任务——中间零中断,一次成功,共计 5000+ 行代码变更。

一个基于 Wails 框架开发的网页备份工具,支持完整备份网页内容,包括 HTML、CSS、JavaScript、图片等所有资源,并提供隐私清理功能。

Star History

Star History Chart

⚠️ 重要声明

本工具仅供学习和研究使用,请勿用于任何违法活动!

  • 🎓 学习目的:仅用于学习网页技术和备份个人网站
  • 📋 遵守规则:请遵守目标网站的 robots.txt 和使用条款
  • 🚫 禁止滥用:不得用于恶意爬取、侵犯版权或其他违法行为
  • ⚖️ 自负责任:使用者需自行承担使用责任

🚀 功能特性

核心功能

  • 📦 完整备份:备份网页的所有资源文件(HTML、CSS、JS、图片、视频等)
  • 🛡️ 隐私清理:自动移除第三方跟踪代码、统计代码、广告代码
  • 📊 实时进度:显示备份进度和文件下载状态
  • 🗜️ ZIP 打包:自动将备份文件打包为 ZIP 格式
  • 📁 目录选择:支持选择自定义保存目录
  • 📱 响应式布局:栅格布局,适应不同窗口大小
  • 🌍 跨平台:支持 Windows、macOS、Linux

界面特性

  • 🎨 现代化 UI:基于 Naive UI 的美观界面
  • 📋 详细配置:丰富的备份选项配置
  • 📈 进度监控:实时显示文件下载状态
  • 🔍 文件详情:可查看每个文件的下载进度

⚠️ 功能限制

请注意:本工具主要适用于简单的静态网页备份

技术限制

  • 动态内容:无法备份需要 JavaScript 动态加载的内容
  • 懒加载:不支持懒加载(lazy loading)内容
  • 用户交互:无法处理需要用户交互才显示的内容
  • SPA 路由:不支持单页应用(SPA)的动态路由内容
  • 登录内容:无法备份需要登录才能访问的内容
  • 复杂框架:对于 React、Vue、Angular 等现代框架构建的复杂应用效果有限

适用场景

  • 静态网站:个人博客、企业官网等静态页面
  • 简单页面:新闻文章、产品介绍页面
  • 文档网站:技术文档、帮助页面
  • 传统网站:基于传统 HTML/CSS/JS 的网站

🛡️ 隐私清理功能

自动清理的内容

  • 📊 统计代码:Google Analytics、百度统计、CNZZ、Mixpanel、Segment 等
  • 👁️ 跟踪代码:Facebook Pixel、TikTok Pixel、Snapchat Pixel、Hotjar、CrazyEgg、Clarity 等
  • 📢 广告代码:Google Ads、DoubleClick、Taboola、Outbrain、PopAds、PropellerAds、AdCash 等
  • 🏷️ 标签管理器:Google Tag Manager (GTM) 等
  • ⚠️ 恶意标签:base 标签劫持、自动跳转、来源伪造、恶意重定向等

安全防护

  • 🔒 链接劫持防护:自动删除所有 base 标签,防止恶意网站劫持页面中的所有相对链接
  • 🚫 自动跳转防护:删除 meta refresh 标签,防止页面自动跳转到钓鱼网站或恶意网站
  • 🎭 来源伪造防护:删除 meta referrer 标签,防止恶意网站伪造访问来源
  • 🔄 重定向防护:检测并删除包含恶意重定向的 JavaScript 代码

🛠️ 技术栈

前端技术

  • 框架:Vue 3 + TypeScript
  • UI 库:Naive UI
  • 构建工具:Vite
  • 路由:Vue Router 4
  • 图标:Ionicons 5

后端技术

  • 语言:Go 1.23+
  • 框架:Wails v2
  • 网页解析:goquery
  • 文本编码:golang.org/x/text
  • HTTP 客户端:Go 标准库

开发工具

  • 包管理:Go Modules + npm
  • 类型检查:TypeScript + Vue TSC
  • 代码格式化:内置支持

📋 系统要求

开发环境

  • Go:1.23 或更高版本
  • Node.js:18 或更高版本
  • Wails CLI:v2 最新版本

运行环境

  • Windows:Windows 10/11 (x64)
  • macOS:macOS 10.15+ (Intel/Apple Silicon)
  • Linux:主流发行版 (x64)

🚀 快速开始

1. 克隆项目

复制
git clone https://github.com/adiudiuu/site_backup.git
cd site_backup

2. 安装依赖

复制
# 安装 Go 依赖
go mod tidy

# 安装前端依赖
cd frontend
npm install
cd ..

3. 开发运行

复制
# 使用 Makefile(推荐)
make run

# 或直接使用 Wails CLI
wails dev

4. 构建发布

复制
# 构建 Windows 版本
make build-win

# 构建 macOS 版本(需要在 macOS 上运行)
make build-mac

# 或使用 Wails CLI
wails build

📖 使用指南

基本使用步骤

  1. 输入网址:在目标网址框中输入要备份的网页 URL
  2. 选择目录:点击"选择目录"按钮,选择备份文件的保存位置
  3. 配置选项
    • 选择要备份的内容类型(图片、样式、脚本、视频)
    • 选择要清理的隐私内容(统计代码、跟踪代码、广告代码)
    • 调整高级选项(超时时间、最大文件数、并发数)
  4. 开始备份:点击"开始备份"按钮
  5. 监控进度:实时查看备份进度和文件下载状态
  6. 完成备份:备份完成后,ZIP 文件将保存到指定目录

使用建议

  • 🎯 优先选择:静态网站或博客进行备份
  • ⚠️ 避免备份:复杂的动态网站或 SPA 应用
  • 🧪 先测试:测试小页面后再备份大型网站
  • ⏱️ 注意频率:注意网站的访问频率限制,避免过于频繁的请求
  • 📏 合理配置:根据网络情况调整超时时间和并发数

故障排除

  • 网络错误:检查网络连接和 URL 是否正确
  • 访问被拒:可能遇到反爬虫机制,建议稍后重试
  • 文件过大:调整最大文件数限制或增加超时时间
  • 权限问题:确保对保存目录有写入权限

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

开发流程

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

代码规范

  • Go 代码遵循 gofmt 格式
  • TypeScript 代码使用 ESLint 规范
  • 提交信息使用英文,格式清晰

📄 许可证

本项目采用 GNU General Public License v3.0 许可证。

这意味着:

  • ✅ 可以自由使用、修改和分发
  • ✅ 可以用于商业目的
  • ⚠️ 修改后的代码必须开源
  • ⚠️ 必须保留原始许可证和版权声明
  • ⚠️ 不提供任何担保

详细信息请查看 LICENSE 文件。

⚖️ 免责声明

  • 本工具仅供学习和研究使用
  • 使用本工具产生的任何法律后果由使用者自行承担
  • 开发者不承担任何责任
  • 请确保您的使用行为符合当地法律法规和目标网站的使用条款
  • 请尊重网站的 robots.txt 文件和访问限制

📞 联系方式


我把 swarm 端口改成 4002 是因为 Planet 抢占了 4001 端口。


这脚本大概这么干活:

  1. 先瞅一眼:看看 Docker 装了没,别忙活半天白干。再检查一下有没有叫 ipfs_host 的老容器赖着不走,有的话就报错开溜,坚决不给自己留烂摊子。
  2. 搭俩小窝:在当前目录下建 ipfs_stagingipfs_data 两个文件夹,给 IPFS 的数据找个地方住。
  3. 门户大开(但换了号):因为 4001 被占了,咱就让 swarm 走 4002。API 端口是 8080,网关端口是 5001,按你的习惯随便改。
  4. 拉起来跑:用最新的 ipfs/kubo 镜像把容器跑起来,把刚才设的端口和文件夹都挂载好。
  5. 直接开门迎客:跑起来没问题的话,自动帮你打开浏览器,跳到 http://localhost:5001/webui 这个管理页面。接下来传点猫图试试手呗。


怎么用?

简单到不行:

复制
# 1. 给脚本加个执行权限
chmod +x deployment.sh

# 2. 运行它
./deployment.sh

脚本跑完没报错,你的浏览器就会蹦出 IPFS 的 Web 界面了。


脚本在这儿 (deployment.sh)

复制
#!/bin/bash

# 检查 Docker 是否安装
if ! [ -x "$(command -v docker)" ]; then
  echo 'Error: Docker is not installed.' >&2
  exit 1
fi
echo 'Docker is installed.'

# 检查是否有正在运行的 IPFS 容器
if [ "$(docker ps -q -f name=ipfs_host)" ]; then
  echo 'Error: An IPFS container is already running.' >&2
  exit 1
fi
echo 'No running IPFS container found.'

# 检查是否有同名的停止状态的 IPFS 容器
if [ "$(docker ps -aq -f status=exited -f name=ipfs_host)" ]; then
  echo 'Error: A stopped IPFS container with the same name already exists.' >&2
  exit 1
fi
echo 'No stopped IPFS container with the same name found.'

echo 'Proceeding with deployment...'
# 创建存储目录
current_dir=$(pwd)
cd $current_dir
mkdir -p ./ipfs_staging
mkdir -p ./ipfs_data

echo 'Storage directories created.'

# 设置环境变量
export ipfs_staging=./ipfs_staging
export ipfs_data=./ipfs_data
export ipfs_swarm_port=4002
export ipfs_api_port=8080
export ipfs_gateway_port=5001

echo "IPFS staging directory: ${ipfs_staging}"
echo "IPFS data directory: ${ipfs_data}"
echo "IPFS swarm port: ${ipfs_swarm_port}"
echo "IPFS API port: ${ipfs_api_port}"
echo "IPFS gateway port: ${ipfs_gateway_port}"

# 运行 IPFS 容器
docker run -d --name ipfs_host -v ${ipfs_staging}:/export -v ${ipfs_data}:/data/ipfs -p ${ipfs_swarm_port}:4001 -p ${ipfs_api_port}:8080 -p ${ipfs_gateway_port}:5001 ipfs/kubo:latest
if [ $? -ne 0 ]; then
  docker rm -f ipfs_host 2>/dev/null
  rm -rf ./ipfs_staging
  rm -rf ./ipfs_data
  echo 'Error: Failed to start the IPFS container.' >&2
  exit 1
fi
echo 'IPFS container started successfully.'

open "http://localhost:${ipfs_gateway_port}/webui"


说实话, AI 润色的确实不咋地 😂