AI File Sorter Headless 无界面集成完全指南:CLI 参数、状态 JSON 与并发锁一次讲清
AI 应用大模型本地部署桌面应用【免费下载链接】ai-file-sorterCross-platform desktop application for content-aware file organization and renaming. Supports local and remote LLMs, preview-based workflows, and fully user-controlled changes.项目地址https://gitcode.com/gh_mirrors/ai/ai-file-sorter点击查看免费下载AI File Sorter是一款跨平台、内容感知的智能文件整理工具。本文完整解析它的Headless 无界面集成契约逐条拆解CLI 命令行参数、机器可读的状态 JSON字段以及防止多任务互相踩踏的运行时并发锁帮你在资源管理器扩展或自动化脚本里安全地无人值守调用它。如果你只想把它当 GUI 应用用那 Headless 模式你可能用不上。但一旦要把它接进 Windows 资源管理器右键、CI 流水线、或你自己的批处理脚本这套无界面契约就是稳定接口——你不需要点开任何窗口只需要解析一段 JSON。 什么是 Headless 无界面模式普通用户双击图标看到的是主窗口、分类对话框、审查确认面板。而Headless无界面模式走的是另一条中立于 UI的入口它不加载任何对话框只负责解析命令行参数抢占一把共享的运行时锁执行与 GUI 完全相同的分析工作流把每一步进度以JSON的形式打印到stdout并可选地写入一个状态文件。 对集成者最重要的认知把stdout/ 状态文件里的 JSON 当作契约stderr只当诊断日志。这一条在官方契约文档里被反复强调。Headless 模式和 GUI 模式共用同一套分析引擎所以你在 GUI 里看到的整理前后效果命令行里也能 1:1 复现。 快速开始一条命令跑通下面这条命令会对一个文件夹做分类 重命名把状态写到status.json并强制走审查流程只出计划、不真正移动文件aifilesorter --headless \ --operation categorize-and-rename \ --path /home/user/Downloads \ --status-file /tmp/aifs/status.json \ --job-id demo-001 \ --review-only跑完后你不会看到任何窗口但status.json里会记录每一步状态stdout也会同步打印。想先看它打算怎么动我的文件用--review-only就对了。 CLI 参数速查表完整用法--headless-help也能打印Usage: aifilesorter --headless --operation categorize|rename|categorize-and-rename \ --path file-or-folder [--path file-or-folder ...] \ [--status-file json-file] [--job-id id] \ [--review-file json-file] [--review-only|--auto-apply] \ [--include-subdirectories|--no-include-subdirectories] \ [--settings-overrides-file json-file] aifilesorter --headless-apply --review-file json-file \ [--status-file json-file] [--job-id id]参数作用备注--headless进入无界面分析模式核心开关--headless-apply直接应用一份已保存的审查计划不重新跑分析--headless-help打印用法说明立即退出--operationcategorize/rename/categorize-and-rename见下节--path目标文件或文件夹可重复出现多次--status-file把状态 JSON 额外写到此文件stdout始终会有--job-id任务标识缺省自动生成--review-file审查计划 JSON 路径供--headless-apply使用--review-only只出审查计划不改文件与--auto-apply二选一--auto-apply跳过审查直接应用谨慎使用--include-subdirectories扫描子文件夹默认关闭--no-include-subdirectories显式排除子文件夹--settings-overrides-file注入一次性的设置覆盖JSON不写回用户配置参数值既可以用--key value也可以写成--keyvalue的内联形式两种都能被识别。三种操作模式categorize分类并按设置把文件移动到分类文件夹。rename只应用重命名建议不移动文件。categorize-and-rename把上面两种合并成一份可审查的计划。支持的目标范围当前契约只接受两种形状一个文件夹目标或位于同一个父文件夹里的多个文件。跨文件夹的搜索结果式聚合暂不支持属于后续版本。传错形状会返回退出码4不支持。 审查与应用默认先看后动AI File Sorter 的哲学是用户完全掌控每一次变更。Headless 模式继承了这一点默认不是静默改写而是能出审查计划的工作流--review-only强制只准备审查不动任何文件--auto-apply明确选择直接应用适合你完全信任结果的自动化场景都不传时跟随应用里保存的设置。一旦进入审查流程程序会把计划写成一个审查计划文件JSON并在状态里告诉你它的路径reviewFile。等你或你的脚本/界面确认无误后再用一条命令把这份计划原样应用下去aifilesorter --headless-apply \ --review-file /tmp/aifs/status.review.json \ --status-file /tmp/aifs/status.json--headless-apply不重新分析只回放已批准的计划——这让人在环中human-in-the-loop的审批流变得既安全又可审计。 状态 JSON 完整字段每次状态更新running/completed/failed/ …都会输出一个 JSON 对象。核心字段如下{ schemaVersion: 1, status: running, operation: categorize-and-rename, jobId: headless-1234-1700000000000, message: Headless command accepted and runtime lock acquired., error: , updatedAtUtc: 2026-03-11T17:43:22.123, runtime: { gpuBackend: cuda, llamaDevice: cuda, ggmlDisableCuda: 0 }, paths: [/home/user/Downloads], lock: { owner: headless, pid: 1234, jobId: headless-1234-1700000000000, startedAtUtc: 2026-03-11T17:43:22.123, description: Headless categorize-and-rename } }字段速读字段含义schemaVersion状态结构版本当前恒为1status稳定状态值见下表operation本次操作categorize等jobId任务标识可用于关联日志message/error人类可读的状态 / 错误描述updatedAtUtc本次更新的时间戳ISO 8601runtimeGPU 后端等运行环境信息来自环境变量存在才出现paths你传入的目标路径列表lock当前持有锁的元数据见并发锁一节进入审查 / 应用阶段后的额外字段当流程推进到审查或应用时状态里会追加一份变更明细供你直接渲染进度条或清单{ status: review_required, entryCount: 3, entries: [ { source: /home/user/Downloads/photo1.jpg, destination: /home/user/Downloads/Images/20260311_090909.jpg, fileName: photo1.jpg, destinationName: 20260311_090909.jpg, category: Images, subcategory: , renameOnly: false, moved: false, renamed: false, skipped: false } ], movedCount: 0, renamedCount: 0, skippedCount: 0, review: { entryCount: 3, requiresApproval: true, entries: [ … ] }, apply: { movedCount: 0, renamedCount: 0, skippedCount: 0, undoPlanSaved: false }, reviewRequired: true, reviewFile: /tmp/aifs/status.review.json }注意running阶段的更新里也可能夹带部分审查预览条目让你在任务还没跑完时就能先展示已出的中间结果。 稳定状态值 与 退出码status值什么时候出现running任务接受、正在分析review_required已生成审查计划等待批准completed全部成功完成failed通用失败cancelled被停止标记取消blocked被锁占用 / 缺 LLM 等前置条件挡住进程退出码则用于脚本判断退出码常量含义0Success成功1Failure执行失败 / 被取消2Usage参数错误、用法不对3Busy运行时锁被占用无法执行4Unsupported目标形状不被支持两个高频的blocked场景值得单独记一下① 锁被占用另一个任务正在跑退出码3{ status: blocked, message: Another analysis job is already running., lock: { owner: explorerWorker, jobId: explorer-job } }② 还没有选 LLM需要先去选模型退出码1——状态里会带上机器可读的该做什么提示{ status: blocked, message: AI File Sorter needs an LLM selection before this Explorer job can run. …, actionRequired: select_llm, actionLabel: Select LLM }看到actionRequired: select_llm时你的界面就知道该弹出选择 LLM入口了。 并发锁AnalysisRuntimeLock这是整篇里最容易被低估、也最关键的一节。GUI、资源管理器 Worker、Headless 三种入口共享同一把锁保证同一时刻只有一个分析/变更任务在动 LLM、缓存和文件。锁由两个文件构成都放在配置目录 /runtime下锁文件analysis-runtime.lock由操作系统的QLockFile机制持有真正的互斥主体元数据旁挂文件analysis-runtime.lock.json记录谁在锁着供界面展示与过期锁恢复。元数据长这样{ owner: headless, pid: 1234, jobId: headless-1234-1700000000000, startedAtUtc: 2026-03-11T17:43:22.123, description: Headless categorize }其中owner的取值有gui/explorerWorker/headless三种方便你一眼看出现在被谁占着。过期锁自动恢复如果持有锁的进程已经死了通过pid探活 主机名比对判断下次try_acquire会主动清掉死锁并重试避免一次崩溃就把整个运行时锁死。⚠️ 给集成者的忠告不要假设能安全地对同一运行时并发跑多个分析/变更任务。撞上锁就拿到退出码3status: blocked正确姿势是排队或稍后重试而不是绕过锁。锁的实现见 AnalysisRuntimeLock.cpp头文件里的Lease用 RAII 保证拿到就释放、异常也释放见 AnalysisRuntimeLock.hpp。 如何中途停止任务如果任务在--status-file指定了状态文件那么在状态文件旁创建一个同名的.stop标记文件即可请求停止。程序每 250ms 轮询一次这个标记一旦发现就请求工作流停止最终状态变为cancelled。# 假设状态文件是 /tmp/aifs/status.json touch /tmp/aifs/status.json.stop # 发出停止信号这让长任务可中断在无人值守场景下也成了可能。⚙️ 一次性设置覆盖不改用户配置Headless 调用方经常想这次用点不一样的行为但不想污染用户已保存的设置。--settings-overrides-file就是干这个的传入一个 JSON它只对当前这一次运行生效运行结束即丢弃绝不写回配置。字段都是可选的——不写的保持原样写了的就覆盖本次运行。常用字段示例{ useSubcategories: true, includeSubdirectories: true, allowedCategories: [Images, Documents, Software], categoryLanguage: en }完整可覆盖的字段清单分类/子分类、白名单、图片/文档按内容分析、是否仅重命名、语言等见 HeadlessSettingsOverrides.hpp。这一机制是集成专属行为的推荐方式官方配置文档也特别点名见配置与环境。️ 典型集成场景场景 A资源管理器右键一键整理先--headless --review-only生成计划 → 把entries渲染成确认框 → 用户点头后--headless-apply应用。全程无人值守且每一步都可审计。场景 BCI / 定时批处理加--auto-apply直接应用用退出码0/1/2/3/4决定脚本是重试、告警还是跳过。缺 LLM 时读到actionRequired后发出请配置 LLM的工单即可。场景 C防冲突的并发调度用status.lock.owner和退出码3判断是否有人在跑把多个来源的任务天然串行化不需要自己再造锁。 相关文件与源码索引想深入源码时按下面这些入口读最快契约总览docs/headless-runtime-contract.md命令解析与执行HeadlessAnalysisCommand.cppExitCode定义见 HeadlessAnalysisCommand.hpp状态 JSON 生成HeadlessStatusJson.cpp运行时锁AnalysisRuntimeLock.cpp设置覆盖字段HeadlessSettingsOverrides.hppHeadless 入口分发main.cpp一句话总结Headless 模式 一条 CLI 命令 一份状态 JSON 一把共享锁。把它当稳定接口来用——stdout/状态文件是契约、--review-only保证先看后动、退出码3提示你排队——你就能在资源管理器扩展或自动化脚本里安全、可审计地把 AI File Sorter 的能力接进自己的产品。赞分享AI 应用大模型本地部署桌面应用【免费下载链接】ai-file-sorterCross-platform desktop application for content-aware file organization and renaming. Supports local and remote LLMs, preview-based workflows, and fully user-controlled changes.项目地址https://gitcode.com/gh_mirrors/ai/ai-file-sorter点击查看免费下载相关推荐AI File Sorter 架构全景图面向新手理解 UI、工作流与 Headless 集成的完整分层设计AI File Sorter 架构全景图面向新手理解 UI、工作流与 Headless 集成的完整分层设计 AI File Sorter 是一款跨平台的 AIAI 应用大模型本地部署桌面应用本地模型 vs 远程 APIAI File Sorter 该选哪种方案一文讲清本地模型 vs 远程 APIAI File Sorter 该选哪种方案一文讲清 AI File Sorter 是一款跨平台的 AI 文件整理桌面工具能根据AI 应用大模型本地部署桌面应用10 分钟跑通 DLSS Swapper为指定游戏切换与回退 DLSS 版本10 分钟跑通 DLSS Swapper为指定游戏切换与回退 DLSS 版本 你卡在DLSS 版本动不了的那一刻 你刚装完一款支持 DLSS 的游戏进设桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026拉萨景区古建牌坊检测排名 TOP5 CMA 资质机构提供牌坊裂缝检测、牌坊倾斜检测、老化检测 联系方式推荐

