<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>命令行工具 on KnightLi的博客</title>
        <link>https://knightli.com/tags/%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7/</link>
        <description>Recent content in 命令行工具 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Wed, 27 May 2026 13:52:01 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>RTK：给 AI 编程代理省 token 的命令行代理工具</title>
        <link>https://knightli.com/2026/05/27/rtk-ai-cli-proxy-token-savings/</link>
        <pubDate>Wed, 27 May 2026 13:52:01 +0800</pubDate>
        
        <guid>https://knightli.com/2026/05/27/rtk-ai-cli-proxy-token-savings/</guid>
        <description>&lt;p&gt;&lt;code&gt;rtk-ai/rtk&lt;/code&gt; 是一个面向 AI 编程代理的命令行代理工具。它的思路很直接：很多 agent 在开发过程中会频繁调用 &lt;code&gt;ls&lt;/code&gt;、&lt;code&gt;cat&lt;/code&gt;、&lt;code&gt;grep&lt;/code&gt;、&lt;code&gt;git status&lt;/code&gt;、&lt;code&gt;git diff&lt;/code&gt;、测试命令和构建命令，而这些命令的原始输出经常又长又重复。RTK 会在命令输出进入 LLM 上下文之前先做过滤和压缩，让模型看到更短、更有用的结果。&lt;/p&gt;
