头回自己碰见,哥们你知道吗。
用着用着 gemini 抽风了,这你受得了吗。
抽风了大概 10 分钟,消息被吞了。
抽风的原因疑是是聊天记录太多了。
抽风前聊天记录全给我加载了然后每次切换窗口都给我跳到第一个对话,不过没想到最后这么癫。

为了不漏信息,所以只放抽风的截图。
image

某网站的求助帖为例:

提问

Comparing IFRS Accounting Standards and U.S. GAAP: Bridging the Differences (September 2025) | DART – Deloitte Accounting Research Tool

网页内嵌的 pdf,请帮忙下载,因为该网站有好多类似的文章,还请介绍如何突破限制,下载该网站的其他类似内容

下载链接

f12,定位到 pdf 渲染层(页面嵌套)


执行 PDFViewerApplication.download() 即可(基本上通用)

以下是 pdf 文件链接的下载链接

https://dart.deloitte.com/USDART/ov-resource/057be505-289e-11e9-818d-67c85cbcc7fa#pdfjs.action=download

(下是应该能下,但是太慢啦)

pdf.js 应该是通用的,除非服务器做了限制(也有办法绕过然后保存)

找到密码

使用特殊(对于 L 站为准入门槛)网咯下载后,发现有密码。
先说该网站结论:

  1. 找到 id 为 r0inab 的 script 标签的内容,
    例如:Business Combinations (November 2025) | DART – Deloitte Accounting Research Tool ,(没错我另起炉灶了)
    pdf.js 通用 pdf 下载教程3
    搜索得到加密后的密钥:2s1e1k2p1d1j2t2p1e1g1d1h172u1g1j2p171k2t1d1d172s1h2p2u171f2u2q1c1g1f2u1j

  2. 计算密钥

    function decode(encodedString) {
        let result = '';
        for (let o = 1; o < encodedString.length; o++) {
            if (o % 2 === 1) {
                const charCode = parseInt(encodedString[o-1] + encodedString[o], 36);
                result += String.fromCharCode(charCode);
            }
        }
        return result;
    }
    
    const encoded = "2s1e1k2p1d1j2t2p1e1g1d1h172u1g1j2p171k2t1d1d172s1h2p2u171f2u2q1c1g1f2u1j";
    console.log(decode(encoded));
    

    得到密码:d28a17ea2415+f47a+8e11+d5af+3fb043f7

  3. 即可解开啦

PS: 如果希望去除密码,最简单的方法就是在线 pdf 解锁网站,比如 https://www.ilovepdf.com/zh-cn/unlock_pdf

还有就是要多换几个软件试试,可能是软件 bug,chrome 和 2345pdf 阅读器说密码不对,但是 edge、福昕 pdf 编辑器、上面那个 pdf 解锁网站则可以正确打开。。。

追码过程(通用)

pdf.js 中搜索 .onPassword


如果手速不够快可能需要刷新,
如果存在密码的话可能会在此处断下,并且报错 No password given
如图中所示,此处的 e.onPassword 则是自动传输密码的必经之路。
如果偷懒,可以在 e.onPassword 的第一回调参数(也就是上面的 s 函数)下断点,

即可直接偷鸡。

当然,本例追过去,发现

onPassword = (e, t) => {
    this.isViewerEmbedded && this._unblockDocumentLoadEvent(),
    window.addEventListener('message', function t(i) {
        window.removeEventListener('message', t)
        for (var n = i.data, s = '', o = 1; o < n.length; o++)
            o % 2 && (s += String.fromCharCode(parseInt(n[o - 1] + n[o], 36)))
        e(s)
    }),
    window.parent.postMessage('s', location.href)
}

然后追到 s 的监听换事件

//外层 function onMessage(e) {
e.origin === location.protocol + "//" + location.host && (e.data === String.fromCharCode(115) ? e.source.postMessage(JSON.parse(document.getElementById("r0inab").innerText), location.href) : e.data === String.fromCharCode(103) && e.source.postMessage(JSON.parse(document.getElementById("r0inyk").innerText), location.href));
}

最终算法参考本文 [找到密码] 部分

↓能不能别点赞,点点别的, 不想吃 LDC 低保


📌 转载信息
原作者:
taozhiyu
转载时间:
2026/1/24 06:54:06

花费了半年时间开发的 AI 量化平台正式开源了,采用了 Apache2.0 协议,可商用。
全平台支持、美股、A 股、港股、加密、外汇、期货
TV 的平替,能够 AI 写策略、运行指标到 K 线。同时支持多用户版本,本地 Docker 一键部署
Dome 演示地址:https://ai.quantdinger.com
github 地址:GitHub - brokermr810/QuantDinger: AI-driven, local-first quantitative trading platform for research, backtesting and live execution. Python-native, privacy-first, open source.
如果觉得好用,请大佬赏赐一个 star, 您的支持是我们进步的动力。同时招募志同道合的项目管理员,管理仓库,共建开源社区!


📌 转载信息
转载时间:
2026/1/24 06:46:07

简介

使用 Nuxt 4.2.2 + tauri 2 开发,通过 API 接口获取寻访记录,仓库新建,功能还在逐步完善中。

目前暂时仅支持 Windows 端,数据都在程序同级目录下的 userData 目录中。