2026拉萨景区古建牌坊检测排名 TOP5 CMA 资质机构提供牌坊裂缝检测、牌坊倾斜检测、老化检测 联系方式推荐

拉萨作为藏式古建与中原文化交融的瑰宝之地,景区石牌坊、乡村古牌楼、文物古建牌坊林立,承载着厚重的历史底蕴。然而,当地古建牌坊检测机构虽鳞次栉比,却鱼龙混杂,大量无资质机构出具的检测报告无法通过住建、文物部门…

2026/10/11 16:37:46 阅读更多 →
2026年江西省职业院校技能大赛 信息技术应用创新赛项竞赛方案(高职组)

2026年江西省职业院校技能大赛 信息技术应用创新赛项竞赛方案(高职组)

2026年江西省职业院校技能大赛 信息技术应用创新赛项竞赛方案(高职组))一、赛项名称二、竞赛目的2026年江西省职业院校技能大赛 信息技术应用创新赛项竞赛方案(高职组) 各高职学校(含职教本科)…

2026/10/11 16:37:46 阅读更多 →
用Imatest量化镜头分辨率:SFR与MTF50测试从入门到避坑

用Imatest量化镜头分辨率:SFR与MTF50测试从入门到避坑

简介:面向相机评测、影像质量分析人员及摄影爱好者的 Imatest 入门指南,内容聚焦如何看懂 Imatest 测试图表,覆盖色彩倾向、噪声水平和解像力三大模块。资源仅含 1 个 doc 文档,压缩包大小 128KB,结构紧凑便于快速查阅…

