rathole 入门指南一、概述1. 简介A. 是什么rathole 是一个用 Rust 编写的轻量级、高性能反向代理工具，用于 NAT 穿透。它可以将位于 NAT 后面的设备上的服务暴露到互联网上。与 frp 和 ngrok 类似，rathole 通过一台具有公网 IP 的服务器来中转流量，使内网服务可被外网访问。B. 为什么学解决家庭服务器或 NAS 无法直接访问的问题相比 frp 具有更高的性能和更低的资源占用用 Rust 编写，二进制文件可小至 500KiB，适合嵌入式设备C. 学完能做什么在公网服务器上部署 rathole 服务端在内网设备上配置客户端，将本地服务暴露到公网配置加密传输，保护数据安全热重载配置，无需重启服务二、环境准备1. 系统要求服务器：具有公网 IP 的 Linux 服务器客户端：位于 NAT 后面的设备（家用电脑、NAS 等）操作系统：Linux、macOS、Windows、支持 Docker 的平台2. 安装步骤从官方发布页面下载预编译二进制文件：Linux:wget https://github.com/rathole-org/rathole/releases/download/v0.5.0/rathole-x86_64-unknown-linux-musl.tar.gz tar -xzf rathole-x86_64-unknown-linux-musl.tar.gzDocker:docker pull rapiz1/rathole从源码编译：git clone https://github.com/rathole-org/rathole.git cd rathole cargo build --release3. 验证安装./rathole --version三、核心概念1. 基本术语服务端（Server）：运行在具有公网 IP 的服务器上，监听来自客户端的连接和来自外网的访问请求客户端（Client）：运行在 NAT 后面的设备上，主动连接服务端并注册需要转发的服务Token：服务端和客户端之间用于身份验证的密钥服务（Service）：需要转发的具体应用，如 SSH、Web 服务器等2. 工作原理graph LR A[外网用户] -->|访问公网端口| B[服务端] B <-->|加密通道| C[客户端] C -->|转发请求| D[本地服务]rathole 的工作流程如下：客户端主动连接服务端，并使用 Token 进行身份验证服务端记录客户端注册的服务映射关系外网用户访问服务端的公网端口服务端通过加密通道将流量转发给客户端客户端将流量转发到本地服务四、快速上手1. 基本示例：暴露 NAS 的 SSH 服务场景你有一台位于家庭网络的 NAS，希望从互联网上通过 SSH 访问它。服务端配置创建 server.toml 文件：[server] bind_addr = "0.0.0.0:2333" [server.services.my_nas_ssh] token = "use_a_secret_that_only_you_know" bind_addr = "0.0.0.0:5202"启动服务端：./rathole --server server.toml客户端配置创建 client.toml 文件：[client] remote_addr = "myserver.com:2333" [client.services.my_nas_ssh] token = "use_a_secret_that_only_you_know" local_addr = "127.0.0.1:22"启动客户端：./rathole --client client.toml验证连接ssh -p 5202 myserver.com2. 多服务配置可以在一个配置文件中定义多个服务：客户端配置：[client] remote_addr = "myserver.com:2333" [client.services.ssh] token = "ssh_token" local_addr = "127.0.0.1:22" [client.services.web] token = "web_token" local_addr = "127.0.0.1:8080" [client.services.minecraft] token = "mc_token" local_addr = "127.0.0.1:25565" type = "tcp"服务端配置：[server] bind_addr = "0.0.0.0:2333" [server.services.ssh] token = "ssh_token" bind_addr = "0.0.0.0:5202" [server.services.web] token = "web_token" bind_addr = "0.0.0.0:5203" [server.services.minecraft] token = "mc_token" bind_addr = "0.0.0.0:5204" type = "tcp"3. UDP 服务转发rathole 支持 UDP 协议转发：[client.services.quic] type = "udp" token = "quic_token" local_addr = "127.0.0.1:4433"[server.services.quic] type = "udp" token = "quic_token" bind_addr = "0.0.0.0:4433"五、进阶配置1. 传输层加密rathole 支持三种传输模式：TCP、TLS、Noise。TLS 加密服务端配置：[server.transport] type = "tls" [server.transport.tls] pkcs12 = "identity.pfx" pkcs12_password = "your_password"客户端配置：[client.transport] type = "tls" [client.transport.tls] trusted_root = "ca.pem" hostname = "example.com"Noise Protocol 加密Noise Protocol 是现代的加密协议，无需证书：[client.transport] type = "noise" [client.transport.noise] pattern = "Noise_NK_25519_ChaChaPoly_BLAKE2s" local_private_key = "your_base64_key" remote_public_key = "server_base64_key"2. 代理连接客户端可以通过代理连接服务端：[client.transport.tcp] proxy = "socks5://user:passwd@127.0.0.1:1080"支持 HTTP 和 SOCKS5 代理。3. 日志控制通过环境变量控制日志级别：RUST_LOG=error ./rathole config.toml可用级别：error、warn、info、debug、trace默认级别为 info。4. 性能调优从 v0.4.7 开始，rathole 默认启用 TCP_NODELAY，这对延迟敏感的应用（如 RDP、Minecraft 服务器）有益，但会略微降低带宽。如果带宽更重要，可以禁用：[client.transport.tcp] nodelay = false [server.transport.tcp] nodelay = false也可以针对单个服务配置：[client.services.my_service] nodelay = false5. 心跳与重连客户端心跳配置：[client] heartbeat_timeout = 40 retry_interval = 1服务端心跳配置：[server] heartbeat_interval = 30heartbeat_interval：应用层心跳发送间隔，设为 0 禁用heartbeat_timeout：心跳超时时间，必须大于 server.heartbeat_intervalretry_interval：重连服务器的间隔六、部署实战1. systemd 服务配置创建 /etc/systemd/system/rathole-server.service：[Unit] Description=Rathole Server After=network.target [Service] Type=simple User=root ExecStart=/path/to/rathole --server /path/to/server.toml Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target创建 /etc/systemd/system/rathole-client.service：[Unit] Description=Rathole Client After=network.target [Service] Type=simple User=root ExecStart=/path/to/rathole --client /path/to/client.toml Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target启用并启动：systemctl daemon-reload systemctl enable rathole-server systemctl start rathole-server2. Docker 部署服务端：docker run -d \ --name rathole-server \ -p 2333:2333 \ -p 5202:5202 \ -v /path/to/server.toml:/app/server.toml \ rapiz1/rathole --server /app/server.toml客户端：docker run -d \ --name rathole-client \ --network host \ -v /path/to/client.toml:/app/client.toml \ rapiz1/rathole --client /app/client.toml七、性能对比1. 与 frp 的对比rathole 在性能方面相比 frp 有显著优势：吞吐量：HTTP 吞吐量更高连接数：能处理更多并发连接内存占用：显著低于 frp延迟：与 frp 相当2. 性能基准根据官方基准测试结果：HTTP 吞吐量：比 frp 提升 2-3 倍（本地回环测试）TCP 比特率：显著优于 frp内存占用：仅为 frp 的 30-50%需要注意的是，这些测试是在本地回环环境下进行的，反映的是 CPU 限制场景下的性能。实际使用中，网络往往是瓶颈，此时性能提升可能不那么明显。但 rathole 的主要优势在于低资源消耗。3. 资源占用优化rathole 的二进制文件可以编译至约 500KiB，非常适合：路由器等嵌入式设备资源受限的 VPS需要同时运行多个服务的环境八、常见问题1. 连接失败问题：客户端无法连接到服务端排查：检查服务端防火墙是否开放监听端口确认 Token 配置是否一致验证 remote_addr 地址和端口是否正确查看服务端日志是否有连接记录2. 热重载不生效问题：修改配置后服务未生效解决：目前需要重启服务应用新配置HTTP API 配置功能正在开发中3. 性能不佳问题：转发服务变慢排查：检查客户端和服务端的网络延迟确认没有启用不必要的代理尝试调整 TCP_NODELAY 设置检查本地服务本身是否有性能问题参考资料rathole GitHub 仓库rathole 官方文档
Folio-OCR 三栏文档 OCR 工作台一、概述1. 简介A. 是什么Folio-OCR 是一款基于 GLM-OCR 和 Ollama 的三栏文档 OCR 工作台，专为书籍和文档的日常批量识别设计。它提供了一个现代化的 Web 界面，支持图片和 PDF 文件的批量光学字符识别，并具备智能版面分析、实时编辑和多种格式导出功能。B. 为什么学解决文档数字化过程中的人工识别效率问题利用本地化 OCR 方案保护数据隐私学习 FastAPI 前后端分离架构和版面分析技术了解如何将大型语言模型集成到实际应用中C. 学完能做什么搭建本地化的 OCR 识别服务批量处理 PDF 和图片文档使用版面分析技术提高识别准确率将识别结果导出为 Markdown、TXT 或 Word 文档2. 前置知识A. 必备技能基础的 Linux 命令行操作了解 Docker 基础概念B. 推荐知识Python 基础编程知识Web 开发基础概念OCR 和版面分析基础二、环境准备1. 系统要求操作系统：Linux、macOS、Windows 10/11Docker：20.10+（推荐使用 Docker 部署）Python：3.10+（本地部署）Ollama：已安装（本地部署）硬件：建议 8GB+ 内存，有 NVIDIA 显卡可获得更好性能2. 安装步骤Docker 部署（推荐）# 1. 克隆项目 git clone https://github.com/vorojar/Folio-OCR.git cd Folio-OCR # 2. 启动服务 docker compose up -d # 3. 下载 OCR 模型（约 2GB，只需执行一次） docker compose exec ollama ollama pull glm-ocr本地部署# 安装依赖 pip install -r requirements.txt # 拉取模型 ollama pull glm-ocr # 启动服务 python server.py # Windows 一键启动 start.bat3. 验证安装打开浏览器访问 http://localhost:3000，若能看到界面则表示安装成功。# 检查 Ollama 状态 curl http://localhost:11434/api/tags # 检查服务状态 curl http://localhost:3000/api/status三、核心概念1. 基本术语GLM-OCR：智谱 AI 开发的 OCR 模型，用于图像文字识别Ollama：本地化大模型运行平台，提供 GLM-OCR 的推理服务FastAPI：Python Web 框架，用于构建后端 APIPP-DocLayoutV3：PaddlePaddle 的文档版面分析模型SQLite：轻量级数据库，用于持久化存储文档和 OCR 结果版面分析：自动检测文档中的标题、正文、表格、图片等区域2. 工作原理graph LR User[用户] --> FE[前端界面] FE --> API[FastAPI 后端] API --> DB[(SQLite 数据库)] API --> Layout[版面分析模型] API --> Ollama[Ollama OCR 服务] Layout --> API Ollama --> API API --> FE API --> Storage[文件存储]系统采用三层架构设计：前端层：提供三栏式用户界面，负责文件上传、结果显示和用户交互后端层：FastAPI 提供 RESTful API，处理版面分析、OCR 调用和数据持久化服务层：Ollama 提供 OCR 推理服务，PP-DocLayoutV3 提供版面分析能力四、快速上手1. 基本使用流程graph TD A[启动服务] --> B[上传文档] B --> C[自动拆页处理] C --> D[版面分析] D --> E[OCR 识别] E --> F[编辑校对] F --> G[导出文档]2. 上传文档支持以下文件格式：图片：PNG、JPG、GIF、BMP文档：PDF支持多文件混合上传，系统会自动将所有文件合并为一个文档，并按页码顺序排列。3. OCR 识别系统提供两种 OCR 模式：单页识别：对选中的页面进行 OCR批量识别：点击 OCR All Pages 一键处理全部页面识别过程中会显示实时进度条和 ETA 时间估算，用户可以随时点击 Stop 按钮中断处理。4. 编辑与导出识别结果支持：Edit 模式：纯文本编辑，便于手动修正Preview 模式：实时渲染 HTML 表格和 Markdown 格式段落重排：自动合并因换行断开的段落导出格式：Markdown（.md）纯文本（.txt）Word 文档（.docx）五、核心功能1. OCR 引擎A. 版面分析使用 PP-DocLayoutV3 模型进行智能版面分析，自动识别以下区域：标题（title）正文（text）表格（table）图片（figure）页眉页脚、脚注、页码（自动跳过）B. 智能合并相邻文本区域会自动合并，减少 OCR 调用次数。例如 11 个文本区域可合并为 3 组，实现约 2.5 倍加速。C. LaTeX 处理自动将模型输出的 LaTeX 符号转换为 Unicode 字符：$\textcircled{1}$ → ①$\frac{1}{2}$ → ½其他常见数学符号D. 清理处理自动清理模型输出的 Markdown 围栏标记。2. 数据持久化使用 SQLite 数据库存储以下信息：文档元数据（ID、文件名、创建时间）页面信息（页码、文件名、OCR 结果、版面区域、处理时间）自动保存编辑内容（800ms 防抖）3. 界面交互A. 三栏布局左栏：页面缩略图，支持快速切换页面中栏：图片预览，显示版面分析区域框右栏：OCR 结果，支持编辑和预览B. 双向高亮点击图片中的区域框会高亮对应的文本块，点击文本块会高亮对应的图片区域。C. 全文搜索支持 Ctrl+F 全文搜索，跨页高亮显示匹配内容并统计命中次数。D. 键盘导航使用 ↑↓ 方向键快速切换页面。4. 网络容错所有网络请求都带有超时保护：状态检查：5 秒OCR 调用：180 秒其他请求：30 秒Ollama 断开后 UI 不会冻结，超时后会自动恢复可操作状态并通过 Toast 弹窗通知用户。六、技术架构1. 后端架构graph TB subgraph 后端服务 API[FastAPI Server] DB[(SQLite)] Layout[PP-DocLayoutV3] Uploads[uploads/ 目录] end subgraph 外部服务 Ollama[Ollama GLM-OCR] end API --> DB API --> Layout API --> Uploads API --> Ollama2. 版面分析流程sequenceDiagram participant U as 用户 participant API as FastAPI participant L as Layout 模型 participant O as Ollama U->>API: 上传图片 API->>L: 版面分析 L-->>API: 返回区域列表 API->>API: 合并相邻区域 loop 对每个合并区域 API->>O: OCR 调用 O-->>API: 返回识别文本 end API->>U: 返回完整结果3. 数据库设计erDiagram documents ||--o{ pages : 包含 documents { string doc_id PK string filename string created_at } pages { string doc_id FK integer num string filename text ocr_text text ocr_regions real ocr_time }4. 主要依赖依赖版本用途fastapi>=0.100.0Web 框架uvicorn>=0.23.0ASGI 服务器httpx>=0.25.0异步 HTTP 客户端pymupdf>=1.23.0PDF 处理Pillow>=10.0.0图像处理transformers>=4.40.0版面分析模型torch>=2.0.0深度学习框架python-docx>=1.1.0Word 文档生成七、部署架构1. Docker Compose 配置graph LR Host[宿主机] --> LB[Nginx/Proxy] LB --> App[App 容器] LB --> Ollama[Ollama 容器] App --> DB[(SQLite 数据卷)] App --> Files[uploads 数据卷]2. GPU 加速若有 NVIDIA 显卡，可编辑 docker-compose.yml 取消 deploy 段落的注释以启用 GPU 加速。services: ollama: deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu]3. 常用 Docker 命令docker compose down # 停止服务 docker compose up -d # 重新启动（数据不会丢失） docker compose logs -f app # 查看应用日志 docker compose logs -f ollama # 查看 Ollama 日志八、性能参考操作时间说明模型冷启动首次请求~50 秒需加载模型到内存后续单页识别~0.5 秒版面分析 + OCRPDF 渲染取决于页数2x 缩放矩阵渲染整体加速比2.5x相比逐区域 OCR九、常见问题1. 安装问题Ollama 未找到错误信息：Ollama not found解决方法：先安装 Ollama 并确保其在 PATH 中# macOS/Linux curl -fsSL https://ollama.com/install.sh | sh # Windows # 从 https://ollama.com/download 下载安装包模型下载失败解决方法：检查网络连接，手动执行模型拉取ollama pull glm-ocr2. 运行问题OCR 超时可能原因：图片过大或网络问题解决方法：系统已设置 180 秒超时，等待即可检查 Ollama 服务是否正常运行尝试重启服务版面分析失败可能原因：模型未正确加载解决方法：确保已安装 torch 和 transformers检查服务器日志查看具体错误3. 使用问题PDF 拆页不清晰说明：系统使用 2x 缩放矩阵渲染 PDF 以保证 OCR 质量解决方法：如需更高分辨率，可修改 server.py 中的 mat 参数导出的 Word 文档格式问题说明：DOCX 导出基于 python-docx，解析 OCR 结果中的表格和标题解决方法：识别时确保版面分析正确检测到表格区域十、项目结构Folio-OCR/ ├── server.py # FastAPI 后端（单文件） ├── index.html # HTML 页面 ├── script.js # 前端逻辑 ├── style.css # 样式 ├── latex_unicode.json # LaTeX → Unicode 映射表 ├── requirements.txt # Python 依赖 ├── Dockerfile # Docker 镜像构建 ├── docker-compose.yml # Docker Compose 编排 ├── start.bat # Windows 启动脚本 ├── folio_ocr.db # SQLite 数据库（运行时生成） └── uploads/ # 上传文件目录（运行时生成）十一、API 端点方法路径说明GET/前端页面GET/api/status服务状态、Ollama 连通性POST/api/load-model启动 Ollama 并预热模型POST/api/upload上传文件，返回 SSE 页面流GET/api/images/{doc_id}/{filename}获取页面图片POST/api/ocr/{doc_id}/{page_num}单页 OCRPOST/api/ocr/{doc_id}/all批量 OCR 全部页面GET/api/documents列出所有文档GET/api/documents/{doc_id}获取文档详情DELETE/api/documents/{doc_id}删除文档PUT/api/pages/{doc_id}/{page_num}/text保存编辑后的文本POST/api/export/{doc_id}导出 DOCX参考资料Folio-OCR GitHub 仓库GLM-OCR 模型Ollama 官方文档FastAPI 官方文档PP-DocLayoutV3 模型
CLI-Anything：让所有软件成为 AI Agent 原生工具一、概述1. 简介A. 是什么CLI-Anything 是一个 Claude Code 插件，能够将任何软件自动转换为 AI Agent 可控制的命令行工具。通过一条命令，它可以为 GIMP、Blender、LibreOffice 等应用生成功能完整的 CLI 接口，让 AI Agent 获得直接控制专业软件的能力。B. 为什么学解决 AI Agent 使用软件难题：当前 AI Agent 虽然推理能力强，但难以使用真实的专业软件统一接口范式：CLI 是 AI Agent 的理想接口，结构化、可组合、自描述自动化生成：无需手动编写代码，自动分析软件架构并生成 CLI生产级质量：1,508 个测试用例验证，覆盖 11 个主流应用C. 学完能做什么为任何软件自动生成 CLI，让 AI Agent 可以控制理解 7 阶段自动化流水线的工作原理部署和使用生成的 CLI 工具通过 refine 命令迭代改进 CLI 覆盖率2. 前置知识A. 必备技能Python 3.10+ 基础基本的命令行操作经验理解 AI Agent 的基本概念B. 推荐知识Click 框架（Python CLI 工具）pytest 测试框架Claude Code 使用经验二、环境准备1. 系统要求Python 3.10 或更高版本目标软件已安装（如 GIMP、Blender 等）Claude Code 或其他支持的 AI 编码代理2. 安装步骤Claude Code 平台安装：# 添加 CLI-Anything 市场 /plugin marketplace add HKUDS/CLI-Anything # 安装插件 /plugin install cli-anything手动安装（可选）：# 克隆仓库 git clone https://github.com/HKUDS/CLI-Anything.git # 复制插件到 Claude Code 插件目录 cp -r CLI-Anything/cli-anything-plugin ~/.claude/plugins/cli-anything # 重新加载插件 /reload-plugins3. 验证安装安装完成后，在 Claude Code 会话中输入：/cli-anything:cli-anything --help三、核心概念1. 基本术语Agent-Native（Agent 原生）：专为 AI Agent 设计的接口，支持结构化输入输出Harness（工具套件）：为特定软件生成的完整 CLI 包REPL（交互式解释器）：命令行交互模式，支持状态持久化7-Phase Pipeline：从分析到发布的自动化流程2. 工作原理CLI-Anything 通过自动化流程分析软件源码，理解其功能架构，然后生成标准的命令行接口。生成的 CLI 直接调用真实软件的后端，确保功能完整性。graph TB A[软件源码/仓库] --> B[分析阶段] B --> C[设计阶段] C --> D[实现阶段] D --> E[测试规划] E --> F[测试编写] F --> G[文档更新] G --> H[发布安装] subgraph 生成产物 I[Click CLI] J[REPL 界面] K[JSON 输出] L[测试套件] end D --> I D --> J D --> K F --> L3. 架构设计graph LR A[AI Agent] -->|命令| B[CLI-Anything 生成的 CLI] B -->|调用| C[真实软件后端] C -->|渲染/处理| D[输出文件] B -->|JSON 输出| A B -->|人类可读| E[终端输出] subgraph CLI-Anything 核心 F[分析引擎] G[代码生成器] H[测试框架] end F --> G G --> H四、快速上手1. Hello World 示例生成第一个 CLI 工具：# 为本地 GIMP 源码生成完整 CLI（所有 7 个阶段） /cli-anything:cli-anything ./gimp2. 核心功能演示# 从 GitHub 仓库生成 /cli-anything:cli-anything https://github.com/blender/blender3. 代码讲解上述命令会自动执行以下流程：第 1 阶段：分析扫描源代码，映射 GUI 操作到 API第 2 阶段：设计架构命令组、状态模型、输出格式第 3 阶段：实现构建 Click CLI，包含 REPL、JSON 输出、撤销/重做功能第 4 阶段：测试规划创建 TEST.md，包含单元测试和端到端测试计划第 5 阶段：测试编写实现全面的测试套件第 6 阶段：文档更新 TEST.md 包含测试结果第 7 阶段：发布创建 setup.py，安装到 PATH4. 使用生成的 CLI# 进入生成的 harness 目录 cd gimp/agent-harness # 安装到 PATH pip install -e . # 使用帮助 cli-anything-gimp --help # 创建新项目 cli-anything-gimp project new --width 1920 --height 1080 -o poster.json # 添加图层 cli-anything-gimp --json layer add -n "Background" --type solid --color "#1a1a2e" # 进入交互式 REPL cli-anything-gimp五、进阶内容1. 常用功能插件命令列表命令描述/cli-anything <path-or-repo>构建完整 CLI 工具套件/cli-anything:refine <path> [focus]改进现有工具套件，扩展覆盖率/cli-anything:test <path-or-repo>运行测试并更新 TEST.md/cli-anything:validate <path-or-repo>验证是否符合 HARNESS.md 标准refine 命令使用迭代改进 CLI 覆盖率：# 广泛改进 —— 分析所有功能的缺口 /cli-anything:refine ./gimp # 聚焦改进 —— 针对特定功能区域 /cli-anything:refine ./gimp "批量图像处理和滤镜功能"refine 命令会执行以下操作：分析软件完整能力与当前 CLI 覆盖之间的缺口为识别出的缺口实现新命令添加相关测试更新文档可以多次运行以稳步扩展覆盖率，每次运行都是增量且非破坏性的。2. 最佳实践真实软件集成原则CLI 必须调用实际软件进行渲染不使用简化替代品（如用 Pillow 替代 GIMP）生成有效的项目文件，然后调用真实后端测试策略# 运行特定 CLI 的测试 cd <software>/agent-harness python3 -m pytest cli_anything/<software>/tests/ -v # 强制已安装模式（推荐用于验证） CLI_ANYTHING_FORCE_INSTALLED=1 python3 -m pytest cli_anything/<software>/tests/ -v -sJSON 输出模式AI Agent 可以通过 --json 标志获取结构化输出：cli-anything-libreoffice --json document info --project report.json返回格式：{ "name": "Q1 Report", "type": "writer", "pages": 1, "elements": 2, "modified": true }3. 性能优化使用批量操作减少命令调用次数在 REPL 模式下工作，保持会话状态JSON 模式比人类可读输出更快，适合 Agent 解析六、实战案例1. 场景描述为 LibreOffice 生成 CLI，让 AI Agent 能够自动创建文档、添加内容并导出为 PDF。2. 实现步骤步骤 1：生成 CLI/cli-anything:cli-anything https://github.com/LibreOffice/core步骤 2：安装生成的 CLIcd libreoffice/agent-harness pip install -e .步骤 3：使用 CLI 创建文档# 创建新的 Writer 文档 cli-anything-libreoffice document new -o report.json --type writer # 添加标题 cli-anything-libreoffice --project report.json writer add-heading -t "季度报告" --level 1 # 添加表格 cli-anything-libreoffice --project report.json writer add-table --rows 4 --cols 3步骤 4：导出为 PDFcli-anything-libreoffice --project report.json export render output.pdf -p pdf --overwrite3. 完整 REPL 交互$ cli-anything-blender ╔══════════════════════════════════════════╗ ║ cli-anything-blender v1.0.0 ║ ║ Blender CLI for AI Agents ║ ╚══════════════════════════════════════════╝ blender> scene new --name ProductShot ✓ Created scene: ProductShot blender[ProductShot]> object add-mesh --type cube --location 0 0 1 ✓ Added mesh: Cube at (0, 0, 1) blender[ProductShot]*> render execute --output render.png --engine CYCLES ✓ Rendered: render.png (1920×1080, 2.3 MB) via blender --background blender[ProductShot]> exit Goodbye!七、常见问题1. 安装问题问题：插件安装后无法识别解决：确认 Claude Code 版本，使用 /reload-plugins 重新加载2. 生成问题问题：生成过程失败或输出不完整解决：确保源码可访问，检查 Python 依赖是否安装完整3. 运行问题问题：生成的 CLI 命令无法执行解决：确认已运行 pip install -e . 安装到 PATH八、应用场景CLI-Anything 可用于多种软件类型：GitHub 仓库将任何开源项目转换为 Agent 可控工具，如 VSCodium、WordPress、Calibre、Zotero 等AI/ML 平台自动化模型训练、推理管道和超参数调优，如 Stable Diffusion WebUI、ComfyUI、InvokeAI 等数据与分析工具支持程序化数据处理、可视化和统计分析，如 JupyterLab、Apache Superset、Metabase 等开发工具简化代码编辑、构建、测试和部署流程，如 Jenkins、Gitea、Portainer、SonarQube 等创意媒体工具控制内容创建、编辑和渲染工作流，如 Blender、GIMP、OBS Studio、Krita、Kdenlive 等科学计算自动化研究工作流、模拟和复杂计算，如 ImageJ、FreeCAD、QGIS、ParaView 等企业办公将商业应用和生产力工具转换为 Agent 可访问系统，如 NextCloud、GitLab、Grafana、Mattermost 等九、测试结果CLI-Anything 在 11 个不同的应用上进行了全面测试，总计 1,508 个测试用例，100% 通过率。软件领域CLI 命令后端测试数量GIMP图像编辑cli-anything-gimpPillow + GEGL/Script-Fu107Blender3D 建模与渲染cli-anything-blenderbpy (Python scripting)208Inkscape矢量图形cli-anything-inkscape直接 SVG/XML 操作202Audacity音频制作cli-anything-audacityPython wave + sox161LibreOffice办公套件cli-anything-libreofficeODF 生成 + 无头 LO158OBS Studio直播与录制cli-anything-obs-studioJSON 场景 + obs-websocket153Kdenlive视频编辑cli-anything-kdenliveMLT XML + melt 渲染器155Shotcut视频编辑cli-anything-shotcut直接 MLT XML + melt154Zoom视频会议cli-anything-zoomZoom REST API (OAuth2)22Draw.io绘图cli-anything-drawiomxGraph XML + draw.io CLI138AnyGenAI 内容生成cli-anything-anygenAnyGen REST API50总计 1,508测试层级包括：单元测试：隔离测试每个核心函数E2E 测试（原生）：项目文件生成管道E2E 测试（真实后端）：真实软件调用 + 输出验证CLI 子进程测试：通过 subprocess.run 验证已安装命令参考资料CLI-Anything GitHub RepositoryClaude Code Documentation
jina CLI 工具入门指南一、概述1. 简介A. 是什么jina 是一个轻量级的命令行工具，封装了 Jina AI Reader API，可以将任意 URL 转换为 LLM 友好的输入格式。特别适合阅读 X（Twitter）、博客、新闻网站等复杂网页。B. 为什么学解决网页内容难以被 AI 读取的问题提供统一的网络搜索和内容提取能力支持多种输出格式，便于集成到各类 AI Agent 中C. 学完能做什么使用 jina 读取任意网页内容使用 jina 进行 AI 驱动的网络搜索将 jina 集成到 Claude Code、OpenClaw 等 AI 工具中批量处理 URL 列表，自动化内容采集2. 前置知识A. 必备技能基本命令行操作理解 URL 和 HTTP 请求概念B. 推荐知识使用过 AI 助理或 Claude Code了解 Markdown 格式了解 JSON 数据结构二、环境准备1. 系统要求Linux：主流发行版（Ubuntu、CentOS 等）macOS：10.15 及以上版本Windows：10/11（需 WSL 或使用 Git Bash）对于 OpenClaw 或 Claude Code Skill 方式：需安装对应平台2. 安装步骤jina 提供三种独立的安装方式，根据使用场景选择。方式一：OpenClaw Skill（推荐本地 AI 助理）适用场景：本地 AI 助理、自动化工作流、需要文件系统操作安装步骤：# 创建 jina-cli skill 目录并下载 mkdir -p ~/.openclaw/workspace/skills/jina-cli curl -o ~/.openclaw/workspace/skills/jina-cli/SKILL.md \ https://raw.githubusercontent.com/geekjourneyx/jina-cli/main/skills/jina-cli/SKILL.md验证安装：# 启动 OpenClaw openclaw # 在 OpenClaw 中直接使用 jina 命令 # skill 会自动从 ~/.openclaw/workspace/skills/jina-cli/ 加载方式二：Claude Code Skill（推荐用于 AI 辅助开发）适用场景：在 Claude Code 中使用 AI 协助处理网页内容安装步骤：# 1. 确保已安装 Node.js 和 Claude Code node --version # v18.0.0 或更高版本 # 2. 安装 jina skill npx skills add https://github.com/geekjourneyx/jina-cli --skill jina-cli安装后验证：# 在 Claude Code 中可以直接使用 # 无需额外操作，skill 会自动加载方式三：CLI 二进制文件（推荐用于终端使用）适用场景：在终端/脚本中使用，或与其他工具集成一键安装（Linux/macOS）：curl -fsSL https://raw.githubusercontent.com/geekjourneyx/jina-cli/main/scripts/install.sh | bash安装脚本会自动：检测系统架构（Linux/macOS，amd64/arm64）下载对应平台的二进制文件安装到 ~/.local/bin/jina 或 ~/bin/jina提示如何添加到 PATH（如需要）手动安装：# Linux amd64 wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-linux-amd64 -O jina chmod +x jina sudo mv jina /usr/local/bin/ # macOS ARM64 (Apple Silicon) wget https://github.com/geekjourneyx/jina-cli/releases/latest/download/jina-darwin-arm64 -O jina chmod +x jina sudo mv jina /usr/local/bin/从源码构建：git clone https://github.com/geekjourneyx/jina-cli.git cd jina-cli go build -o jina ./cli sudo mv jina /usr/local/bin/3. 验证安装# 检查是否安装成功 jina --version # 预期输出: jina version 1.0.0 (构建时间: ..., 提交: ...) # 测试基本功能 jina read --url "https://example.com"4. 安装方式对比特性OpenClaw SkillClaude Code SkillCLI 二进制安装位置~/.openclaw/workspace/skills/jina-cli/~/.claude/skills/~/.local/bin/jina使用环境OpenClaw 本地 AI 助理Claude Code任何终端/脚本AI 集成AI 自动理解功能AI 自动理解功能需要手动调用文件权限可访问本地文件系统受限完整权限脚本执行可执行脚本受限完整权限更新方式重新下载/npx skills updatenpx skills update重新运行安装脚本适用场景本地 AI 助理、自动化AI 辅助开发脚本集成、日常使用推荐选择：OpenClaw：最强能力，本地运行，可操作文件系统Claude Code：开发体验好，AI 辅助编码CLI 二进制：最轻量，适合脚本集成注意：三种方式完全独立，可以同时安装，互不干扰。三、核心概念1. 基本术语Jina AI Reader API：将网页转换为 LLM 友好格式的 API 服务read 命令：读取 URL 内容并转换为指定格式search 命令：执行网络搜索并处理结果config 命令：管理配置文件和参数2. 工作原理graph LR subgraph 输入 A[URL] B[搜索关键词] end A -->|read 命令| C[Jina API] B -->|search 命令| C C -->|解析/搜索| D[LLM 友好格式] D --> E[输出] E -->|Markdown/Text/HTML| F[终端] E -->|JSON| G[AI Agent]3. 架构图graph TD User[用户] -->|输入命令| CLI[jina CLI] CLI -->|发送请求| Config[配置管理] Config -->|读取/更新| ConfigFile[配置文件] CLI -->|HTTP 请求| API[Jina API] API -->|解析网页| Content[网页内容] API -->|AI 搜索| Results[搜索结果] Content -->|格式化| Output[输出] Results -->|格式化| Output Output --> CLI CLI --> User四、快速开始1. 读取网页内容# 读取单个 URL jina read --url "https://example.com" # 读取 X (Twitter) 帖子，启用图片描述 jina read -u "https://x.com/user/status/123456789" --with-alt # 输出 Markdown 格式 jina read -u "https://example.com" --output markdown # 保存到文件 jina read -u "https://example.com" --output-file result.md2. 批量处理# 从文件读取 URL 列表 cat > urls.txt << EOF https://example.com/page1 https://example.com/page2 https://x.com/user/status/123 EOF jina read --file urls.txt3. 网络搜索# 搜索关键词 jina search --query "golang latest news" # 限定搜索站点 jina search -q "AI developments" --site techcrunch.com --site theverge.com # 限制结果数量 jina search -q "climate change" --limit 10五、进阶内容1. 配置管理配置文件位于 ~/.jina-reader/config.yaml：# 查看所有配置 jina config list # 设置配置项 jina config set timeout 60 jina config set with-generated-alt true # 获取单个配置 jina config get timeout # 查看配置文件路径 jina config path配置项说明配置项环境变量默认值说明api_base_urlJINA_API_BASE_URLhttps://r.jina.ai/Read API 地址search_api_urlJINA_SEARCH_API_URLhttps://s.jina.ai/Search API 地址default_response_formatJINA_RESPONSE_FORMATmarkdown响应格式default_output_formatJINA_OUTPUT_FORMATjson输出格式timeoutJINA_TIMEOUT30请求超时（秒）with_generated_altJINA_WITH_GENERATED_ALTfalse启用图片描述proxy_urlJINA_PROXY_URL""代理服务器api_keyJINA_API_KEY""API 密钥（用于更高速率限制）优先级：命令行参数 > 环境变量 > 配置文件 > 默认值2. API Key 使用添加 API Key 可以获得更高的速率限制：# 方式 1：配置文件设置 jina config set api_key jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 方式 2：环境变量 export JINA_API_KEY=jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 方式 3：命令行参数 jina read -u "https://example.com" -k jina_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx获取 API Key：访问 Jina AI Reader 注册并获取。3. 输出格式JSON 格式（默认）{ "success": true, "data": { "url": "https://example.com", "title": "Example Domain", "content": "# Example Domain\n\nThis domain is..." } }Markdown 格式jina read -u "https://example.com" --output markdown输出：# Example Domain **Source**: https://example.com --- # Example Domain This domain is for use in illustrative examples...六、高级用法1. 禁用缓存jina read -u "https://example.com" --no-cache2. 使用代理jina read -u "https://example.com" --proxy "http://proxy.com:8080"3. CSS 选择器提取# 只提取指定元素 jina read -u "https://example.com" --target-selector "article.main" # 等待元素加载 jina read -u "https://example.com" --wait-for-selector "#content"4. 处理 SPA 应用# 对于带 hash 路由的 SPA，使用 POST 方法 jina read -u "https://example.com/#/route" --post5. 设置 Cookiejina read -u "https://example.com" --cookie "session=abc123"6. 与 AI Agent 集成# 在 Claude Code 或其他 AI 工具中使用 jina read -u "https://x.com/elonmusk/status/123456" --output json # 搜索最新信息 jina search -q "golang 1.24 release notes" --output json七、命令参考1. 主命令jina - CLI tool for Jina AI Reader and Search APIs Usage: jina [command] Available Commands: read Extract and convert content from URLs search Search the web with AI-powered results config Manage configuration completion Generate shell completion help Help about any command Flags: -a, --api-base string API base URL (overrides config) -k, --api-key string API key (overrides config) -o, --output string Output format: json, markdown (default "json") -v, --verbose Verbose output -h, --help help for jina --version version for jina2. read 命令# 读取网页内容 jina read [flags] Flags: -u, --url string URL to read (required) -f, --file string File containing URLs to read --with-alt Include generated image descriptions --no-cache Disable caching --proxy string Proxy server URL --cookie string Cookie string --target-selector string CSS selector to extract --wait-for-selector string Wait for selector before extraction --post Use POST method --output-file string Save output to file -o, --output string Output format: json, markdown (default "json")3. search 命令# 搜索网络 jina search [flags] Flags: -q, --query string Query to search (required) --site strings Limit search to specific sites --limit int Limit number of results (default 5) --with-alt Include generated image descriptions --no-cache Disable caching --proxy string Proxy server URL -o, --output string Output format: json, markdown (default "json")4. config 命令# 管理配置 jina config [command] Available Commands: list List all configuration get Get a configuration value set Set a configuration value path Show config file path八、常见问题1. 安装问题Q：一键安装脚本执行后提示 command not foundA：安装目录可能不在 PATH 中。手动添加：# 添加到 .bashrc 或 .zshrc export PATH="$PATH:$HOME/.local/bin" export PATH="$PATH:$HOME/bin"Q：macOS 提示无法打开，因为来自身份不明的开发者A：允许应用运行：xattr -d com.apple.quarantine /path/to/jina2. 配置问题Q：API Key 不生效A：检查优先级，命令行参数 > 环境变量 > 配置文件。确认没有在命令行或环境变量中覆盖配置。Q：代理设置不生效A：确认代理地址格式正确，建议使用完整的 URL 格式，如 http://proxy.example.com:8080。3. 运行问题Q：读取某些网页失败A：可能原因包括：网站有反爬虫机制URL 不存在或已被删除超时设置过短可尝试使用 --no-cache 禁用缓存，或增加 timeout 配置。Q：搜索结果不准确A：尝试：使用更精确的搜索关键词使用 --site 参数限定搜索范围增加 --limit 获取更多结果九、开发1. 运行测试# 运行测试 go test ./... # 运行测试并计算覆盖率 go test -cover ./...2. 构建# 本地构建 go build -o jina ./cli # 交叉编译 GOOS=linux GOARCH=amd64 go build -o jina-linux-amd64 ./cli GOOS=darwin GOARCH=arm64 go build -o jina-darwin-arm64 ./cli GOOS=windows GOARCH=amd64 go build -o jina-windows-amd64.exe ./cli3. 项目结构jina-cli/ ├── cli/ │ ├── main.go # 入口 │ ├── read.go # read 命令 │ ├── search.go # search 命令 │ ├── config.go # config 命令 │ └── pkg/ │ ├── api/ # HTTP 客户端 │ ├── config/ # 配置管理 │ └── output/ # 输出格式化 └── scripts/ └── install.sh # 安装脚本参考资料jina-cli GitHub 仓库Jina AI Reader API 文档
Netcatty 现代化 SSH 客户端与终端管理器一、概述1. 项目介绍Netcatty 是一款现代化的 SSH 客户端、SFTP 浏览器和终端管理器，专为需要高效管理多台远程服务器的开发者、系统管理员和 DevOps 工程师设计。A. 项目定位Netcatty 是 PuTTY、Termius、SecureCRT 和 macOS Terminal.app 的替代方案，提供更现代、更高效的 SSH 连接体验。B. 核心特性基于 Electron、React 和 xterm.js 构建的跨平台应用支持 macOS、Windows 和 Linux 三大主流操作系统提供分屏终端、会话管理、SFTP 文件传输等一站式解决方案支持自定义主题和终端关键词高亮2. 技术背景传统 SSH 客户端界面陈旧、功能单一，难以满足现代开发团队的多服务器管理需求。Netcatty 通过现代化的技术栈和用户界面，重新定义了 SSH 工作流。二、核心功能1. Vault 主机管理Vault 是 Netcatty 的主机管理中心，提供多种视图模式：网格视图：快速概览所有主机列表视图：密集扫描主机列表树状视图：按层级结构组织主机支持快速搜索定位，拖拽友好操作流程。2. 终端工作空间Netcatty 提供强大的终端管理能力：分屏功能：支持水平和垂直分屏，实现多任务并行会话管理：多个连接并排运行，减少上下文切换会话恢复：实现 always-on 工作流3. SFTP 文件管理内置强大的 SFTP 客户端：双面板文件浏览器拖拽上传下载内置编辑器支持原地快速修改流畅的文件操作体验4. 个性化配置自定义主题：调整应用外观关键词高亮：自定义终端输出高亮规则，让错误、警告和关键事件一目了然三、系统架构Netcatty 采用典型的 Electron 架构设计：graph TB subgraph "Netcatty 架构" UI[React + TypeScript 前端] Electron[Electron 主进程] Terminal[xterm.js 终端] SFTP[SFTP 浏览器] Vault[Vault 主机管理] end UI --> Electron Electron --> Terminal Electron --> SFTP Electron --> Vault Terminal --> PTY[node-pty] SFTP --> SSH2[ssh2 客户端] Vault --> SSH2 subgraph "远程服务器" Server[Linux/Unix 服务器] end SSH2 --> Server PTY --> Server1. 技术栈类别技术框架Electron 40前端React 19, TypeScript构建工具Vite 7终端xterm.js 5样式Tailwind CSS 4SSH/SFTPssh2, ssh2-sftp-clientPTYnode-pty图标Lucide React2. 项目结构App.tsx # 主 React 应用 components/ # React 组件 ├── Terminal.tsx # 终端组件 ├── SftpView.tsx # SFTP 浏览器 ├── VaultView.tsx # 主机管理 ├── KeyManager.tsx # SSH 密钥管理 └── ... application/ # 状态管理和国际化 domain/ # 领域模型和逻辑 infrastructure/ # 服务和适配器 electron/ # Electron 主进程 ├── main.cjs # 主入口 └── bridges/ # IPC 桥接 public/ # 静态资源和图标四、支持的发行版Netcatty 自动检测并显示连接主机的操作系统图标：UbuntuDebianCentOSFedoraArch LinuxAlpineAmazon LinuxRed HatRocky LinuxopenSUSEOracle LinuxKali Linux五、快速开始1. 下载安装从 GitHub Releases 下载对应平台的最新版本：操作系统支持架构macOSUniversal (x64 / arm64)Windowsx64 / arm64Linuxx64 / arm64macOS 用户注意：由于应用未进行代码签名，下载后需要运行以下命令移除隔离属性：xattr -cr /Applications/Netcatty.app或者右键应用 → 打开 → 在对话框中点击打开。2. 开发环境前置要求Node.js 18+ 和 npmmacOS、Windows 10+ 或 Linux开发步骤# 克隆仓库 git clone https://github.com/binaricat/Netcatty.git cd Netcatty # 安装依赖 npm install # 启动开发模式 (Vite + Electron) npm run dev3. 构建打包# 生产环境构建 npm run build # 打包当前平台 npm run pack # 打包特定平台 npm run pack:mac # macOS (DMG + ZIP) npm run pack:win # Windows (NSIS 安装包) npm run pack:linux # Linux (AppImage + DEB + RPM)六、连接类型Netcatty 支持多种连接方式：SSH：标准的 SSH 安全连接本地终端：本地 shell 会话Telnet：传统 Telnet 协议Mosh：移动友好的 SSH 替代方案串口：串口连接（当可用时）七、对比分析1. 与传统工具对比工具NetcattyPuTTYTermius现代界面是否是分屏终端是否是SFTP 集成是否是跨平台是Windows 为主是开源是否否自定义主题是有限是2. 核心优势工作空间优先分屏 + 标签 + 会话恢复，实现始终在线的工作流。Vault 组织网格/列表/树状视图，快速搜索和拖拽友好流程。专业 SFTP内置编辑器 + 拖拽 + 流畅的文件操作。八、开源协议项目采用 GPL-3.0 开源协议。参考资料Netcatty GitHub 仓库Netcatty 官网
MicroClaw 多平台 AI 助手开源项目发布一、新闻概述1. 标题MicroClaw：基于 Rust 的多平台智能 AI 助手开源2. 发布时间2026 年 2 月 16 日3. 来源GitHub 开源项目二、核心内容1. 事件摘要A. 主要内容MicroClaw 是一个基于 Rust 开发的智能 AI 助手项目，支持多平台接入，包括 Telegram、Discord、Slack、飞书和 Web 界面。项目灵感来源于 nanoclaw，并融合了其部分设计理念。B. 核心亮点多平台统一架构，支持五大主流聊天平台完整的工具调用系统，支持命令执行、文件操作、代码搜索持久化记忆机制，跨会话保持上下文计划与执行模式，支持复杂任务分解内置任务调度系统，支持定时和一次性任务MCP 协议支持，可扩展工具生态2. 关键信息A. 项目技术栈编程语言：Rust许可证：MIT 开源协议架构模式：通道无关核心 + 平台适配器B. 支持平台TelegramDiscordSlack飞书/LarkWeb UIC. LLM 提供商Anthropic（Claude）OpenAIOpenAI 兼容接口（OpenRouter、DeepSeek、Azure 等）Google、阿里云、DeepSeek、Moonshot、Mistral 等 20+ 提供商3. 背景介绍A. 项目灵感MicroClaw 受 nanoclaw 项目启发，采用了其部分设计思想，但使用 Rust 重新实现，提供了更好的性能和内存安全性。B. 技术演进项目采用通道无关的核心架构，通过平台适配器支持多个聊天平台，便于后续扩展更多平台。三、详细报道1. 主要内容A. 核心功能工具系统：bash 命令执行（可配置超时）文件读写（read_file、write_file、edit_file）代码搜索（glob 模式匹配、grep 正则搜索）网络操作（DuckDuckGo 搜索、网页获取）消息发送（支持中间消息和附件）任务调度（cron 定时、一次性任务）子代理（sub_agent）委托任务记忆管理（read_memory、write_memory）会话管理：会话恢复：完整对话状态持久化上下文压缩：自动摘要旧消息保持上下文限制消息分割：自动分割长响应以适应平台限制技能系统：支持 Anthropic Agent Skills 标准技能自动发现和按需激活内置技能：pdf、docx、xlsx、pptx、skill-creator、apple-notes、apple-reminders、apple-calendar、weather、find-skillsB. 技术架构graph TB Client[用户] --> Platform[平台适配器] Platform --> Core[MicroClaw 核心] Core --> LLM[LLM 提供商] Core --> Tools[工具系统] Tools --> Bash[命令执行] Tools --> Files[文件操作] Tools --> Web[网络操作] Tools --> Memory[记忆系统] Core --> Scheduler[任务调度] Core --> Skills[技能系统]C. 记忆架构graph LR A[用户消息] --> B[会话处理] B --> C[工作记忆] B --> D[持久化记忆] D --> E[AGENTS.md 文件] D --> F[(SQLite 数据库)] F --> G[语义检索] F --> H[关键词检索] C --> I[上下文注入] E --> I G --> I H --> ID. 技术细节开发语言选择：使用 Rust 实现核心功能，提供内存安全保证零成本抽象和高效并发处理跨平台编译支持数据库设计：SQLite WAL 模式支持并发读写消息、会话、任务、记忆结构化存储支持 sqlite-vec 特性进行语义记忆检索API 兼容性：原生 Anthropic API 支持OpenAI 兼容接口统一抽象支持 20+ LLM 提供商2. 安装与部署A. 快速安装一键安装脚本（推荐）：curl -fsSL https://microclaw.ai/install.sh | bashWindows PowerShell：iwr https://microclaw.ai/install.ps1 -UseBasicParsing | iexHomebrew（macOS）：brew tap everettjf/tap brew install microclaw从源码编译：git clone https://github.com/microclaw/microclaw.git cd microclaw cargo build --release cp target/release/microclaw /usr/local/bin/B. 配置流程交互式配置向导：microclaw setup配置选项：选择 LLM 提供商（anthropic、openai、ollama 等）配置平台凭证（Telegram Bot Token、Discord Bot Token 等）设置工作目录和数据目录可选语义记忆配置（需 sqlite-vec 特性）C. 运行模式标准启动：microclaw start持久服务（可选）：microclaw gateway install microclaw gateway start3. 使用场景示例A. 计划与执行复杂任务分解：用户：设置一个新的 Rust 项目，包含 CI、测试和文档 机器人：[创建 todo 计划，逐步执行并更新进度] 1. [x] 创建项目结构 2. [x] 添加 CI 配置 3. [~] 编写单元测试 4. [ ] 添加文档graph TD A[接收复杂任务] --> B[分解为步骤] B --> C[创建 TODO 列表] C --> D[逐步执行] D --> E[更新进度] E --> F{完成?} F -->|否| D F -->|是| G[返回结果]B. 任务调度定时任务：用户：每天早上 9 点检查东京天气并发送摘要 机器人：任务 #1 已调度。下次运行：2025-06-15T09:00:00+00:00一次性任务：用户：下午 5 点提醒我给 Alice 打电话 机器人：任务 #2 已调度graph LR A[自然语言指令] --> B[解析任务类型] B --> C{定时/一次性} C -->|定时| D[cron 表达式] C -->|一次性| E[特定时间] D --> F[调度器轮询] E --> F F --> G[执行代理循环] G --> H[发送结果]C. 技能激活graph LR A[技能元数据] --> B[系统提示] C[用户请求] --> D{需要技能?} D -->|是| E[activate_skill] E --> F[加载完整指令] F --> G[执行任务] D -->|否| H[标准处理]4. 安全与权限A. 多聊天权限模型非 control chats 只能操作自己的 chat_idcontrol chats（control_chat_ids）可以跨聊天操作write_memory 的 scope: "global" 仅限 control chatsB. 平台行为规则Telegram 私聊：响应所有消息Telegram 群组：仅响应 @bot_username 提及Discord 私信：响应所有消息Discord 频道：响应 @提及，可限制频道Slack/飞书：类似规则C. 追赶模式Telegram 群组特殊行为：被提及时，机器人会读取自上次回复以来的所有消息（而不仅仅是最近 N 条），使群组交互更具上下文。四、影响分析1. 技术趋势A. Rust 在 AI 工具生态中的应用MicroClaw 展示了 Rust 在构建 AI 代理工具方面的优势，特别是在性能、内存安全和并发处理方面。B. 多平台统一架构的价值通道无关核心 + 平台适配器的架构模式为跨平台 AI 助手开发提供了可复用的设计参考。C. 工具调用标准化支持 Anthropic Agent Skills 标准和 MCP 协议，有助于构建可互操作的 AI 工具生态。2. 用户影响A. 开发者提供了完整的 Rust 实现参考易于扩展新平台和工具丰富的内置工具和技能B. 最终用户统一的多平台体验持久化记忆提升交互质量计划与执行模式处理复杂任务C. 企业用户可本地部署，数据可控支持多种 LLM 提供商灵活的权限控制3. 项目状态A. 开发状态项目处于活跃开发阶段，功能和 API 可能变化，欢迎社区贡献。B. 许可证采用 MIT 开源许可证，允许自由使用、修改和分发。五、技术亮点总结1. 核心优势Rust 实现的性能和安全保证多平台统一架构降低维护成本完整的工具生态和可扩展性持久化记忆和会话恢复计划与执行的智能任务分解2. 与类似项目对比特性MicroClawnanoclaw其他 AI 助手编程语言RustPython多样平台支持5+ 平台有限单一平台为主工具调用22+ 工具有限多样记忆系统文件 + 数据库主要文件各异技能系统Anthropic 标准自定义多样MCP 支持是否部分3. 适用场景个人 AI 助手部署团队协作机器人开发者工具集成自动化任务执行知识管理和检索六、相关链接1. 官方资源GitHub 仓库：https://github.com/microclaw/microclaw项目官网：https://microclaw.ai安装脚本：https://microclaw.ai/install.sh2. 技术文档README.md：项目概述、设置、使用指南DEVELOP.md：开发者指南TEST.md：测试指南CLAUDE.md：AI 编码助手项目上下文AGENTS.md：代理友好项目参考3. 相关项目nanoclaw：灵感来源项目Anthropic Agent Skills：技能标准规范MCP（Model Context Protocol）：工具协议标准参考资料MicroClaw GitHub Repository
开源UART短信转发器（Golang实现）一、项目概述1. 项目简介UART短信转发器是一个基于嵌入式设备和GSM模块的硬件解决方案，其核心功能是监听并自动转发通过特定手机SIM卡接收到的短信到指定的远程服务器、邮箱或即时通讯应用。简单来说，它就是一个物理短信网关或短信转发机器人。2. 方案特色通过串口直接控制Air780模组，后端使用Golang实现统一的服务层转发方案不需要消耗流量，也不需要外接ESP32可使用淘宝带USB的成品Air780系列板子或自制板子（理论上Air780Exx系列的硬件都支持，实测Air780EHV、Air780EHM）即插即用，部署简单，只需要一台能插USB的小型设备，比如N1盒子、软路由、迷你主机等二、核心工作原理1. 硬件交互主控制器通过UART（通用异步收发传输器）串口与GSM模块进行通信，发送AT指令（如AT+CMGL=ALL读取短信）来控制模块并获取短信内容。2. 网络连接上位机设备通过USB连接Air780模组，获取短信后通过自身网络连接转发。3. 内容转发系统将短信的发送方号码、接收时间、内容等信息打包，通过HTTP/HTTPS请求、SMTP邮件协议或特定API发送到预设的远程端点。4. 自动化整个流程无需人工干预，完全自动化运行。三、系统架构graph TB subgraph GSM模块 A[SIM卡] --> B[Air780模组] B -->|UART串口| C[USB接口] end subgraph 上位机 C --> D[Golang服务] D --> E[短信解析] D --> F[转发引擎] end subgraph 转发目标 F --> G[钉钉] F --> H[企业微信] F --> I[飞书] F --> J[自定义Webhook] F --> K[邮箱] end subgraph 管理功能 D --> L[短信记录] D --> M[发送短信] D --> N[来电通知] D --> O[计划任务] end四、现有功能1. 核心功能短信转发：接收SIM卡短信并实时转发短信记录：保存所有短信记录发送短信：支持通过接口发送短信来电通知：接收来电提醒2. 转发方式钉钉机器人通知企业微信通知飞书通知自定义Webhook邮箱通知3. 高级功能计划任务：支持定时发送短信任务管理：创建和管理定时任务五、主要应用场景1. 验证码接收将不常用的手机卡插入转发器，放在家里。当在外需要注册账号接收验证码时，验证码会立刻被转发到你的Telegram或邮箱，无需回家取卡。2. 服务器状态告警许多服务器监控系统（如Prometheus Alertmanager）支持通过短信告警。将此设备与服务器放在同一机房，即可将关键告警短信实时转发到运维人员的常用通讯工具上，确保不漏警。3. 银行交易通知转发银行卡的每一笔交易通知，实现远程的财务监控。4. 物联网远程通知作为一个简单的GSM通信节点，用于远程设备的状态报告和告警（例如，农田湿度传感器在检测到干旱时发送告警短信，再由设备转发）。六、技术栈与硬件组成1. 硬件组件Air780系列4G Cat.1模组（如Air780EHV、Air780EHM）USB接口（即插即用）SIM卡座天线（GSM模块天线）2. 软件技术后端语言：Golang（Go）通信协议：HTTP/HTTPS、SMTP数据格式：JSON3. 运行环境N1盒子软路由迷你主机任何支持USB的Linux设备七、项目优势1. 低成本与低功耗核心组件Air780模组价格便宜，整套硬件成本极低。同时，它可以设计为低功耗模式，适合长期插电运行。2. 高度可定制性作为开源项目，你可以根据自己的需求修改代码，例如过滤垃圾短信、定义转发规则、添加新的通知方式等。3. 摆脱实体手机无需专门准备一部安卓手机来安装转发APP，硬件更稳定，功耗也更低。4. 部署简单即插即用，只需USB连接即可运行，无需复杂的网络配置。八、传统方案对比1. 传统ESP8266方案需要ESP8266主控制器需要SIM800L/SIM900A等GSM模块需要Wi-Fi网络连接需要额外的电源模块硬件组装复杂2. 本方案优势单个Air780模组即可完成所有功能通过USB直接连接上位机无需额外Wi-Fi模块即插即用软件统一由Golang管理九、总结UART短信转发器项目是一个完美结合硬件hacking和软件集成的经典物联网应用。它解决了特定场景下的一个实际痛点，并且以极低的成本和开源的方式呈现，非常适合嵌入式开发者、极客和运维人员学习、DIY和使用。基于合宙Air780系列4G Cat.1模组的新方案，相比传统的ESP8266+SIM800L组合，在部署简便性和软件统一管理方面有显著优势，是一个非常实用的开源项目。参考资料项目地址：uart_sms_forwarder微信公众号文章：开源UART短信转发器(Golang实现)
OpenClaw 自助代理实战用例集合项目发布一、新闻概述1. 标题Awesome OpenClaw Use Cases：社区驱动的 AI 代理实战用例集合2. 发布时间2026 年 2 月 9 日3. 来源GitHub 开源社区二、核心内容1. 事件摘要A. 主要内容开发者 hesamsheikh 发布了 Awesome OpenClaw Use Cases 项目，这是一个社区驱动的 OpenClaw 自助代理实战用例集合，旨在解决 OpenClaw 适配的核心瓶颈——找到改善生活的实际应用方式，而非技能本身。B. 核心亮点社区驱动的真实用例集合，覆盖 22 个实战场景涵盖社交媒体、生产力、基础设施、研究学习、金融交易等多个领域采用 awesome-list 模式，便于贡献和扩展明确的安全警告，提醒用户审查技能代码2. 关键信息A. 项目数据用例数量：22 个GitHub Stars：1.5kForks：97贡献者：6 名B. 涉及技术OpenClaw（前身为 ClawdBot、MoltBot）多平台集成：Telegram、Slack、n8n、Todoist 等C. 项目定位解决 OpenClaw 采用瓶颈的核心理念：不是技能（skills），而是找到它能改善生活的方式三、详细报道1. 项目背景OpenClaw 是一个 AI 自助代理系统，允许用户通过创建和运行自动化任务来简化日常生活。然而，用户面临的真正挑战不是缺乏技能，而是难以发现如何将其应用于实际生活场景。Awesome OpenClaw Use Cases 项目应运而生，收集社区成员真实使用并验证过的用例，为用户提供可直接借鉴的应用模式。2. 用例分类项目用例按应用场景分为五大类：社交媒体、创意构建、基础设施与运维、生产力、研究与学习、金融与交易。mindmap root((OpenClaw 用例集合)) 社交媒体 Reddit 摘要 YouTube 摘要 X 账号分析 创意构建 迷你应用构建 内容流水线 基础设施 n8n 工作流 自愈服务器 生产力 项目管理 多渠道客服 个人助理 收件箱整理 个人 CRM 健康追踪 研究学习 知识库 RAG 财报追踪 金融交易 PolymarketA. 社交媒体用例每日 Reddit 摘要：根据用户偏好生成精选子版块的每日摘要。用户可以订阅感兴趣的社区，OpenClaw 自动汇总重要帖子，节省浏览时间。每日 YouTube 摘要：获取关注频道的最新视频每日摘要，确保不错过任何创作者的内容。适合需要跟踪大量频道的内容创作者或研究人员。X 账号分析：对 X（Twitter）账户进行定性分析，帮助用户了解账号影响力、内容风格和受众特征。B. 创意与构建用例迷你应用构建器：一觉醒来看到全新的微应用构思，已经构建完成并可以试用。适合开发者和创意工作者，通过 AI 助手在睡眠期间进行创意孵化。YouTube 内容流水线：自动化视频创意搜寻、研究和跟踪，适用于 YouTube 频道运营。涵盖选题、调研、排期等完整流程。C. 基础设施与运维用例n8n 工作流编排：通过 Webhook 将 API 调用委托给 n8n 工作流。代理不接触凭证，每个集成都是可视化和可锁定的。这种架构实现了安全性和可维护性的平衡。自愈家庭服务器：运行一个具有 SSH 访问权限、自动化 cron 作业和自愈能力的常驻基础设施代理，覆盖整个家庭网络。适合家庭实验室爱好者。D. 生产力用例（最丰富类别）自治项目管理：使用 STATE.yaml 模式协调多代理项目，子代理并行工作，无需编排器开销。适用于复杂项目的团队协作。多渠道 AI 客服：统一 WhatsApp、Instagram、Email 和 Google 评论到 AI 驱动的收件箱，提供 24/7 自动回复。适合小型企业和创业者。基于电话的个人助理：通过电话访问 AI 代理，为任何手机提供免提语音助手。可以用语音查询日历、Jira 工单和网络搜索结果。收件箱整理：摘要新闻通讯并通过电子邮件发送摘要。帮助用户减少信息过载。个人 CRM：从电子邮件和日历中自动发现和跟踪联系人，支持自然语言查询。建立个人关系网络的智能管理。健康与症状追踪器：跟踪食物摄入和症状以识别诱因，提供定时检查提醒。帮助管理饮食相关健康问题。多渠道个人助理：从单一 AI 助手跨 Telegram、Slack、电子邮件和日历路由任务。项目状态管理：事件驱动的项目跟踪，自动捕获上下文，替代静态看板。适合敏捷开发团队。动态仪表板：实时仪表板，并行获取来自 API、数据库和社交媒体的数据。Todoist 任务管理器：通过将推理和进度日志同步到 Todoist 来最大化代理透明度。家庭日历与家庭助理：将所有家庭日历聚合到晨间简报中，监控消息中的约会，管理家庭库存。多代理专业团队：通过单个 Telegram 聊天运行多个专业代理（策略、开发、营销、业务）作为协调团队。E. 研究与学习用例AI 财报追踪器：跟踪科技或 AI 财报，提供自动化预览、警报和详细摘要。适合投资者和行业分析师。个人知识库 RAG：通过将 URL、推文和文章放入聊天来构建可搜索的知识库。实现个人知识管理的智能化检索。F. 金融与交易用例Polymarket 自动驾驶：在预测市场进行自动化模拟交易，提供回测、策略分析和每日绩效报告。适合对预测市场感兴趣的投资者。3. 技术架构特点graph TB subgraph "用户交互层" U[用户] -->|Telegram/Slack/Email| C[消息渠道] end subgraph "OpenClaw 核心" C --> O[OpenClaw 代理] O --> S[技能系统] end subgraph "集成层" S -->|Webhook| N[n8n 工作流] S -->|API| T[第三方服务] S -->|SSH| H[家庭服务器] end subgraph "数据层" N --> D[(数据库)] T --> D H --> D endOpenClaw 采用模块化技能架构，每个用例都是一个独立的技能模块。用户可以根据需要启用或禁用特定技能，系统通过消息渠道与用户交互，并通过集成层访问外部服务。4. 安全注意事项项目在 README 中明确警告：OpenClaw 技能可能存在严重安全漏洞。用户在使用任何技能前应彻底审查，用户对自己的安全负责。这一警告反映了社区驱动的开源项目的现实——代码质量参差不齐，需要用户具备一定的安全审查能力。5. 贡献指南项目欢迎社区贡献，但设定了严格的质量标准：只接受已经使用并验证有效的用例（至少运行一天）。项目重视真正能改善生活的想法，而非让生活变得更糟。特别说明：项目不接受与加密货币相关的用例。四、影响分析1. 行业影响A. AI 代理普及趋势OpenClaw 用例集合反映了 AI 自助代理的普及趋势。从 ChatGPT 等通用对话机器人转向专业化、可定制的个人代理，是 AI 应用的重要发展方向。B. 社区驱动模式采用 awesome-list 模式收集用例，降低了用户采用门槛。这种模式在技术社区已有成功先例，如 awesome-python、awesome-go 等。C. 实战导向理念强调真实场景验证的用例收集理念，为其他 AI 工具的推广提供了参考。工具本身不是目的，解决问题才是核心价值。2. 用户影响A. 降低学习成本用户可以直接参考社区验证过的用例，无需从零开始探索 OpenClaw 的应用方式。B. 激发创新思路22 个用例覆盖多个场景，用户可以基于现有用例进行组合和扩展，创造新的应用模式。C. 安全风险用户需要自行审查技能代码，这对非技术用户构成了一定门槛。3. 技术趋势A. 多平台集成趋势用例中大量涉及 Telegram、Slack、Email、n8n、Todoist 等平台的集成，反映了用户对统一工作流的需求。B. 多代理协作自治项目管理和多代理专业团队用例展示了多个 AI 代理协同工作的可能性，这是 AI 系统的重要发展方向。C. 语音交互基于电话的个人助理用例显示了语音交互在 AI 应用中的潜力，特别是在移动场景和免提操作场景中。五、各方反应1. 社区反馈项目在短时间内获得了 1.5k Stars 和 97 Forks，表明社区对实战用例集合的需求强烈。2. 贡献者目前有 6 名贡献者，包括项目创建者 hesamsheikh 和官方 GitHub Actions 机器人。贡献者中还有 Anthropic 的 claude 官方账号，表明该项目得到了主流 AI 公司的关注。六、相关链接1. 官方资源OpenClaw GitHub：https://github.com/openclaw/openclawAwesome OpenClaw Use Cases：https://github.com/hesamsheikh/awesome-openclaw-usecases2. 相关技术n8n 工作流自动化平台Todoist 任务管理工具Awesome List 系列项目参考资料Awesome OpenClaw Use Cases - GitHubOpenClaw Official RepositoryAwesome List Collection
PasteMD 一键粘贴工具项目介绍一、新闻概述1. 标题PasteMD：一键将 Markdown 和 AI 对话完美粘贴到 Word、WPS、Excel 的效率工具2. 发布时间2024 年（持续更新中，最新版本 v0.1.6.8 于 2026 年 1 月 24 日发布）3. 来源GitHub 开源项目二、核心内容1. 事件摘要A. 主要内容PasteMD 是一个常驻系统托盘的效率工具，旨在解决从 ChatGPT、DeepSeek 等 AI 网站复制内容到 Word、WPS 或 Excel 时出现的格式问题，特别是数学公式乱码和表格格式错乱。B. 核心亮点全局热键一键转换 Markdown 到 DOCX智能识别 Markdown 表格并自动粘贴到 Excel支持 HTML 富文本直接转换到 Word/WPS应用扩展功能，可为不同应用配置不同粘贴模式支持自定义 Pandoc Filters 扩展转换功能自动修复 LaTeX 语法和单美元符号公式块2. 关键信息A. 版本号v0.1.6.8（最新版本）B. 重要数据GitHub Stars：约 4000开发语言：Python（95.1%）支持平台：Windows、macOS许可证：MIT LicenseC. 涉及产品目标应用：Microsoft Word、WPS Office、Microsoft Excel依赖工具：Pandoc 文档转换器3. 背景介绍A. 问题起源在日常写作和学术工作中，用户从 AI 对话网站（如 ChatGPT、DeepSeek）复制内容到 Word 时，经常遇到数学公式显示为乱码、表格格式错乱等问题。这是由于 AI 网站通常使用 Markdown 或 HTML 格式输出内容，而 Word 无法直接解析这些格式。B. 相关上下文PasteMD 通过调用 Pandoc 强大的文档转换能力，将剪贴板中的 Markdown 或 HTML 内容转换为 Word 可识别的 DOCX 格式，并自动插入到光标位置。三、详细报道1. 主要内容A. 功能特性全局热键操作：默认使用 Ctrl+Shift+B 一键粘贴，热键可自定义。智能表格识别：自动检测剪贴板内容是否为 Markdown 表格，若是则粘贴到 Excel 而非 Word。HTML 富文本支持：支持直接复制网页中的 AI 回复内容（HTML 格式），自动转换为 Word 格式。应用扩展工作流：可为特定应用（如语雀、Overleaf、QQ 等）配置不同的粘贴模式，支持按窗口标题匹配。转换增强功能：支持按转换类型配置 Pandoc Filters，自动修复部分 LaTeX 语法问题，自动转换单美元符号公式块为标准的双美元符号格式。多语言支持：界面支持简体中文、英语、日语。B. 技术架构PasteMD 基于以下核心技术构建：Python 开发：使用 Python 3.12+ 开发，采用 PyInstaller 打包为独立可执行文件。Pandoc 集成：通过 Pandoc 实现文档格式转换，支持 Markdown、HTML、LaTeX 等多种格式。剪贴板监听：实时监听系统剪贴板变化，自动识别内容类型。COM 自动化：通过 Windows COM 接口与 Office 应用交互，实现自动粘贴。graph LR A[用户复制内容] --> B[剪贴板] B --> C{PasteMD 监听} C -->|热键触发| D[内容类型识别] D -->|Markdown 表格| E[转换模式选择] D -->|普通 Markdown| E D -->|HTML 富文本| E E -->|Pandoc| F[生成 DOCX] F --> G{检测前台应用} G -->|Word/WPS| H[插入光标位置] G -->|Excel| I[粘贴表格数据] G -->|无应用| J[打开/保存/剪贴板]C. AI 网站兼容性PasteMD 对主流 AI 对话网站进行了兼容性测试：完美支持（所有格式）：DeepSeek、豆包、智谱清言/ChatGLM、Gemini、Grok、Claude基本支持（公式显示为代码）：ChatGPT（复制含公式的 Markdown 时）部分限制（网页含公式无法显示）：Kimi、通义千问2. 技术细节A. 配置文件首次运行时，PasteMD 会在用户数据目录生成 config.json 配置文件：Windows：APPDATA%\PasteMD\config.jsonmacOS：~/Library/Application Support/PasteMD/config.jsonB. 核心配置项热键配置：hotkey 字段，支持自定义全局热键，语法如 ++b。Pandoc 路径：pandoc_path 字段，指定 Pandoc 可执行文件位置。Excel 功能：enable_excel 控制是否启用智能表格识别，excel_keep_format 控制是否保留格式。转换增强：enable_latex_replacements 自动修复 LaTeX 语法，fix_single_dollar_block 转换单美元符号公式。应用扩展：extensible_workflows 配置不同应用的粘贴模式。C. 高级功能Pandoc Filters：支持配置自定义 Lua 脚本或可执行文件作为 Filter，扩展 Pandoc 转换能力。典型应用包括使用 mermaid-filter 支持 Mermaid 图表渲染。graph TD A[原始 Markdown] --> B[Pandoc Filter 1] B --> C[Pandoc Filter 2] C --> D[Pandoc Filter N] D --> E[DOCX 输出] B -.示例.-> F[mermaid-filter] F --> G[渲染 Mermaid 图表]3. 数据与事实A. 项目数据开发周期：持续开发中，已发布 12 个版本代码贡献者：6 人Fork 数量：260B. 技术栈后端语言：Python（95.1%）构建脚本：Shell（3.9%）打包工具：PyInstaller、Nuitka依赖库：pynput、keyboard、pyperclip 等四、影响分析1. 行业影响A. 提升写作效率PasteMD 解决了 AI 辅助写作中的格式转换痛点，使得用户可以更高效地将 AI 生成的内容整合到文档中，降低了格式调整的时间成本。B. 推动工具集成该项目展示了 AI 工具与传统办公软件深度集成的可能性，为类似效率工具的开发提供了参考。2. 用户影响A. 目标用户群体学术论文作者：需要频繁将 AI 生成的数学公式和表格插入 Word 的研究人员内容创作者：从 AI 获取素材并进行二次创作的自媒体作者企业办公人员：需要整理 AI 对话内容到文档的职场人士B. 使用门槛便携版需要用户自行安装 Pandoc，一体化安装包则自带 Pandoc，降低了普通用户的使用门槛。C. 迁移成本安装后即可使用，无需额外配置，热键操作符合用户直觉。3. 技术趋势A. AI 与办公软件融合PasteMD 反映了 AI 工具与传统办公软件深度融合的趋势，未来此类中间工具将有更大需求。B. 开源项目活力该项目在 GitHub 上获得近 4000 Stars，表明用户对这类实用工具的强烈需求，开源社区在解决实际生产力问题方面发挥着重要作用。五、各方反应1. 官方回应项目作者通过 GitHub Issues 与用户保持密切互动，持续修复问题并添加新功能。项目积极接受社区贡献，已有 6 名开发者参与代码贡献。2. 业内评价A. HelloGitHub 推荐PasteMD 被HelloGitHub 平台收录和推荐，作为实用工具项目向更广泛的用户群体推广。B. 社区反馈用户在 GitHub 上积极反馈使用体验，提出功能建议和 Bug 报告，形成了良好的社区氛围。3. 用户反馈A. 正面评价一键操作极大提升了写作效率，解决了长期存在的格式问题智能表格识别功能非常实用，自动判断粘贴到 Excel 还是 Word配置灵活，可适应不同使用场景B. 关注点部分 AI 网站（如 ChatGPT）复制含公式的 Markdown 时，公式仍显示为代码需要 Pandoc 依赖，对不熟悉技术工具的用户有一定门槛六、相关链接1. 项目地址GitHub 仓库：https://github.com/RICHQAQ/PasteMD项目官网：https://pastemd.richqaq.cn/2. 下载地址Releases 页面：https://github.com/RICHQAQ/PasteMD/releases3. 相关工具Pandoc 官网：https://pandoc.org/Python 官网：https://www.python.org/参考资料
Offpunk 3.0 "A Community is Born" 版本发布一、新闻概述1. 标题Offpunk 3.0 "A Community is Born" 版本发布2. 发布时间2026 年 2 月 9 日3. 来源Ploum 官方博客二、核心内容1. 事件摘要A. 主要内容开发者 Ploum 发布了 Offpunk 3.0 版本，这是一款命令行方式的 Web、Gemini 和 Gopher 浏览器，支持离线工作。B. 核心亮点首个真正由社区协作驱动的版本发布新增多语言支持，包括西班牙语、加利西亚语和荷兰语集成 unmerdify 库，实现智能网页内容提取新增社交功能：分享和回复支持 cookie 导入实现登录状态浏览2. 关键信息A. 版本号Offpunk 3.0B. 重要数据开发周期：四年（从首个版本到 3.0）新增功能：11 项重要更新支持语言：西班牙语、加利西亚语、荷兰语C. 涉及产品Offpunk 命令行浏览器、openk 工具、xkcdpunk 工具3. 背景介绍A. 前置版本2.8 版本B. 相关上下文Offpunk 是一个离线优先的命令行浏览器，支持 Web、Gemini 和 Gopher 协议。3.0 版本的重要意义在于，这是首个包含作者未逐行审查代码的版本，标志着项目从个人开发转向社区协作。三、详细报道1. 主要内容A. 功能更新0. 多语言支持Offpunk 现已支持多语言，并已翻译为西班牙语、加利西亚语和荷兰语。用户可以参与翻译工作，将 Offpunk 本地化为自己的语言。1. Openk 独立工具"opnk" 工具已重命名为 "openk"，使其功能更加明确。Openk 是一个命令行工具，尝试在终端中打开任何文件，若无法实现则回退到用户首选的软件，最后使用 xdg-open。2. 终端中显示 XKCD 漫画新增 "xkcdpunk" 独立工具，允许直接在终端中显示 XKCD 漫画。3. 智能内容提取集成 Vincent Jousse 编写的 "unmerdify" 库，使用 FiveFilters 社区维护的 "ftr-site-config" 规则集来提取 HTML 文章内容。若找不到 ftr 规则，则回退到原有的 "readability" 模式。4. 社交功能新增 "share" 命令通过电子邮件发送页面 URL，以及 "reply" 命令回复作者（如果找到电子邮件地址）。5. Cookie 支持登录浏览虽然 Offpunk 本身不支持网站登录，但新增 "cookies" 命令允许用户导入 cookie txt 文件用于特定 HTTP 域名。6. 改进的图像显示图像现在在 Gemini 协议中默认显示，且显示尺寸已增加。7. 显示隐藏的 RSS/Atom 链接如果可用，HTML 页面底部现在会显示隐藏的 RSS/Atom feed 链接。8. 显示被阻止的链接指向被阻止域的链接现在默认以红色显示。9. 预设主题支持使用 "theme preset" 设置多个主题。现有主题包括 "offpunk1"（默认）、"cyan"、"yellow" 和 "bw"。10. 更好的重定向和真正的阻止"redirects" 现在在 netcache 级别运行，这意味着不应再向被阻止的 URL 发出请求。B. 技术改进架构变化graph TB User[用户] --> Offpunk[Offpunk 3.0] Offpunk --> Web[Web 协议] Offpunk --> Gemini[Gemini 协议] Offpunk --> Gopher[Gopher 协议] Offpunk --> Unmerdify[Unmerdify 内容提取] Unmerdify --> FTR[ftr-site-config 规则] Unmerdify --> Readability[Readability 回退] Offpunk --> Social[社交功能] Social --> Share[share 分享] Social --> Reply[reply 回复] Offpunk --> Cookie[Cookie 支持] Cookie --> Browser[传统浏览器导出] Offpunk --> Theme[主题系统] Theme --> Preset[预设主题]C. 其他改进"root" 命令现在更加智能，会转到网站的根目录而非域名"ls" 命令已被弃用，由 "links" 命令取代新增 "websearch" 命令，默认使用 wiby.me"set default_cmd" 允许用户配置在空命令行按回车时 Offpunk 执行的操作"view switch" 允许在正常视图和完整视图之间切换"help help" 将允许用户向 offpunk-users 邮件列表发送电子邮件"bugreport" 将向 offpunk-devel 邮件列表发送错误报告多项错误修复2. 技术细节A. 性能指标重定向在 netcache 级别运行，减少不必要的网络请求智能内容提取提高阅读体验B. 兼容性说明使用 opnk 的用户需要将命令更改为 openk新功能需要手动配置 ftr-site-config 路径（计划在 3.1 中自动化）四、影响分析1. 行业影响A. 技术趋势命令行工具生态持续繁荣，离线优先理念得到更多关注社区驱动的开源项目展现出强大生命力B. 竞争格局Offpunk 作为多协议命令行浏览器，填补了特定用户群体的需求空白与图形界面浏览器形成互补，服务于技术导向用户2. 用户影响A. 现有用户升级成本：低，主要为命令名称变更收益：显著改进的内容提取和社交功能B. 潜在用户多语言支持降低了非英语用户的使用门槛离线工作能力适合低带宽或隐私敏感场景C. 迁移建议opnk 用户需要更新脚本和配置考虑报告问题以帮助完善 3.1 版本3. 技术趋势A. 技术方向离线优先和隐私保护工具需求增长Gemini 等去中心化协议持续发展B. 生态影响社区协作模式为小型开源项目提供可持续发展路径多语言支持促进工具的全球化传播五、各方反应1. 官方回应开发者 Ploum 强调这是首个包含社区贡献代码的版本，感谢所有参与者的贡献，并期待社区继续壮大。2. 业内评价A. 专家观点Offpunk 3.0 标志着项目从个人兴趣转向社区驱动集成 unmerdify 显著提升了网页阅读体验B. 社区反馈邮件列表中有老用户回归参与讨论翻译工作展现出国际化社区的活力3. 用户反馈A. 正面评价多语言支持受到欢迎智能内容提取简化了网页阅读B. 关注点部分功能仍需手动配置期待 3.1 版本的进一步改进六、相关链接1. 官方公告Offpunk 3.0 发布公告安装说明2. 相关资源Offpunk 官方网站：gemini://offpunk.net下载地址：https://git.sr.ht/~lioploum/offpunk/refs/v3.0翻译指南：https://offpunk.net/translation.html社区帮助：https://offpunk.net/help.html3. 技术文档Unmerdify 源码：https://codeberg.org/vjousse/unmerdifyFiveFilters 规则：https://github.com/fivefilters/ftr-site-config参考资料Offpunk 3.0 "A Community is Born" Release