欢迎佬友们试试看~也欢迎大家晒晒自己的抽卡记录(当然能给仓库点个 Star 就更好了 hhh

附一张自己的:(还有比我更非的吗)

仓库链接:


📌 转载信息
原作者:
Sakikoo
转载时间:
2026/1/24 06:46:04


垂死病中惊坐起,爬虫偷走了你的信息 ww!

可能就是很单纯的… 把邮箱… 放在简介,然鹅就算 202X 年了还有人靠电子邮箱发广告和垃圾邮件,虽然眼不见心不烦,哎爬虫怎么这么坏

就是这些坏东西的方法很多… 真的很多,古早时候就有把 @写成 #的邪法,就以上面那个 Demo 为例,它本身就自带 cloudflare 有形的大手,首先,cf 会编码 "可能是像电子邮箱的东西",任何能够执行 js 的浏览器会自动解码它,更别提人机验证了,直接把目录填进安全规则托管质询

不过能 "折腾就折腾",有没有什么更神奇的方法,不依赖现有的基础设施,而且很方便?有的有的,这是工作量验证

原理

这种工作验证基于 AES,ChaCha32 等对称加密算法和一串摘要值,密码被故意设计成弱口令,这使得用户可以靠猜测比对推出密码

在个别 pow 验证码中也提供了这类小组件,为了效率,通常使用 WASM,JS 好写

因为是反爬虫所以也不需要很高强度的防护,大战 GPU 这种(X)

简单实现

找哈基米写的,就很舒服 (√)

弱口令的产生方法是公开的,为了防止预先推出就加上了一串公开的 uuid 合并为一个 key,加上了一些改进

用来反爬也没什么问题


↑ Demo


📌 转载信息
原作者:
arch_linux
转载时间:
2026/1/24 06:44:59

[开源] B 站字幕批量上传器:批量上传本地 SRT 到字幕草稿(Rust + Tauri v2 + React)

做了个桌面小工具:读取本机 cookies.json(需包含 bili_jct),把本地 .srt 批量上传,并 “预保存” 为 B 站稿件字幕草稿(preSave)
起因很简单:我经常批量处理英文网课(识别字幕 → Gemini 翻译 → 上传到 B 站),但 B 站本身没有批量传字幕的入口,于是自己搓了这个。


主要特性

  • 向导式操作:一步步点,不写代码也能用
  • 两条路线
    • 路线 A:多 BV → 上传到 1P
    • 路线 B:单 BV → 多分 P(按 page/cid/part 匹配)
  • 多轨道 / 多语言字幕:同一视频一次安排多个字幕轨
  • 预览匹配 + 演练(dry-run):先检查 / 演练,再真实上传,避免翻车
  • 详细日志:失败原因、跳过原因写清楚


大部分佬友都用不上,发出来刷点眼熟


📌 转载信息
原作者:
Zennn
转载时间:
2026/1/24 06:44:37



简单来说就是最近在折腾 codex 反代,提升 codex 的使用体验,但是从 oauth 登录转到使用 api-key 时,发现以前的历史对话消失了,所以

压榨

研究出了这个小脚本

一些小思考

在现在的 vibe coding 时代,一些小需求真的可以很高效的解决了。这个问题从我产生解决这种需求的想法开始,到在论坛里搜索关键词没找到解决方案,再到我把 codex 仓库克隆下来丢给 antigravity 中的哈基米 3,第一次对话它就定位到了切换 provider 后历史对话消失的原因,后面告诉它用 py 脚本迁移之后就很快的给了我一个可用的版本,再丢给 chatgpt 网页版~~(codex 太慢了,小需求就没找它 debug)~~ 迭代了 2 次之后,整体用时不超过 20 分钟。

而在传统古法编程的时代,要解决这个小需求,首先要读 codex 仓库定位问题,光是这一步消耗的时间起码就得在 30 分钟以上…… 对我这样的小菜鸡来说,这个时间更是得翻倍的。 哦,刚注意到 codex 代码基本是用 rust 写的,那花费时间为 0。在我花时间学会 rust 之前,我是看不大懂 rust 代码的,所以我只能等某个大手子出手才能直接无脑使用。但为了这个很小的需求,我是不大可能去学 rust 的,有这时间去玩会不香吗?我会自适应历史对话消失的小问题,又不是不能用


📌 转载信息
原作者:
hello_world1024
转载时间:
2026/1/24 06:44:31

先说优点,比 cc 好用!比 codex 快!代码质量也比 cc 好得多!

配置说明:

安装 copilot

安装 copilot 接入第三方 API 的插件

 { "reasoning": { "effort": "xhigh", "summary": "auto" }, "store": false, "stream": true } 

effort 可选项 :lowmediumhighxhigh

配置密钥:

这里前面的小眼睛要点一下显示!

然后切换一下模型就可以开始愉快的玩帅了!

最后贴一个 settings.json 的配置版本

我这里的 baseUrl 用的是 cc-switch 的 proxy 地址,密钥随便填就行!

"gcmp.compatibleModels": [
    {
        "id": "rc:gpt-5.2",
        "name": "RC-GPT-5.2-Xhigh",
        "provider": "zhipu",
        "baseUrl": "http://127.0.0.1:15721",
        "model": "gpt-5.2",
        "sdkMode": "openai-responses",
        "maxInputTokens": 272000,
        "maxOutputTokens": 128000,
        "capabilities": {
            "toolCalling": true,
            "imageInput": true
        },
        "useInstructions": false,
        "includeThinking": true,
        "extraBody": {
            "reasoning": {
                "effort": "xhigh",
                "summary": "auto"
            },
            "store": false,
            "stream": true
        }
    },
    {
        "id": "rc:gpt-5.2-low",
        "name": "RC-GPT-5.2-Low",
        "provider": "zhipu",
        "baseUrl": "http://127.0.0.1:15721",
        "model": "gpt-5.2",
        "sdkMode": "openai-responses",
        "maxInputTokens": 272000,
        "maxOutputTokens": 128000,
        "capabilities": {
            "toolCalling": true,
            "imageInput": true
        },
        "useInstructions": false,
        "includeThinking": true,
        "extraBody": {
            "reasoning": {
                "effort": "low",
                "summary": "auto"
            },
            "store": false,
            "stream": true
        }
    },
     {
        "id": "rc:gpt-5.2-High",
        "name": "RC-GPT-5.2-High",
        "provider": "zhipu",
        "baseUrl": "http://127.0.0.1:15721",
        "model": "gpt-5.2",
        "sdkMode": "openai-responses",
        "maxInputTokens": 272000,
        "maxOutputTokens": 128000,
        "capabilities": {
            "toolCalling": true,
            "imageInput": true
        },
        "useInstructions": false,
        "includeThinking": true,
        "extraBody": {
            "reasoning": {
                "effort": "high",
                "summary": "auto"
            },
            "store": false,
            "stream": true
        }
    }
],

📌 转载信息
转载时间:
2026/1/24 06:44:01

本文章使用 Microsoft Copilot GPT-5.2 辅助写作。

前些日子在小红书刷到一篇帖子,吐槽 Overleaf 编译时间超过 10 秒就要收费。在评论区翻了翻,意外得知 中国科技云 提供了一个基于开源版 Overleaf 的在线服务,单次编译时间可免费使用 600 秒。出于好奇,我顺手探索了一下中国科技云,结果发现它居然还提供了一个 免费的 20G 存储(兼容 S3)

既然有现成的 S3,那不用来同步 Obsidian 就有点说不过去了。于是折腾了一番,用 Remotely Sync 插件成功把 Obsidian 接入了中国科技云的 S3。下面简单记录一下过程。


注册并创建 S3 存储桶

首先注册一个中国科技云账号

然后进入 数据胶囊 页面:

进入后,新建一个 数据空间

这里需要注意一点:“未命名” 只是别名,不是实际的桶名称

创建完成后,点击 客户端访问

在这里可以修改桶名,并创建一个 AccessKey,后面配置 Obsidian 时会用到,请妥善保存。


配置 Obsidian 的 Remotely Sync

接下来切换到 Obsidian。

  1. 打开设置 → 第三方插件

  2. 关闭安全模式,搜索并安装 Remotely Sync

同时也建议在 核心插件 中关闭 Obsidian 自带的同步功能,避免冲突。

插件安装完成后,按如下方式填写配置:

  • 服务地址(Endpoint)s3.cstcloud.cn

  • 区域(Region)us-east-1

  • Access Key ID / Access Key:填写刚才创建的

  • S3 URL Style:一定要选择 Path Style

配置完成后,点击 检查连接

如果一切顺利,就可以看到连接成功的提示了。至此,Obsidian 已经可以通过中国科技云的 S3 实现同步。


数据胶囊还支持 WebDAV 访问,也可以使用 WebDAV 接入更多应用。
文章很好,但怎么发成 wiki 了


📌 转载信息
原作者:
Gakusyun
转载时间:
2026/1/24 06:42:55

想必做移动端的朋友们肯定或多或少听说过 Kotlin 和 Compose Multiplatform,
前者是 JetBrains 开源、Google 首推用于 Android 开发(自 2019 年 Google I/O 大会起)的现代开发语言,
后者是使用 Compose API 开发多端(Android、iOS、桌面端、Web 端等)应用的 UI 框架。

但是不论你是使用 Compose/Kotlin 开发应用,还是使用其他解决方案,都会有一个苦恼:使用代码编写 UI,
终归是不如大家最喜欢的拖拖拽拽来的直观。你选择 Compose/KMP 的理由,其中大概率有一条会留给它的多平台逻辑共享与原生互操作能力,
避免中间层的出现,可以有更好地表现效果与上限。

那么有没有什么办法,可以即让我使用 Compose 开发应用、又可以借助 AI 神力并且以拖拉拽的形式而免去需要写代码的苦恼?
如果你有这些想法,那么也许你可以关注一下 ComposeFlow: 一个 Compose Multiplatform 的可视化应用构建器。

注意,这篇文章图片会比较多喔~

什么是 ComposeFlow

ComposeFlow 是一个 Compose Multiplatform 的可视化应用构建器,它通过 AI 代理和直观的拖放界面,
赋能开发者、企业家、设计师和产品经理创建功能完整的应用程序。它能生成完整的、可运行的 Compose Multiplatform 项目,
并提供干净的 Kotlin 代码,支持桌面、Android、iOS 和 Web 等多个平台。

以上是它们的 GitHub 仓库中的首段自我介绍。
简单来说,它就是一个 AI 驱动、可视化、拖拉拽的 Compose Multiplatform 开发工具。


图片来自官方 GitHub README 中的配图。

更多信息,你可以前往它们的 文档 了解更多。

使用

安装

首先需要知道,这个工具目前仍处于早期阶段,因此可能存在各种各样的问题,我们今天就只是尝鲜为主。

根据 GitHub 的说明,我们前往它们的下载页面去下载对应的应用(Windows 用户可以直接使用 Microsoft Store 安装)。
安装完成后,它会提示你登陆账号(也可以不登录,只不过那样就不能使用 AI 服务了),我选择使用 Google 账号登陆。

登录后,这就是它的首页:

创建项目

毕竟是新安装的,我们先来创建一个项目。

就按照它的推荐提示词,创建一个任务管理的应用,为了方便演示,我加了一句 “USE CHINESE”,其他的内容均未修改。




通过 AI 提示词创建一个项目的基本过程就在上面了。它会根据你的基础提示词,设计出几个详细的界面设计,
然后再根据每个界面的细节内容生成具体的界面布局与样式,然后在右侧供你预览。当一切就绪,你就可以直接创建项目了。

作为一个尝鲜体验,我就不修改什么了,直接默认并创建即可~

那么接下来,我们点击 create project 创建一个项目看看。

项目视图

首次进入项目内容,它会给你一个引导,欢迎你,并告诉你一些操作方法:

项目的左侧,是各类工具视图,它们提供了添加文字、图标等组件的 UI 构筑功能,以及布局功能等等,如图所示:

接下来,为你介绍了画布的正中央:你的 UI 表现效果,以及画布尺寸、明暗等内容的配置和展现。

随后是右半侧,提供了选中组件的各类属性信息的展示与编辑等。

当然,作为一个 AI 驱动的工具,除了构建项目之外,肯定也会在其他功能上增加 AI 能力。左上角的小图标便是提供 AI assistant 能力的地方。

接下来引导就结束了,然后便是我们自由发挥的时候啦。
下面便是我生成的项目的一些基本样式与信息:




可以看到信息和功能还是相当丰富的。而且除了基本的 UI 设置之外,左侧工具还可以选择切换到:

  • 数据 / 枚举类型定义
  • App 状态 (App state)
  • Firesotre (好像是某种 NoSQL 的云服务?)
  • API editor (看上去是配置 API 调用的)
  • 配置主题配色的 Theme editor
  • 图片图标等资源的管理 Assets
  • 项目和应用的基础配置

可谓是功能相当丰富。





下载 & 安装项目

不过这次主打一个基础体验,我也就不做什么修改了,直接点击右上角的 “下载代码”,下载一份 Web 版的看看样子。
有一说一,它这个下载成功的提示真的很不起眼哈哈


可以看到,项目的大概文件结构是这个样子的:

安卓、iOS 和 JS 都有(虽然不知道为什么没用 WasmJs),也是相当全面了。
让我来随便找几个源代码文件看看内容:

嗯… 整体来说还是可以的,不过也有一些小缺陷:

  1. 代码可以说几乎没什么注释。
  2. 由于我一开始的提示词用了 USE CHINESE,结果导致它生成的代码中存在一些使用中文命名的类型。

上面这几个小缺陷我觉得如果用英文原版的提示词,或者再精修一下、将这些问题都在提示词中说明白,
那应该也都是可以避免的,所以问题不大。

运行项目

考虑到我没配置移动端的开发工具和相关的东西,咱们就跑一下 web 端看看效果吧。




嗯… 让我们先忽略它中文乱码的问题,这是 Compose for Web 渲染 canvas 的老问题了,找个中文字体加载下就好(或者有什么配置)。
单从 UI 布局上来看,是基本符合之前的设计布局的。

只不过不知道是不是应该在下载的时候选什么配置,这个 Web 端出来的布局仍是竖屏手机的样式哈哈哈,
之前在 UI 设计阶段是有宽屏 Web 布局的样式的,可能我漏掉了什么选项吧。不过我也懒得回去找了,就不再重新捣鼓了。
我将它生产出来的这个项目发布到了 GitHub 的仓库中:GitHub - ForteScarlet/ComposeFlow-TaskManagementApp: A demo project for ComposeFlow
你如果感兴趣的话,也可以去看看。

尾声

对此工具的体验就到此为止啦~ 有一说一在 UI 构建的工作区里功能比我想象要丰富不少。
不过毕竟工具也还是在早期阶段,还是会有不少细枝末节的小问题存在的,尝尝鲜还可以,不过想要非常优质的生产级体验还是有些距离。总而言之,未来可期!

至于我是怎么知道这个的呢,是因为前阵子看到 JetBrains 的布道师关注了这个仓库的所述组织,
于是乎就进去看了下,而后便有了这篇文章。

不管怎样,感谢你读到这里,祝你有愉快的一天,我们下次再见~


📌 转载信息
转载时间:
2026/1/24 06:42:41

之前偷懒了,在发帖的时候直接用 AI 生成了工具的介绍,导致有人举报删了。

所以现在我重新写一下工具的介绍,其实主要是平时使用的时候总是弹出 accept 和 retry 的按键,导致执行出错,影响开发节奏,浪费了很多时间,需要有精力看

所以就去上网找了一下开源解决方案,但是开源的方案只能解决 accept,所以就想着有没有方法能把 retry 也做了。之前了解过 antigravity 的内核,其实也是 chrome,那么就应该可以通过 remote debug 的方式跟他连接并操作他,就又补充了一下插件,在这个插件里面启动一个连接到处于开发模式的 Antigravity,这样的话就可以控制去点击 retry 了,大概就是这么个思路。

但是次都需要在启动 Antigravity 的时候配置启动参数很麻烦,所以没有办法可以跳过这一步,至少在 windows 上想解决这个问题,那我就上网找了一下,我就想起来之前有个人做 antigravity-proxy 的时候用了 version.dll,所以我就找了另外一个 dll,因为我怕有的人同时有两个功能,两个功能会有影响,然后就通过注入的方式在启动的时候加载这个启动命令,就 remote bug 的那个命令,这样的话就可以自动配置参数了,不需要修改快捷启动参数了,所以就有了下面两个的项目,欢迎大家使用并反馈。

通过 Antigravity Manager 启动 Antigravity,目前无法自动注入 remote debug,还在调查中


📌 转载信息
原作者:
evan1s
转载时间:
2026/1/24 06:41:27

前言

最近在闲鱼上淘了一个二手 macbook m1 air 16+512,想着把 windows 上的 singbox 搬过去。因为之前都是跑的纯内核,所以这时也打算用纯内核来跑。

遇到第一个问题,配置文件是 1.11 时候写的,但是很多带 provider 的 singbox 修改版,都没有历史版本,不打 tag,编译出来的都是最新版本,或者是有 1.11 Tag,Fork 了一下自己跑 Github action,但是编译出来的是原版。或者是原仓库之前 action 跑过的,很多产物都已经失效了无法下载。

后面只能尝试用 1.12 版本,找了一个仓库 lux5am/sing-box,这个看着是挺不错的,然后下载了个 1.12 版本,但是配置跑不起来,一直报错 loop on detour: direct

+0800 2026-01-21 20:07:33 INFO network: updated default interface en0, index 11
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set geosite-microsoft from URL: https://github.com/CHIZI-0618/v2ray-rules-dat/raw/refs/heads/release/singbox_rule_set/geosite-microsoft.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set category-ads-all from URL: https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_rule_set/geosite-category-ads-all.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set cn-domain from URL: https://raw.githubusercontent.com/CHIZI-0618/v2ray-rules-dat/release/singbox_rule_set/geosite-cn.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set category-games@cn from URL: https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-category-games@cn.srs
+0800 2026-01-21 20:07:33 DEBUG router: updating rule-set alibaba from URL: https://raw.githubusercontent.com/SagerNet/sing-geosite/rule-set/geosite-alibaba.srs
+0800 2026-01-21 20:07:33 INFO outbound/direct: outbound connection to github.com:443
+0800 2026-01-21 20:07:33 DEBUG dns: lookup domain github.com
+0800 2026-01-21 20:07:33 INFO outbound/direct: outbound connection to raw.githubusercontent.com:443
+0800 2026-01-21 20:07:33 INFO outbound/direct: outbound connection to raw.githubusercontent.com:443
+0800 2026-01-21 20:07:33 DEBUG dns: lookup domain raw.githubusercontent.com
+0800 2026-01-21 20:07:33 DEBUG dns: lookup failed for github.com: loop on detour: direct

改了半天配置,又去参考了一下别人的,或者是换另外一个仓库的 1.12 修改版,最终都跑不起来,折腾了好久最终是放弃了。然后想着,如果后面又遇到这种问题,再加上 singbox 的配置语法经常变更,后面又得折腾一下,想了想还是换内核吧。

那也没啥好选了,只能是 mihomo 了。于是就弄了一下这玩意的开机自启。

配置开机自启

主要是参考:OKHK ✨ macOS 上 配置 Launchctl 运行 Clash Meta(Mihomo)内核服务
其实里面文件的路径应该是能变的,但是我为了复制方便,直接就用文章的了 。

核心文件准备

sudo mv mihomo-darwin-arm64-v1.19.19 /usr/local/bin/clash
sudo chown root clash
sudo chmod +x clash
mkdir -p /Users/app/.config/clash
mv config.yaml /Users/app/.config/clash
chmod 644 /Users/app/.config/clash/config.yaml

launchctl 配置文件

/usr/local/bin/start_clash_with_dns.sh:设置 dns + 启动核心

#!/bin/bash set -e

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" export HOME="/Users/app" timeout=120
elapsed=0
while [ $elapsed -lt $timeout ]; do if scutil --dns | grep -q "nameserver"; then
        networksetup -setdnsservers Wi-Fi 198.18.0.2
        echo "$(date) DNS:198.18.0.2" >> /Users/app/.config/clash/clash_dns.log
        break fi sleep 5
    elapsed=$((elapsed + 5))
done exec /usr/local/bin/clash -d /Users/app/.config/clash


/Library/LaunchDaemons/clash.plist:launchctl plist 配置文件

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>clash</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>/usr/local/bin/start_clash_with_dns.sh</string> </array> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/Users/app/.config/clash</string> <key>StandardOutPath</key> <string>/Users/app/.config/clash/clash_stdout.log</string> <key>StandardErrorPath</key> <string>/Users/app/.config/clash/clash_stderr.log</string> </dict> </plist> 


授予权限:

sudo chown root /Library/LaunchDaemons/clash.plist
sudo chmod 644 /Library/LaunchDaemons/clash.plist
sudo chown root /usr/local/bin/start_clash_with_dns.sh
sudo chmod +x /usr/local/bin/start_clash_with_dns.sh

启动服务

第一次启动用下面的命令,如果是已经 load 过的,用下面的 alias 的 startclash。
反复 load 会出错或者是 unload 还没有 load 的也会出错,但是错误日志没有具体怎么写,这里提醒一下。

sudo launchctl load /Library/LaunchDaemons/clash.plist

一些常用命令

重启

sudo launchctl unload /Library/LaunchDaemons/clash.plist
sudo launchctl load /Library/LaunchDaemons/clash.plist

alias 用于方便手动控制:

alias stopclash='sudo launchctl stop clash && networksetup -setdnsservers Wi-Fi Empty && sudo launchctl list | grep clash' alias startclash='sudo launchctl start clash && networksetup -setdnsservers Wi-Fi 192.168.0.2 && sudo launchctl list | grep clash' 

uu 远程连接不上

tun 启动之后不知道为什么 uu 远程用不了,显示没有网络链接。
问了一下 AI,给了一些方法,现在虽然是解决,但我不知道具体是哪个命令解决的。
这里我都贴出来有遇到的老友可以试一试这一些方法,如果关闭 clash 之后没有网络,可以开关一下 wifi,这样就有网络了。

sudo route -n flush
sudo ifconfig en0 down
sudo ifconfig en0 up
sudo pkill -f "uu\|tun" sudo rm /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

sudo route -n flush 这个可以执行多次,时不时执行一下,比如关闭 uu 远程之后,打开了之后。
如果实在不行就把 uu 远程卸载了,重启电脑,再安装上,然后再试试。不行的话就再执行一下上面这些命令。
查看路由表: netstat -rn -f inet


📌 转载信息
转载时间:
2026/1/24 06:41:06

可以让 ai 在修改完代码后自动进行本地的一个提交,方便随时回退代码。
很多时候写代码忘记提交导致回退一个大版本心都死了!

  • 本地存档,绝不 Push

注意,这个 skill 默认自动执行,你也可以自己修改后手动执行(改改提示词的事~)

欢迎使用也欢迎 star。


📌 转载信息
原作者:
ryderwe
转载时间:
2026/1/24 06:40:06

do:多模型 Agent 编排 + Hooks Loop

把 /dev、/omo、ralph-loop、/feature-dev 四套工作流融合成一个、多 Agent 并行、多模型后端的功能开发编排器。

TL;DR

  • 一句话启动/do 实现用户登录功能,剩下的交给 AI
  • 7 阶段完整覆盖:Discovery → Exploration → Clarification → Architecture → Implementation → Review → Summary
  • 多 Agent 并行:code-explorer、code-architect、code-reviewer、develop 各司其职
  • 多模型后端:分析用 grok-code,架构用 opus4.5,代码用 gpt5.2,按任务特性分配最优模型,可以自定义配置
  • Loop 机制保障:Stop Hook 阻止意外退出,确保流程完整执行
do 整体架构Hooks Loop 机制codeagent-wrapper 多 Agent
Phase 1-2
Phase 1,3,4
Phase 5
Phase 6-7
检查状态
.claude/do.local.md用户: /do 任务描述Claude Code 编排器code-explorergrok-codecode-architectopus4.5developgpt5.2code-reviewersonnetStop Hook 防中断

为什么做这个融合?

继 /dev/omo 之后一直在思考如何将这些好用的工作流融合起来,够快够智能够好用

    1. 需要 dev 的快、简单
    1. 需要 omo 的多模型 agent 编排
    1. 需要 ralph-loop 能够保证任务最终完成
    1. 需要主动沟通确定方案

基于上面的内容我突然想到把他们全部融合在一起不就好了吗,于是就有了 do。

Do 的核心参考来源:

来源贡献
feature-dev7 阶段工作流框架 + Agent 分工 + Context Pack 模板
dev需求澄清机制 + 多后端路由 + 90% 覆盖率要求
omo路由优先编排 + 最小 Agent 集选择 + 编排者不写代码原则
ralph-loopStop Hook 防中断 + 状态文件持久化 + 完成信号机制

这不是重新发明轮子,而是把四个好轮子装到一辆车上

四套工作流
feature-dev7阶段框架dev 需求澄清+多后端omo路由编排ralph-loopHooks Loop融合do Skill

核心设计:编排者不写代码

这个设计来自 omo 的核心理念。do 的第一条铁律:

Claude Code 只负责编排,所有代码变更必须委托给 codeagent-wrapper 中的 Agent。

这不是因为 Claude Code 写不了代码,而是因为:

  • 职责分离:编排者专注流程控制,执行者专注代码质量
  • 模型专长:不同 Agent 可以用不同后端(Codex、Claude、Gemini)
  • 可追溯性:每个 Agent 的输出都有独立日志和上下文
#这是编排者的正确姿势
codeagent-wrapper --agent develop - . <<'EOF'
## Original User Request
/do 添加用户登录功能
## Context Pack
- Code-explorer output: [Phase 2 分析结果]
- Code-architect output: [Phase 4 架构方案]
## Current Task
实现登录功能,遵循现有模式
## Acceptance Criteria
端到端可用;测试通过;diff 最小化
EOF
codeagent-wrapper 执行者Claude Code 编排者
委托任务 + Context Pack
委托任务 + Context Pack
委托任务 + Context Pack
委托任务 + Context Pack
返回结果
返回结果
返回结果
返回结果
只负责流程控制不写代码code-explorercode-architectcode-reviewerdevelop

7 阶段工作流详解

Phase 1: Discovery - 理解需求

目标:搞清楚要做什么。

不是直接开干,而是先用 AskUserQuestion 问清楚:

  • ・用户可见的行为是什么?
  • ・范围边界在哪?
  • ・验收标准是什么?

然后调用 code-architect 生成需求清单和澄清问题。

codeagent-wrapper --agent code-architect - . <<'EOF' ## Current Task
Produce requirements checklist and identify missing information.
Output: Requirements, Non-goals, Risks, Acceptance criteria, Questions (<= 10)

## Acceptance Criteria
Concrete, testable checklist; specific questions; no implementation.
EOF

Phase 2: Exploration - 探索代码库

目标:搞清楚现有代码怎么写的。

这里体现了 并行优先 原则 —— 三个 code-explorer 任务同时跑:

codeagent-wrapper --parallel <<'EOF' ---TASK---
id: p2_similar_features
agent: code-explorer
workdir: .
---CONTENT---
Find 1-3 similar features, trace end-to-end.
Return: key files with line numbers, call flow, extension points.

---TASK---
id: p2_architecture
agent: code-explorer
workdir: .
---CONTENT---
Map architecture for relevant subsystem.
Return: module map + 5-10 key files.

---TASK---
id: p2_conventions
agent: code-explorer
workdir: .
---CONTENT---
Identify testing patterns, conventions, config.
Return: test commands + file locations.
EOF

三个探索任务并行执行,结果合并后传递给下一阶段。

Phase 2: 并行探索 p2_similar_features找相似功能p2_architecture映射架构p2_conventions识别规范Phase 1 完成合并结果Phase 3: Clarification 

Phase 3: Clarification - 澄清疑问(强制阶段)

目标:解决所有模糊点。

这是 不可跳过 的阶段。Phase 1 和 Phase 2 的输出汇总后,让 code-architect 生成优先级排序的问题列表,然后用 AskUserQuestion 逐一确认。

## 澄清问题

1. 登录失败时,错误信息是否需要区分"用户不存在""密码错误"?
2. 是否需要支持"记住我"功能?
3. 密码重置流程是否在本次范围内?

不回答不进入下一阶段。这是从 ralph-loop 学来的 —— 宁可多问,不要猜错。

Phase 4: Architecture - 设计方案

目标:确定怎么实现。

同样是并行模式 —— 两个 code-architect 同时工作,提出两种方案:

方案特点
minimal-change复用现有抽象,最小化新文件
pragmatic-clean引入测试友好的接缝,更好的可维护性
codeagent-wrapper --parallel <<'EOF' ---TASK--- id: p4_minimal agent: code-architect workdir: . ---CONTENT--- Propose minimal-change architecture: reuse existing abstractions. Output: file touch list, risks, edge cases. ---TASK--- id: p4_pragmatic agent: code-architect workdir: . ---CONTENT--- Propose pragmatic-clean architecture: introduce seams for testability. Output: file touch list, testing plan, risks. EOF 

用户选择后,进入实现阶段。

Phase 4: 两种架构方案 minimal-change复用现有抽象最小化新文件风险低pragmatic-clean引入测试接缝更好可维护性更多改动Phase 2 探索结果用户选择Phase 5: Implementation 

Phase 5: Implementation - 实现(需审批)

目标:把代码写出来。

这个阶段有个 显式审批门

用 AskUserQuestion 确认:
"Approve starting implementation?"
- Approve - Not yet 

批准后,调用 develop Agent 执行:

codeagent-wrapper --agent develop - . <<'EOF'
## Context Pack - Code-explorer output: [Phase 2 全部输出]
- Code-architect output: [Phase 4 选定方案 + Phase 3 答案]

## Current Task
Implement with minimal change set following chosen architecture.
- Follow Phase 2 patterns
- Add/adjust tests per Phase 4 plan
- Run narrowest relevant tests

## Acceptance Criteria
Feature works end-to-end; tests pass; diff is minimal.
EOF

Phase 6: Review - 代码审查

目标:抓 bug、砍复杂度。

两个 code-reviewer 并行工作:

审查者关注点
correctness正确性、边界情况、失败模式
simplicityKISS 原则、消除冗余抽象
codeagent-wrapper --parallel <<'EOF' ---TASK--- id: p6_correctness agent: code-reviewer workdir: . ---CONTENT--- Review for correctness, edge cases, failure modes. Assume adversarial inputs. ---TASK--- id: p6_simplicity agent: code-reviewer workdir: . ---CONTENT--- Review for KISS: remove bloat, collapse needless abstractions. EOF 

审查结果出来后,用户决定:

  • ・Fix now(现在修)
  • ・Fix later(以后修)
  • ・Proceed as-is(直接过)

Phase 7: Summary - 总结文档

目标:记录做了什么。

最后一个 code-reviewer 调用,生成完成报告:

  • ・做了什么
  • ・关键决策和取舍
  • ・修改的文件路径
  • ・验证命令
  • ・后续工作(可选)

完成后输出完成信号:

<promise>DO_COMPLETE</promise>

Phase 1Discovery理解需求Phase 2Exploration探索代码库Phase 3Clarification澄清疑问Phase 4Architecture设计方案Phase 5Implementation实现代码Phase 6Review代码审查Phase 7Summary总结文档✓ FEATURE_COMPLETE

多模型后端:按任务选模型

codeagent-wrapper 支持为不同 Agent 配置不同后端。在 ~/.codeagent/models.json 中:

{
  "agents": {
    "code-explorer": {
      "backend": "opencode",
      "model": "opencode/grok-code",
      "description": "快速代码分析"
    },
    "code-architect": {
      "backend": "claude",
      "model": "claude-opus-4-5-20251101",
      "description": "深度架构设计"
    },
    "code-reviewer": {
      "backend": "claude",
      "model": "claude-sonnet-4-5-20250929",
      "description": "代码审查"
    },
    "develop": {
      "backend": "codex",
      "model": "gpt-5.2",
      "description": "代码实现"
    }
  }
}

为什么这样分配?

Agent推荐后端原因
code-explorergrok-code快速遍历、代价低
code-architectopus4.5需要深度思考、权衡取舍
code-reviewersonnet平衡速度和质量
developgpt-5.2代码生成能力强、执行稳定
可用后端~/.codeagent/models.json
code-explorer→ grok-codecode-architect→ opus4.5code-reviewer→ sonnetdevelop→ gpt5.2codexclaudegeminiopencode

Loop 机制:防止中途退出

这是从 ralph-loop 借鉴的核心机制。

状态文件

每次 /do 启动时,创建 .claude/do.local.md

--- active: true current_phase: 1 phase_name: "Discovery" max_phases: 7 completion_promise: "<promise>DO_COMPLETE</promise>" ---

每完成一个阶段,更新 current_phasephase_name

Stop Hook

安装后会注册 Stop Hook。当 Claude 尝试退出时:

# hooks/stop-hook.sh 核心逻辑 if [ "$phases_done" -eq 0 ]; then
  reason="feature-dev 循环未完成:当前阶段 ${current_phase}/${max_phases}..." printf '{"decision":"block","reason":"%s"}\n' "$reason" fi 

如果还没完成,Hook 会 阻止退出 并提示继续执行。

强制退出方式:将状态文件中 active 设为 false

/do 启动
current_phase=2
current_phase=3
current_phase=4
current_phase=5
current_phase=6
current_phase=7
输出 FEATURE_COMPLETE
尝试退出
尝试退出
尝试退出
尝试退出
尝试退出
尝试退出
否(钩子阻止 / 留在当前阶段)
是(允许退出 / 跳过剩余阶段)
Phase1Phase2Phase3Phase4Phase5Phase6Phase7CompleteTryStop <>尝试优雅退出?TryStop

安装与使用

前置条件

    1. 安装 codeagent-wrapper:
git clone https://github.com/cexll/myclaude.git
bash ./install.sh
    1. 配置至少一个后端 CLI:
  1. codex(OpenAI Codex CLI)
  2. claude(Claude Code CLI)
  3. gemini(Gemini CLI)

安装 Skill

python install.py --module do 

安装内容:

  • ~/.claude/skills/do/ - Skill 文件
  • ・Hooks 自动合并到 ~/.claude/settings.json

使用

# 在 Claude Code 中
/do 添加用户登录功能
/do 实现订单导出 CSV
/do feature-prd.md

卸载

python install.py --uninstall --module do 

自定义 Agent Prompt

Agent 提示词位于 ~/.claude/skills/do/agents/ 目录:

  • code-explorer.md - 代码追踪、架构映射
  • code-architect.md - 方案设计、文件规划
  • code-reviewer.md - 代码审查、简化建议

如需自定义,在 ~/.codeagent/agents/ 创建同名文件覆盖。

自定义覆盖默认 Agent 配置
优先级更高
~/.claude/skills/do/agents/code-explorer.mdcode-architect.mdcode-reviewer.md~/.codeagent/agents/同名文件覆盖

总结

do 是四套工作流的合体

  • feature-dev 的 7 阶段框架和 Agent 分工
  • dev 的需求澄清和多后端路由
  • omo 的智能路由和编排者不写代码原则
  • ralph-loop 的状态持久化和防中断机制

加上 codeagent-wrapper 的多后端支持,你可以:

    1. 用一条命令启动完整的功能开发流程
    1. 让不同模型各展所长
    1. 通过并行执行提升效率
    1. 借助 Loop 机制确保流程完整

我做的工作就是把这些优秀的设计拼到一起,形成一套可复制的 AI 编排方法论


想学会自己写这样的 Skill?

这篇文章展示了 do 的设计思路,但如果你想:

  • ・深入理解 Claude Code Skill 的完整机制
  • ・学会设计多 Agent 编排工作流
  • ・掌握 codeagent-wrapper 的高级用法
  • ・构建适合你团队的定制化开发流程

我们会手把手教你:

  • ・Claude Code Skill 从零到一
  • ・多模型后端配置与调优
  • ・Stop Hook 和状态机设计
  • ・真实项目中的 AI 工程实践

📌 转载信息
原作者:
benchen
转载时间:
2026/1/24 06:39:52

一句话简介: 让 AI 帮你设计并更换 Windows 文件夹图标。

最近闲的疼,在整理文件夹时,脑子抽了,突然感觉看这些一模一样的黄色文件夹很不爽,要是能有像手机里面那样可以自定义的主题图标就好了,于是就搓了一个这个工具。

大概的思路就是让 ai 分析一下目录结构(不读取实际文件)后给出建议,然后结合自己想要的图标风格来生成提示词,输入生图模型来生成图标,最后再调用一下抠图的工具更换图标就可以了。

现在应该能正常使用。。。(应该)
虽然感觉这项目没啥鸟用,不过我自己用着挺爽的,,希望能有同感的佬友支持一波

效果示例


这我感觉很爽啊 特别是分好类的文件夹这种

基本流程

添加文件夹 → AI 分析内容 → 选择/自定义风格 → 生成图标 → 预览 → 应用

操作步骤

  1. 添加文件夹 - 点击左下角
  2. 选择风格 - 从模板库选择,或用自然语言描述
  3. 生成图标 - 点击「生成图标」或说「生成」
  4. 预览调整 - 在右侧面板查看生成版本
  5. 应用图标 - 满意后点击「应用」

里面我也内置了一些模板 可以直接一键套用

项目地址

了解更详细的内容,请点击:FolderPainter

目前感觉可拓展性也挺高的,也许还可以去改快捷方式的图标,这样桌面也可以个性化了。
觉得有意思的佬们可以去 GitHub 留个脚印,感谢支持!
任何有意思的想法和改进的建议也欢迎讨论!!!


📌 转载信息
转载时间:
2026/1/24 06:39:30

为什么写?

互联网冲浪时找到某网站,上面托管了自部署的小模型,感觉设计挺有意思的,故发帖

然后因为这个网站是 onion 所以帖子下面时不时生成嗨客的手腕与营销号语录

水 + 吐槽

1. 总之就是非常没意思的概念介绍

其实可以直接看维基百科

如果你称一个服务运行在暗网,那你一般指的是 onion 洋葱暗网服务,其实暗网这个概念非常易懂(这也是为什么营销号这么爱用)

tips: 滥用这个词真的很烦

  • 明网
    容易访问的,例如百毒 / Google/cloudflare 的网站、DNS,LinuxDo 就在这层

  • 深网
    DN42、你的管理后台、PT 站、毛子的神秘 XMPP 服务器,简单一点,如果这个网站声明了禁止搜索引擎检索那它也是深网,因为你不知道有这玩意或者有一定门槛,所以很难在没有引荐方的情况下访问

  • 暗网
    我求你了,先把那个带着 V 字仇杀队面具兜帽黑客扔出去
    这种网络有着独特的设计在 OSI 上层实现资讯安全与匿名,所以没法直接通过公共互联网访问,与知名度没有什么关系,或者你可以称它为隐藏网络?Tor、I2P、还有各位或多或少都用过的 IPFS


点击关闭广告 百毒 AL 最新推荐: 暗网是什么_怎么访问暗网_洋葱网站大全_点此登录暗网_2026 年最新教程_一刀 999 传奇任你玩


2. 现在该你了

相信各位点进来都是为了学习的 (雾),我们就以最流行的暗网老资历 Tor 为栗子吧,毕竟这个最简单

需求:计算机,互联网连接,自备代理

2.1 Tor 网桥

Tor 新出的网桥就是史,别用
不要尝试使用浏览器的自带请求器 (万年验证码这一块),使用 tg 机器人请求一个 /webtunnel 网桥,这是为数不多能用的

2.2 从简到难

  • 电脑端用户

安装软体,在 GNU/Linux 中该软件包应该能在软件包管理器中找到

打开软件,配置代理,看着连接连接进度条走完,好了,现在你什么都不缺了


这四个功能分别是:接收 / 发送文件,在线聊天,托管静态网站

  • IOS / 安卓用户

不懂就问,手机能玩吗?
可以的朋友,当然能,首先,你需要用终端模拟器或者 docker 在本地跑个服务,然后下载 Orbot

也可以直接到 github

下载之后打开应用,有网桥填网桥,没网桥到设置 Orbot设置→出站代理 配置代理,然后在 Orbot设置→常规 启用高级用户模式

设置页面

点击洋葱服务

  • 名称随便
  • 本地端口填写你想托管出去的服务
    比如你在 127.0.01:8080 有个 Docker
  • 洋葱端口选择没占用的就行

然后你就可以复制地址,备份,删除这个服务了

(笑


  • 种植洋葱

假设使用 Linux 并有一个正在运行的后端服务

首先你需要安装 tor 守护程序,安装并启用
通过反向代理提供服务

编辑配置文件 /etc/tor/torrc,处理两行就好了

HiddenServiceDir {onion服务文件存放目录}

HiddenServicePort {tor对外提供服务的端口} 127.0.0.1:{你后端服务的端口}

重启 tor 守护进程

sudo systemctl restart tor.service

然后访问上文配置的 {onion服务文件存放目录} 即可找到访问地址

~#cat {onion服务文件存放目录}/hostname


3. 后记

世界没有魔法,希望借此文让佬友理性看待看起来牛逼吼吼的暗网… 大概吧

… 其实都是诈骗和 FBI


  1. 脚注:robots.txt、 Meta 标签、 X-Robots-Tag ↩︎

  2. ↩︎

  3. 参考 ↩︎


📌 转载信息
原作者:
arch_linux
转载时间:
2026/1/24 06:39:15

666 大佬,请问这两个也是直接放在根目录 代码命名为 typora-patch.js 对吗? (是否需要阻止更新啥的呀)
PS: windows 也能用的是吧


📌 转载信息
原作者:
grvdd
转载时间:
2026/1/24 06:38:07

前段时间 OiiOii 收费了,签到的盒饭根本不够用。手中的智谱编码包还有佬的 Flow2api 也没地方用,正好想试试 Claude Agent SDK 写一个类似 OiiOii 的 Agent,于是花了几天搓了一个小玩具 openOii

有什么问题可以提 issue 或者直接帖子回复我,我看到了就会及时修复,欢迎 star 和 pr




📌 转载信息
原作者:
Xeron
转载时间:
2026/1/24 06:35:58

obsidian-upgit

项目地址: GitHub - kiusnax/obsidian-upgit

一个简单的 Obsidian 图片上传插件,基于 upgit

简介

之前一直使用 Typora,最近切换到了 Obsidian。然而,我发现现有的 Obsidian 图片上传插件体验都不太理想,于是和 Antigravity 老师一起搓了这个插件。

它的主要功能是拦截 Obsidian 的图片粘贴事件,将图片自动上传到配置的图床,并替换为远程链接。

演示

[开源项目] Obsidian 图片上传插件,基于 upgit1

功能特点

  • 无缝体验:直接粘贴图片,插件会自动处理上传。
  • 即时反馈:粘贴后立即显示本地预览,后台静默上传,上传成功后自动替换为远程链接。
  • 灵活配置:基于强大的 upgit CLI 工具,支持多种图床配置。

前置要求

本插件依赖于 upgit 命令行工具。在使用前,请确保你已经下载并配置好了 upgit

确保 upgit 在你的终端中可以通过命令正常上传图片。

配置指南

  1. 安装插件:将本仓库代码编译后的 main.js, manifest.json 文件放入 Obsidian 仓库的 .obsidian/plugins/obsidian-upgit/ 目录下。
  2. 启用插件:在 Obsidian 设置 → 第三方插件中启用 obsidian-upgit
  3. 插件设置
    • 打开插件设置页面。
    • Upgit Executable Path: 填写 upgit 可执行文件的绝对路径 (例如: C:\Tools\upgit.exe/usr/local/bin/upgit)。
    • Local Assets Folder: (可选) 设置临时图片的存储目录,默认为 assets

使用方法

配置完成后,只需在 Obsidian 编辑器中粘贴图片(Ctrl+V / Cmd+V),插件即可自动工作。

开发

npm install
npm run dev

📌 转载信息
原作者:
SAY
转载时间:
2026/1/24 06:34:48