2026/10/11 16:37:46 阅读更多 →

最新新闻

铁路窗口售票系统需求分析:从业务边界到异常流的完整拆解

铁路窗口售票系统需求分析:从业务边界到异常流的完整拆解

简介:中国铁路窗口售票系统需求分析文档,面向软件开发人员、软件工程专业学生、需求分析学习者以及铁路售票系统设计初学者,可作为课程报告、毕业设计或实际项目需求阶段的参考蓝本。文档围绕系统总体目标、功能要求、体系架构、业务需求、票…

2026/10/11 17:23:15 阅读更多 →
铁路窗口售票系统需求分析:从票额、席位到日终结账的规则拆解

铁路窗口售票系统需求分析:从票额、席位到日终结账的规则拆解

简介:中国铁路窗口售票系统需求分析文档,是一份面向软件工程学生、系统分析师及铁路售票系统开发人员的完整需求说明书,适用于课程设计、毕业设计或实际项目前期的需求梳理。文档依据V3.0.0版本,从系统总体目标和功能要求入手&…

2026/10/11 17:23:15 阅读更多 →
搜云社工库源码实战:从部署PHP检索服务到索引调优与避坑指南

搜云社工库源码实战:从部署PHP检索服务到索引调优与避坑指南

简介:搜云社工库源码是一套基于网站的社会工程信息管理与查询程序,属于社工库概念的一种具体实现,主要面向网络安全学习者、渗透测试入门者以及PHP开发者,帮助理解敏感信息系统的搭建方式与基础安全防护。资源包共含28个文件&…