&lt;p&gt;项目地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/rtk-ai/rtk&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;rtk-ai/rtk&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;它解决的是什么问题&#34;&gt;它解决的是什么问题
&lt;/h2&gt;&lt;p&gt;AI 编程工具真正贵的不只是模型调用次数，还有上下文里被塞进去的无效信息。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ls -la&lt;/code&gt; 可能输出大量权限、时间和无关文件。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git diff&lt;/code&gt; 可能夹杂很多重复上下文。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pytest&lt;/code&gt;、&lt;code&gt;cargo test&lt;/code&gt;、&lt;code&gt;npm test&lt;/code&gt; 失败时，最重要的是失败用例和错误栈，而不是所有通过项。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker ps&lt;/code&gt;、&lt;code&gt;kubectl pods&lt;/code&gt;、&lt;code&gt;aws&lt;/code&gt; 命令往往字段很多，但 agent 只需要少数关键信息。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些输出如果原样进入模型上下文，会快速消耗 token。RTK 的目标不是替代这些命令，而是在它们和 AI 编程代理之间加一层“压缩代理”。&lt;/p&gt;
&lt;h2 id=&#34;rtk-的基本工作方式&#34;&gt;RTK 的基本工作方式
&lt;/h2&gt;&lt;p&gt;RTK README 里给出的定位是：它会在命令输出到达 LLM context 之前，对结果做过滤和压缩。它是一个 Rust 单文件二进制程序，支持大量常见开发命令，并强调低额外开销。&lt;/p&gt;
&lt;p&gt;它主要做四类处理：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Smart Filtering&lt;/strong&gt;：去掉注释、空白、样板内容和低价值噪音。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grouping&lt;/strong&gt;：把相似项目聚合起来，例如按目录、错误类型或状态分组。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Truncation&lt;/strong&gt;：保留关键上下文，截断重复或不重要的部分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deduplication&lt;/strong&gt;：把重复日志折叠成更短的计数表达。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;从 agent 的角度看，命令仍然是熟悉的开发命令；变化在于返回给模型的结果更短。&lt;/p&gt;
&lt;h2 id=&#34;支持哪些命令&#34;&gt;支持哪些命令
&lt;/h2&gt;&lt;p&gt;RTK 覆盖的命令范围比较偏“日常开发现场”：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;文件查看：&lt;code&gt;rtk ls&lt;/code&gt;、&lt;code&gt;rtk read&lt;/code&gt;、&lt;code&gt;rtk find&lt;/code&gt;、&lt;code&gt;rtk grep&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Git：&lt;code&gt;rtk git status&lt;/code&gt;、&lt;code&gt;rtk git log&lt;/code&gt;、&lt;code&gt;rtk git diff&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;GitHub CLI：&lt;code&gt;rtk gh pr list&lt;/code&gt;、&lt;code&gt;rtk gh pr view&lt;/code&gt;、&lt;code&gt;rtk gh issue list&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;测试命令：&lt;code&gt;rtk pytest&lt;/code&gt;、&lt;code&gt;rtk go test&lt;/code&gt;、&lt;code&gt;rtk cargo test&lt;/code&gt;、&lt;code&gt;rtk vitest&lt;/code&gt;、&lt;code&gt;rtk playwright test&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;构建和 lint：&lt;code&gt;rtk lint&lt;/code&gt;、&lt;code&gt;rtk tsc&lt;/code&gt;、&lt;code&gt;rtk next build&lt;/code&gt;、&lt;code&gt;rtk cargo clippy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;容器和云命令：&lt;code&gt;rtk docker ps&lt;/code&gt;、&lt;code&gt;rtk docker logs&lt;/code&gt;、&lt;code&gt;rtk kubectl pods&lt;/code&gt;、&lt;code&gt;rtk aws sts get-caller-identity&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;数据和日志：&lt;code&gt;rtk json&lt;/code&gt;、&lt;code&gt;rtk deps&lt;/code&gt;、&lt;code&gt;rtk env&lt;/code&gt;、&lt;code&gt;rtk log&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类工具最适合 agent 高频读命令输出的场景。它不负责替你写代码，而是让 agent 少读废话。&lt;/p&gt;
&lt;h2 id=&#34;安装和接入方式&#34;&gt;安装和接入方式
&lt;/h2&gt;&lt;p&gt;README 给了几种安装方式。&lt;/p&gt;
&lt;p&gt;Homebrew：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install rtk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Linux/macOS 快速安装：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cargo：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo install --git https://github.com/rtk-ai/rtk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装后可以先检查版本和统计信息：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk --version
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk gain
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;接入 AI 编程工具时，可以用初始化命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk init -g
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk init -g --gemini
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk init -g --codex
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk init -g --agent cursor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk init --agent windsurf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rtk init --agent cline
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;初始化后需要重启对应的 AI 工具。对于支持 hook 的 agent，Bash 命令会在执行前被重写，例如把 &lt;code&gt;git status&lt;/code&gt; 变成 &lt;code&gt;rtk git status&lt;/code&gt;，让 agent 收到压缩后的输出。&lt;/p&gt;
&lt;h2 id=&#34;使用时要注意什么&#34;&gt;使用时要注意什么
&lt;/h2&gt;&lt;p&gt;RTK 的收益取决于 agent 是否真的通过 shell 命令读取信息。&lt;/p&gt;
&lt;p&gt;README 里特别提醒：像 Claude Code 的内置 &lt;code&gt;Read&lt;/code&gt;、&lt;code&gt;Grep&lt;/code&gt;、&lt;code&gt;Glob&lt;/code&gt; 这类工具不经过 Bash hook，因此不会自动被 RTK 改写。要让 RTK 介入，需要使用 shell 命令，例如 &lt;code&gt;cat&lt;/code&gt;、&lt;code&gt;head&lt;/code&gt;、&lt;code&gt;tail&lt;/code&gt;、&lt;code&gt;rg&lt;/code&gt;、&lt;code&gt;grep&lt;/code&gt;、&lt;code&gt;find&lt;/code&gt;，或者直接调用 &lt;code&gt;rtk read&lt;/code&gt;、&lt;code&gt;rtk grep&lt;/code&gt;、&lt;code&gt;rtk find&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;这点很关键。RTK 不是全局透明地压缩所有 agent I/O，它更像是 shell 命令层面的代理。&lt;/p&gt;
&lt;p&gt;Windows 用户也要注意，README 建议不要直接双击 &lt;code&gt;rtk.exe&lt;/code&gt;，而是把它放到 PATH 里，通过 Command Prompt、PowerShell 或 Windows Terminal 使用。它也提到，如果想获得完整 hook 体验，WSL 会更自然。&lt;/p&gt;
&lt;h2 id=&#34;适合谁用&#34;&gt;适合谁用
&lt;/h2&gt;&lt;p&gt;RTK 适合三类人：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;重度 AI 编程用户&lt;/strong&gt;：每天让 agent 跑很多 &lt;code&gt;git&lt;/code&gt;、&lt;code&gt;rg&lt;/code&gt;、测试和构建命令。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大仓库用户&lt;/strong&gt;：命令输出动辄几百行，agent 经常被无关上下文淹没。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;关心 token 成本和上下文窗口的人&lt;/strong&gt;：希望模型把注意力放在失败、变更和关键文件上。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你的项目很小，或者 agent 主要通过 IDE 内置工具读取文件，RTK 的体感收益可能没那么明显。它真正发力的地方，是命令行输出又长又频繁的开发流。&lt;/p&gt;
&lt;h2 id=&#34;我的判断&#34;&gt;我的判断
&lt;/h2&gt;&lt;p&gt;RTK 的方向很实用。现在很多 AI 编程工作流都在强调更强的模型、更大的上下文、更长的任务，但开发现场还有一个朴素问题：agent 经常读了太多没必要读的东西。&lt;/p&gt;
&lt;p&gt;把命令输出先压缩，再交给模型，能减少 token 消耗，也能降低模型被噪音带偏的概率。&lt;/p&gt;
&lt;p&gt;不过它不是魔法开关。要用好 RTK，需要把 agent 的工作方式往 shell 命令靠一靠，并确认当前工具的 hook 是否真的生效。对 Codex、Claude Code、Gemini CLI、Cursor、Windsurf 这类场景来说，它更像一个值得测试的“上下文节流器”：不改变开发命令本身，但让 agent 读到更干净的结果。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>wx-cli 项目解读：用命令行查询本地微信聊天记录</title>
        <link>https://knightli.com/2026/05/18/wx-cli-wechat-local-data-command-line-tool/</link>
        <pubDate>Mon, 18 May 2026 21:02:21 +0800</pubDate>
        
        <guid>https://knightli.com/2026/05/18/wx-cli-wechat-local-data-command-line-tool/</guid>
        <description>&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 是一个用 Rust 编写的本地微信数据命令行工具，目标是在命令行里查询自己的微信会话、聊天记录、联系人、群成员、收藏、朋友圈、公众号文章、附件和统计信息。&lt;/p&gt;
&lt;p&gt;它不是一个云端微信同步服务，也不是聊天机器人。它更像一个本地只读数据检索层：微信仍然在本机运行，数据仍然留在本机，&lt;code&gt;wx-cli&lt;/code&gt; 负责按需解密、缓存和查询本地数据库，然后把结果以 YAML 或 JSON 形式输出给人或 Agent 使用。&lt;/p&gt;
&lt;p&gt;这个项目有两个值得关注的点：一是它把微信本地数据查询做成了跨平台 CLI；二是它专门考虑了 Claude Code、Cursor、Codex 这类 AI Agent 的使用场景，提供了 &lt;code&gt;SKILL.md&lt;/code&gt; 和带 &lt;code&gt;meta&lt;/code&gt; 的结构化输出。&lt;/p&gt;
&lt;h2 id=&#34;wx-cli-能做什么&#34;&gt;wx-cli 能做什么
&lt;/h2&gt;&lt;p&gt;按项目 README 的描述，&lt;code&gt;wx-cli&lt;/code&gt; 覆盖的功能很完整：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;查看最近会话和未读会话。&lt;/li&gt;
&lt;li&gt;查询某个联系人或群的聊天历史。&lt;/li&gt;
&lt;li&gt;全库搜索关键词。&lt;/li&gt;
&lt;li&gt;查看新增消息。&lt;/li&gt;
&lt;li&gt;查询联系人、群成员和群昵称。&lt;/li&gt;
&lt;li&gt;查询收藏。&lt;/li&gt;
&lt;li&gt;查询朋友圈通知、朋友圈时间线和朋友圈正文。&lt;/li&gt;
&lt;li&gt;查询公众号文章推送。&lt;/li&gt;
&lt;li&gt;列出和提取聊天图片附件。&lt;/li&gt;
&lt;li&gt;做聊天统计。&lt;/li&gt;
&lt;li&gt;导出聊天记录为 Markdown 或 JSON。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些能力让它不只是“查聊天记录”，而是把微信本地数据变成了可搜索、可统计、可导出的本地资料库。&lt;/p&gt;
&lt;h2 id=&#34;为什么适合-ai-agent&#34;&gt;为什么适合 AI Agent
&lt;/h2&gt;&lt;p&gt;很多命令行工具只是给人看的，输出是一段文本。&lt;code&gt;wx-cli&lt;/code&gt; 则明显考虑了 Agent 读取。&lt;/p&gt;
&lt;p&gt;README 提到，&lt;code&gt;history&lt;/code&gt;、&lt;code&gt;search&lt;/code&gt;、&lt;code&gt;sessions&lt;/code&gt;、&lt;code&gt;unread&lt;/code&gt;、&lt;code&gt;new-messages&lt;/code&gt;、&lt;code&gt;stats&lt;/code&gt;、&lt;code&gt;attachments&lt;/code&gt; 等命令会附带 &lt;code&gt;meta&lt;/code&gt; 信息。&lt;code&gt;meta&lt;/code&gt; 里包含结果状态、未知分片、命中数据的最新时间、session 记录的最新时间等信息。&lt;/p&gt;
&lt;p&gt;这对 Agent 很有用。因为 AI 不只需要“查到了什么”，还需要知道“结果新不新”“有没有可能漏消息”“是不是需要重新 init”。例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt; 可以提示结果是否 &lt;code&gt;ok&lt;/code&gt; 或 &lt;code&gt;possibly_stale&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unknown_shards&lt;/code&gt; 可以提示是否存在 daemon 当前没有 key 的数据库分片。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chat_latest_timestamp&lt;/code&gt; 可以告诉 Agent 当前命中数据里的最新消息时间。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;session_last_timestamp&lt;/code&gt; 可以帮助判断本地 session 记录是否明显领先于查询结果。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类元信息可以减少 AI 误判，让 Claude Code、Cursor、Codex 这类工具在处理微信数据时更稳。&lt;/p&gt;
&lt;h2 id=&#34;安装方式&#34;&gt;安装方式
&lt;/h2&gt;&lt;p&gt;项目推荐通过 npm 全平台安装：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g @jackwener/wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;也支持 macOS / Linux 的 curl 安装：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://raw.githubusercontent.com/jackwener/wx-cli/main/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows 可以在管理员 PowerShell 中运行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;irm &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;raw&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;githubusercontent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;com&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jackwener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;wx-cli&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;main&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;install&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ps1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;iex
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果要从源码构建，也可以直接用 Rust：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone git@github.com:jackwener/wx-cli.git &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cargo build --release
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;构建产物是 &lt;code&gt;target/release/wx&lt;/code&gt;，Windows 下是 &lt;code&gt;wx.exe&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;和-agent-skill-的关系&#34;&gt;和 Agent Skill 的关系
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 还提供了面向 AI Agent 的 Skill。可以通过 skills CLI 一键安装到 Claude Code、Cursor、Codex 等支持 Skills 的环境：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add jackwener/wx-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;全局安装：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add jackwener/wx-cli -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安装后，Agent 会读取仓库里的 &lt;code&gt;SKILL.md&lt;/code&gt;，知道如何安装、初始化和调用 &lt;code&gt;wx-cli&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;这意味着你可以让 Agent 帮你做一些本地信息整理任务，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;找某段时间某个群聊里讨论过的关键词。&lt;/li&gt;
&lt;li&gt;汇总最近未读消息。&lt;/li&gt;
&lt;li&gt;从某个会话里导出最近聊天记录。&lt;/li&gt;
&lt;li&gt;搜索公众号文章推送链接。&lt;/li&gt;
&lt;li&gt;分析某个群聊里的发言统计。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;前提仍然是：这些数据必须是你本机、你自己的微信数据。&lt;/p&gt;
&lt;h2 id=&#34;基本使用方式&#34;&gt;基本使用方式
&lt;/h2&gt;&lt;p&gt;初始化前需要保持微信正在运行。不同平台要求不同。&lt;/p&gt;
&lt;p&gt;Linux 上可以执行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo wx init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Windows 上需要用管理员 PowerShell：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wx&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;init&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;macOS 上更复杂。README 说明，默认路径需要先对 WeChat 做 ad-hoc 签名，才能扫描进程内存；重签名后还要清理旧 TCC 授权记录，否则截图、视频通话、麦克风等权限可能出现“看起来已开启但实际拒绝”的问题。项目文档也提醒，重签名会带来 macOS 频繁弹出访问其他 App 数据提示的副作用。&lt;/p&gt;
&lt;p&gt;初始化后，可以用下面的命令验证：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sessions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;能看到最近会话，说明基本链路已经可用。daemon 会在首次调用时自动启动。&lt;/p&gt;
&lt;h2 id=&#34;常用命令示例&#34;&gt;常用命令示例
&lt;/h2&gt;&lt;p&gt;查看最近会话：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sessions
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;查看未读会话：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx unread
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;只看真人未读，过滤公众号和折叠入口：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx unread --filter private,group
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;查看某个会话最近聊天记录：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;拉取更多历史消息：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt; -n &lt;span class=&#34;m&#34;&gt;2000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;按时间范围查询群聊：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;history&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --since 2026-04-01 --until 2026-04-15
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;全库搜索：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx search &lt;span class=&#34;s2&#34;&gt;&amp;#34;关键词&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;搜索某个群中的关键词：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx search &lt;span class=&#34;s2&#34;&gt;&amp;#34;会议&amp;#34;&lt;/span&gt; --in &lt;span class=&#34;s2&#34;&gt;&amp;#34;工作群&amp;#34;&lt;/span&gt; --since 2026-01-01
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;导出聊天记录：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt; --format markdown -o chat.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx &lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --since 2026-01-01 --format json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这些命令都比较适合被脚本或 Agent 调用，尤其是加上 &lt;code&gt;--json&lt;/code&gt; 后。&lt;/p&gt;
&lt;h2 id=&#34;朋友圈和公众号文章&#34;&gt;朋友圈和公众号文章
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 不只查聊天。&lt;/p&gt;
&lt;p&gt;朋友圈相关命令分成通知和帖子：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-notifications
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-feed
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx sns-search &lt;span class=&#34;s2&#34;&gt;&amp;#34;关键词&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;需要注意，朋友圈数据只覆盖你本地刷到过的内容。微信客户端按需下载，没在本地出现过的数据，工具也不会凭空拿到。&lt;/p&gt;
&lt;p&gt;公众号文章则通过独立命令查询：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --account &lt;span class=&#34;s2&#34;&gt;&amp;#34;返朴&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --since 2026-05-01 --until 2026-05-10
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx biz-articles --json &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq &lt;span class=&#34;s1&#34;&gt;&amp;#39;.[].url&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它会返回公众号名称、标题、URL、摘要、封面、时间等字段。对做资料整理、文章收集和本地知识库的人来说，这个功能很实用。&lt;/p&gt;
&lt;h2 id=&#34;附件提取&#34;&gt;附件提取
&lt;/h2&gt;&lt;p&gt;微信聊天里的图片附件通常不是直接可读的普通图片文件，而是存在 &lt;code&gt;xwechat_files/&amp;lt;wxid&amp;gt;/msg/attach/...&lt;/code&gt; 下的 &lt;code&gt;.dat&lt;/code&gt; 文件。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 提供了两步流程：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx attachments &lt;span class=&#34;s2&#34;&gt;&amp;#34;张三&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx attachments &lt;span class=&#34;s2&#34;&gt;&amp;#34;AI群&amp;#34;&lt;/span&gt; --kind image -n &lt;span class=&#34;m&#34;&gt;100&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;先拿到 &lt;code&gt;attachment_id&lt;/code&gt; 后，再提取：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx extract &amp;lt;attachment_id&amp;gt; -o ~/Desktop/photo.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;输出报告里会带 &lt;code&gt;md5&lt;/code&gt;、&lt;code&gt;dat_path&lt;/code&gt;、&lt;code&gt;dat_size&lt;/code&gt;、&lt;code&gt;output&lt;/code&gt;、&lt;code&gt;format&lt;/code&gt;、&lt;code&gt;decoder&lt;/code&gt; 等信息。README 中说明它支持 legacy XOR、V1 fixed-AES、V2 AES + XOR 等解码档位，不同平台的 image key 提取方式也不同。&lt;/p&gt;
&lt;p&gt;这部分能力很强，但也更需要谨慎使用：只处理自己的数据，不要把它用于未经授权的数据访问。&lt;/p&gt;
&lt;h2 id=&#34;daemon-架构为什么重要&#34;&gt;daemon 架构为什么重要
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 的性能点在 daemon。&lt;/p&gt;
&lt;p&gt;README 中给出的结构大致是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wx (CLI) ──Unix socket──▶ wx-daemon (后台进程)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                              │
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    ┌─────────┴──────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;               DBCache               联系人缓存
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           (mtime 感知复用)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;daemon 首次解密后，会把数据库和 mtime 信息持久化到 &lt;code&gt;~/.wx-cli/cache/&lt;/code&gt;。如果数据库文件 mtime 没变，后续调用就可以复用缓存，不需要每次重新解密。&lt;/p&gt;
&lt;p&gt;这对命令行查询和 Agent 循环都很关键。Agent 可能会连续查询多个会话、搜索多个关键词、再做统计和导出。如果每次都重新扫描和解密，体验会很差；daemon 缓存让它更接近一个本地查询服务。&lt;/p&gt;
&lt;h2 id=&#34;原理简述&#34;&gt;原理简述
&lt;/h2&gt;&lt;p&gt;项目 README 对原理有直接说明：微信 4.x 使用 SQLCipher 4 加密本地数据库，WCDB 会在进程内存中缓存派生后的 raw key。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 会根据平台使用不同方式扫描微信进程内存，匹配 key 模式后提取密钥，再由 daemon 按需解密和缓存数据库。&lt;/p&gt;
&lt;p&gt;不同平台的底层机制不同：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS 使用 Mach VM API。&lt;/li&gt;
&lt;li&gt;Linux 使用 &lt;code&gt;/proc/&amp;lt;pid&amp;gt;/mem&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;Windows 使用 &lt;code&gt;VirtualQueryEx&lt;/code&gt; 和 &lt;code&gt;ReadProcessMemory&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些能力解释了为什么初始化通常需要较高权限，也解释了为什么 macOS 上会涉及签名和隐私授权。&lt;/p&gt;
&lt;h2 id=&#34;使用边界和风险&#34;&gt;使用边界和风险
&lt;/h2&gt;&lt;p&gt;这类工具必须先讲边界。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; README 的免责声明写得很明确：工具仅用于学习和研究目的，用于解密自己的微信数据，并要求遵守相关法律法规，不得用于未经授权的数据访问。&lt;/p&gt;
&lt;p&gt;实际使用时也建议注意：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只在自己的电脑、自己的微信账号上使用。&lt;/li&gt;
&lt;li&gt;不要把导出的聊天记录随意上传到云端模型。&lt;/li&gt;
&lt;li&gt;用 Agent 分析聊天记录时，先确认 API 供应商和数据出境风险。&lt;/li&gt;
&lt;li&gt;导出 Markdown / JSON 后要注意文件权限和备份位置。&lt;/li&gt;
&lt;li&gt;公司或多人设备上使用前，先确认合规和授权。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;本地工具不等于没有隐私风险。它减少了数据离开本机的默认路径，但如果你把输出交给云端模型、网盘或第三方脚本，风险又会回来。&lt;/p&gt;
&lt;h2 id=&#34;适合谁使用&#34;&gt;适合谁使用
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 适合这些场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想在本地快速搜索自己的微信历史消息。&lt;/li&gt;
&lt;li&gt;需要把某个会话导出为 Markdown 或 JSON。&lt;/li&gt;
&lt;li&gt;想统计某个群聊在一段时间内的发言情况。&lt;/li&gt;
&lt;li&gt;想让 Claude Code、Cursor、Codex 等 Agent 帮忙整理本地微信资料。&lt;/li&gt;
&lt;li&gt;想把公众号文章推送链接整理进本地知识库。&lt;/li&gt;
&lt;li&gt;想研究微信本地数据库结构和解密流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不太适合这些场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;想做云端微信同步。&lt;/li&gt;
&lt;li&gt;想绕过他人设备或账号权限。&lt;/li&gt;
&lt;li&gt;想无脑图形界面操作，不接触命令行。&lt;/li&gt;
&lt;li&gt;不愿意处理 macOS 权限、Windows 管理员权限或 Linux sudo 的用户。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;wx-cli&lt;/code&gt; 的价值，不只是“命令行查微信聊天记录”。更准确地说，它把本地微信数据变成了一个可查询、可导出、可被 Agent 消费的本地数据源。&lt;/p&gt;
&lt;p&gt;它的 daemon 架构解决了反复解密和查询性能问题；&lt;code&gt;meta&lt;/code&gt; wrapper 让 AI Agent 更容易判断结果是否新鲜；&lt;code&gt;SKILL.md&lt;/code&gt; 则把安装和使用方式交给 Claude Code、Cursor、Codex 这类工具理解。&lt;/p&gt;
&lt;p&gt;如果你经常需要从微信里找信息、整理群聊、导出记录或构建个人资料库，&lt;code&gt;wx-cli&lt;/code&gt; 很值得关注。但使用它时也要始终记住一条底线：只处理自己的数据，并且谨慎管理导出结果。&lt;/p&gt;
&lt;h2 id=&#34;参考资料&#34;&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/jackwener/wx-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;jackwener/wx-cli GitHub 仓库&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>自动剪掉静音空白，再导出到 Premiere 和 Resolve, auto-editor功能介绍</title>
        <link>https://knightli.com/2026/04/23/auto-editor-auto-cut-silence-premiere-resolve-workflow/</link>
        <pubDate>Thu, 23 Apr 2026 13:31:27 +0800</pubDate>
        
        <guid>https://knightli.com/2026/04/23/auto-editor-auto-cut-silence-premiere-resolve-workflow/</guid>
        <description>&lt;p&gt;很多视频真正耗时间的地方，不是加转场、调颜色或者修字幕，而是先把一大段素材从头看到尾，然后手动删掉那些没人说话、没有动作、没有信息量的空白段。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;auto-editor&lt;/code&gt; 解决的就是这件事。它不是传统意义上的可视化剪辑软件，而是一个命令行工具，先分析视频或音频，再把静音段、低运动段这类“死区”自动切掉，帮你做第一遍粗剪。&lt;/p&gt;
&lt;p&gt;如果你手上常常有下面这些素材，这类工具会特别顺手：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;录屏讲解&lt;/li&gt;
&lt;li&gt;教程视频&lt;/li&gt;
&lt;li&gt;播客或口播&lt;/li&gt;
&lt;li&gt;长时间直播回放&lt;/li&gt;
&lt;li&gt;需要先粗剪再精修的访谈素材&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;它最核心的能力是什么&#34;&gt;它最核心的能力是什么
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;auto-editor&lt;/code&gt; 的核心思路可以压成一句话：&lt;/p&gt;
&lt;p&gt;先自动完成 boring 的第一遍剪辑，再把结果交给你继续处理。&lt;/p&gt;
&lt;p&gt;官方 README 里最强调的点，就是它会先切掉常见的“dead space”，最典型的是静音。对很长的视频来说，这一步往往最耗时，也最机械。&lt;/p&gt;
&lt;p&gt;最基础的用法非常直接：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;auto-editor path/to/your/video.mp4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;跑完之后，你可以把它理解成已经帮你做完一轮初筛。它不是在替你做最终审美判断，而是在先把明显没信息量的段落筛掉。&lt;/p&gt;
&lt;h2 id=&#34;它不只是按静音剪也能按运动剪&#34;&gt;它不只是按静音剪，也能按运动剪
&lt;/h2&gt;&lt;p&gt;很多人看到“自动剪辑”，第一反应会以为它只能识别静音。&lt;/p&gt;
&lt;p&gt;但 &lt;code&gt;auto-editor&lt;/code&gt; 的规则不只一套。官方文档里比较常见的两类自动判断方式是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;audio&lt;/code&gt;：按音量或响度判断&lt;/li&gt;
&lt;li&gt;&lt;code&gt;motion&lt;/code&gt;：按画面运动变化判断&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;auto-editor example.mp4 --edit motion:threshold&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;0.02
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这类规则的意义在于，它不只是适合“没人说话就删掉”的素材，也适合某些主要靠画面变化推动内容的视频。&lt;/p&gt;
&lt;p&gt;官方还支持把不同规则组合起来，比如把音频和运动条件一起用。这样做的好处是，你可以把“什么时候该保留、什么时候该切掉”变得更接近真实需求，而不是死靠单一阈值。&lt;/p&gt;
&lt;h2 id=&#34;--margin-很关键它决定剪出来像不像人剪的&#34;&gt;&lt;code&gt;--margin&lt;/code&gt; 很关键，它决定剪出来像不像人剪的
&lt;/h2&gt;&lt;p&gt;自动粗剪最容易翻车的地方，不是“有没有剪掉空白”，而是剪得太狠。&lt;/p&gt;
&lt;p&gt;一句话刚开头就被切掉，或者一句话说完立刻断开，都会让视频看起来很机械。&lt;code&gt;auto-editor&lt;/code&gt; 在这里有一个很实用的参数：&lt;code&gt;--margin&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;它的作用可以理解成，在原本要切掉的边界前后，稍微留一点缓冲。官方示例里默认值是 &lt;code&gt;0.2s&lt;/code&gt;，也就是前后各留一点点空白，让节奏更自然。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;auto-editor example.mp4 --margin 0.2sec
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;auto-editor example.mp4 --margin 0.3s,1.5sec
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这个参数很值得注意，因为它往往决定成片看起来像“自动裁断”，还是像“有人先做过一轮顺手的粗剪”。&lt;/p&gt;
&lt;h2 id=&#34;它适合做第一遍不一定适合替代整套-nle-工作流&#34;&gt;它适合做第一遍，不一定适合替代整套 NLE 工作流
&lt;/h2&gt;&lt;p&gt;这是理解 &lt;code&gt;auto-editor&lt;/code&gt; 时最重要的一点。&lt;/p&gt;
&lt;p&gt;它更像一个自动化粗剪器，而不是一个完整的非线性编辑器。它的优势在于：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;快速处理长素材&lt;/li&gt;
&lt;li&gt;批量完成重复性的删空白工作&lt;/li&gt;
&lt;li&gt;把明显无效的时间段先压掉&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但真正涉及这些事情时，你大概率还是会回到传统编辑器：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;精细调整节奏&lt;/li&gt;
&lt;li&gt;手动挑重点片段&lt;/li&gt;
&lt;li&gt;加字幕、转场和 B-roll&lt;/li&gt;
&lt;li&gt;调色、混音和最终包装&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以更现实的定位不是“以后不用 Premiere / Resolve 了”，而是“先让 &lt;code&gt;auto-editor&lt;/code&gt; 做机械劳动，再去编辑器里做精修”。&lt;/p&gt;
&lt;h2 id=&#34;它可以直接导出成片也可以导出时间线给编辑器&#34;&gt;它可以直接导出成片，也可以导出时间线给编辑器
&lt;/h2&gt;&lt;p&gt;这也是 &lt;code&gt;auto-editor&lt;/code&gt; 比较实用的一点。&lt;/p&gt;
&lt;p&gt;如果你只是想快速出一个已经删掉空白段的版本，它可以直接渲染媒体文件。&lt;br&gt;
但如果你后面还要继续精修，官方也支持把时间线导出到常见编辑器。&lt;/p&gt;
&lt;p&gt;README 里列出的导出目标包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Adobe Premiere Pro：&lt;code&gt;--export premiere&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;DaVinci Resolve：&lt;code&gt;--export resolve&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Final Cut Pro：&lt;code&gt;--export final-cut-pro&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Shotcut：&lt;code&gt;--export shotcut&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Kdenlive：&lt;code&gt;--export kdenlive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;独立片段序列：&lt;code&gt;--export clip-sequence&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;auto-editor example.mp4 --export premiere
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这类设计很实用，因为它让 &lt;code&gt;auto-editor&lt;/code&gt; 更像是前处理工具，而不是把你锁死在自己的封闭工作流里。&lt;/p&gt;
&lt;h2 id=&#34;它也支持手动补规则不是只能全自动&#34;&gt;它也支持手动补规则，不是只能全自动
&lt;/h2&gt;&lt;p&gt;很多自动工具一旦判断错了，就会让人很难救。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;auto-editor&lt;/code&gt; 在这方面还算灵活，它允许你显式指定某些片段一定删掉，或者一定保留。官方示例里常见的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--cut-out&lt;/code&gt;：无论如何都切掉&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--add-in&lt;/code&gt;：无论如何都保留&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;auto-editor example.mp4 --cut-out 0,30sec
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;auto-editor example.mp4 --add-in 0,30sec
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这意味着它不是“把判断权全部交给程序”，而是你可以先用自动规则做主体，再用手动规则兜底，减少整条时间线来回返工。&lt;/p&gt;
&lt;h2 id=&#34;安装方式里官方现在更推荐直接下二进制&#34;&gt;安装方式里，官方现在更推荐直接下二进制
&lt;/h2&gt;&lt;p&gt;从官方安装页看，现在最推荐的安装方式不是 &lt;code&gt;pip&lt;/code&gt;，而是直接下载 GitHub Releases 里的二进制文件。&lt;/p&gt;
&lt;p&gt;安装说明大致是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;到 Releases 页面下载对应平台的二进制&lt;/li&gt;
&lt;li&gt;重命名为 &lt;code&gt;auto-editor&lt;/code&gt; 或 Windows 下的 &lt;code&gt;auto-editor.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;在终端里直接运行&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;auto-editor --help&lt;/code&gt; 确认是否安装成功&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果是平台包管理器，官方也提到了这些方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS 可用 &lt;code&gt;brew install auto-editor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu / Debian 系可用 &lt;code&gt;apt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Arch 系可用 &lt;code&gt;yay -S auto-editor&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;值得注意的是，官方安装页明确提到：新版本已经不再持续发布到 &lt;code&gt;pip&lt;/code&gt;，所以 &lt;code&gt;pip install auto-editor&lt;/code&gt; 仍然能看到，但已经不是首选安装路径。&lt;/p&gt;
&lt;h2 id=&#34;还有一个小细节装了-yt-dlp-之后可以直接吃-url&#34;&gt;还有一个小细节：装了 &lt;code&gt;yt-dlp&lt;/code&gt; 之后可以直接吃 URL
&lt;/h2&gt;&lt;p&gt;安装页里还有一个挺实用的可选依赖说明：如果系统里已经装了 &lt;code&gt;yt-dlp&lt;/code&gt;，&lt;code&gt;auto-editor&lt;/code&gt; 可以直接把 URL 当输入。&lt;/p&gt;
&lt;p&gt;这对某些先抓线上素材、再自动粗剪的人会很方便。也就是说，它不只是吃本地文件，在某些工作流里还可以直接接在线视频地址做前处理。&lt;/p&gt;
&lt;p&gt;不过更实际的用法仍然是：先确认素材来源和版权没问题，再把它放进自己的剪辑流程。&lt;/p&gt;
&lt;h2 id=&#34;这类工具最适合什么人&#34;&gt;这类工具最适合什么人
&lt;/h2&gt;&lt;p&gt;如果你平时做的是强叙事、强镜头语言、需要大量人工节奏设计的视频，&lt;code&gt;auto-editor&lt;/code&gt; 不会替你做最难的部分。&lt;/p&gt;
&lt;p&gt;但如果你经常碰到的是下面这些任务，它很可能能明显省时间：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一小时录屏里删掉大量停顿&lt;/li&gt;
&lt;li&gt;播客口播先去静音再进编辑器&lt;/li&gt;
&lt;li&gt;课程视频先做粗剪再加字幕&lt;/li&gt;
&lt;li&gt;批量处理结构相似的长素材&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它的价值不在于“剪得比人更有审美”，而在于先把最重复、最机械、最容易耗掉耐心的第一步自动化。&lt;/p&gt;
&lt;h2 id=&#34;结语&#34;&gt;结语
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;auto-editor&lt;/code&gt; 值得关注的地方，不是它把剪辑变成了一个神奇的 AI 黑盒，而是它老老实实解决了一个很具体的问题：怎么更快做完第一遍粗剪。&lt;/p&gt;
&lt;p&gt;如果你把它当成自动删静音、删空白、导出时间线的前处理工具，它的定位其实很清楚：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不负责最后的精修审美&lt;/li&gt;
&lt;li&gt;很适合长素材的第一遍处理&lt;/li&gt;
&lt;li&gt;和 Premiere、Resolve 这类传统编辑器不是替代关系，而是配合关系&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对很多教程、录屏、口播和长视频工作流来说，这种工具往往不是“炫技型神器”，而是能真正在重复劳动上省时间的那一种。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