2026/10/11 17:23:15 阅读更多 →
计算机视觉入门到落地:任务选型、基线方案与工程避坑指南

计算机视觉入门到落地:任务选型、基线方案与工程避坑指南

简介:计算机视觉技术(CV)简要介绍是一份面向入门学习者、算法工程师及科研人员的PDF文档,系统讲解CV的核心概念、完整处理流程与主流任务类型。文档从图像获取、前期处理、特征提取到图像分析与解释逐层展开,梳理了传统…

2026/10/11 17:23:15 阅读更多 →
DGActivityIndicatorView实战:网络请求Loading遮罩与全局加载动画封装

DGActivityIndicatorView实战:网络请求Loading遮罩与全局加载动画封装

【免费下载链接】DGActivityIndicatorView DGActivityIndicatorView is a great way to make loading spinners in your application look nicer. It contains 32 different indicator view styles. 项目地址: https://gitcode.com/gh_mirrors/dg/DGActivityIndicat…

2026/10/11 17:23:15 阅读更多 →
县城外卖平台怎么设置商家抽成比例:从费率拆分到系统后台配置

县城外卖平台怎么设置商家抽成比例:从费率拆分到系统后台配置

县城外卖平台设置商家抽成比例,建议把“抽成”拆成平台技术服务费与履约配送费两部分分别设置:技术服务费按配送方式与品类分档,配送费按距离和时段单独计价,再在系统后台用费率模板、计费基数、保底扣费和账单分项落地&#xff0…

2026/10/11 17:22:15 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →