[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"pack-detail-filesystem-agent-local-ops-zh":3,"seo:pack:filesystem-agent-local-ops:zh":92},{"code":4,"message":5,"data":6},200,"操作成功",{"pack":7},{"slug":8,"icon":9,"tone":10,"status":11,"status_label":12,"title":13,"description":14,"items":15,"install_cmd":91},"filesystem-agent-local-ops","📁","#1F2937","new","本周新建","文件系统 Agent + 本地操作","想让 agent 真正帮你干本地文件活的开发者 — 整理 Downloads、去重、批量改名、按内容搜索、归档。九个资产按安装顺序：先 Filesystem MCP，再 ripgrep + fzf + Yazi 人工那一边，AGENTS.md + Hooks 给护栏，gptme + Jina Reader 跑自主循环。",[16,28,38,45,52,60,68,75,84],{"id":17,"uuid":18,"slug":19,"title":20,"description":21,"author_name":22,"view_count":23,"vote_count":24,"lang_type":25,"type":26,"type_label":27},3064,"f18b31dd-84c6-45c8-8a8f-1db8e92f2bd7","desktop-commander-mcp-local-terminal-files","Desktop Commander MCP — Local Terminal + Files","Desktop Commander MCP gives agents controlled local terminal + filesystem tools (including PDF\u002FDOCX\u002FExcel). Install via npx and verify by listing tools.","MCP Hub",62,0,"en","mcp","MCP",{"id":29,"uuid":30,"slug":31,"title":32,"description":33,"author_name":34,"view_count":35,"vote_count":24,"lang_type":25,"type":36,"type_label":37},1032,"85b6bce8-35bd-11f1-9bc6-00163e2b0d79","ripgrep-rg-recursively-search-directories-regex-85b6bce8","ripgrep (rg) — Recursively Search Directories with Regex","ripgrep recursively searches directories for a regex pattern while respecting your gitignore. Written in Rust, ripgrep is the fastest search tool on the market — used inside VS Code, GitHub, and many other dev tools.","Script Depot",193,"skill","Skill",{"id":39,"uuid":40,"slug":41,"title":42,"description":43,"author_name":44,"view_count":35,"vote_count":24,"lang_type":25,"type":36,"type_label":37},1031,"85b6bab1-35bd-11f1-9bc6-00163e2b0d79","fzf-blazing-fast-command-line-fuzzy-finder-85b6bab1","fzf — Blazing Fast Command-Line Fuzzy Finder","fzf is a general-purpose command-line fuzzy finder written in Go. Blazing fast, portable, and composable with any list-producing command. Interactive picker for files, commands, history, git branches, processes, and more.","AI Open Source",{"id":46,"uuid":47,"slug":48,"title":49,"description":50,"author_name":44,"view_count":51,"vote_count":24,"lang_type":25,"type":36,"type_label":37},1047,"224cd538-35d4-11f1-9bc6-00163e2b0d79","yazi-blazing-fast-terminal-file-manager-rust-224cd538","Yazi — Blazing Fast Terminal File Manager in Rust","Yazi is a blazing fast terminal file manager written in Rust, based on async I\u002FO. Preview images and videos in terminal, fuzzy search, batch operations, plugin system, and seamless integration with tools like fzf, zoxide, and rg.",240,{"id":53,"uuid":54,"slug":55,"title":56,"description":57,"author_name":58,"view_count":59,"vote_count":24,"lang_type":25,"type":36,"type_label":37},3134,"ddb121a1-a9a0-4151-920e-e787fc206927","agents-md-open-format-for-coding-agent-instructions","AGENTS.md — Open Format for Coding Agent Instructions","AGENTS.md defines a predictable instruction file for coding agents: dev env tips, tests, PR rules, and repo context. Drop it at repo root.","Prompt Lab",80,{"id":61,"uuid":62,"slug":63,"title":64,"description":65,"author_name":66,"view_count":67,"vote_count":24,"lang_type":25,"type":36,"type_label":37},731,"587e4918-987f-4705-b4dd-e7abb7c7c9be","claude-code-hooks-automate-your-ai-workflow-587e4918","Claude Code Hooks — Automate Your AI Workflow","Built-in automation system for Claude Code. Run shell commands on events like file edits, tool calls, and notifications. Lint on save, auto-test, and more.","Skill Factory",186,{"id":69,"uuid":70,"slug":71,"title":72,"description":73,"author_name":34,"view_count":74,"vote_count":24,"lang_type":25,"type":36,"type_label":37},226,"a9cbbc61-0159-41a5-82a0-f44c24da8b55","jina-reader-convert-any-url-llm-ready-text-a9cbbc61","Jina Reader — Convert Any URL to LLM-Ready Text","Convert any URL to clean, LLM-friendly markdown with a simple prefix. Just prepend r.jina.ai\u002F to any URL. Handles JS-rendered pages, PDFs, and images. 10K+ stars.",6979,{"id":76,"uuid":77,"slug":78,"title":79,"description":80,"author_name":34,"view_count":81,"vote_count":24,"lang_type":25,"type":82,"type_label":83},3440,"0fe163f8-d731-5ca9-abe0-953e2508982f","gptme-terminal-ai-agent-with-tools-mcp","gptme — Terminal AI Agent with Tools & MCP","Run an autonomous AI agent in your terminal with tool-use, MCP support, and non-interactive modes for CI. Installs via pipx\u002Fuv; Python 3.10+.",49,"script","Script",{"id":85,"uuid":86,"slug":87,"title":88,"description":89,"author_name":44,"view_count":90,"vote_count":24,"lang_type":25,"type":36,"type_label":37},1037,"6ed07802-35cb-11f1-9bc6-00163e2b0d79","tmux-terminal-multiplexer-sessions-windows-panes-6ed07802","tmux — Terminal Multiplexer for Sessions, Windows, Panes","tmux is a terminal multiplexer that lets you switch between several programs in one terminal, detach them, and reattach them to a different terminal. Essential for SSH workflows, long-running processes, and pair programming.",97,"tokrepo install pack\u002Ffilesystem-agent-local-ops",{"pageType":93,"pageKey":8,"locale":94,"title":95,"metaDescription":96,"h1":97,"tldr":98,"bodyMarkdown":99,"faq":100,"schema":116,"internalLinks":121,"citations":134,"wordCount":147,"generatedAt":148},"pack","zh","文件系统 Agent + 本地操作 — 让 agent 真正帮你干本地文件活的 9 个必装","你想要一个能整理 Downloads、给照片去重、批量改发票名、按内容搜索 PDF、归档去年项目的 agent —— 不用你盯着每一条 shell 命令。九个资产按安装顺序：Desktop Commander MCP 当安全的本地文件 API、ripgrep + fzf + Yazi 当人那一边、AGENTS.md + Hooks 当护栏、gptme + Jina Reader 跑自主循环、全装在 tmux 里。","文件系统 Agent + 本地操作 — 搭一个真能帮你清 Downloads 文件夹的 agent","想让 agent 干真正的文件系统活（整理 \u002F 去重 \u002F 批量改名 \u002F 按内容搜索 \u002F 归档）但又不想踩坑的开发者，九个资产按安装顺序：先 Desktop Commander MCP（每个现代 agent 都能接入的安全本地文件 API）、然后人那一边的核查工具（ripgrep 按内容搜、fzf 模糊查、Yazi 视觉化文件管理器）、再写一份 AGENTS.md 让每个 agent 知道你的文件规矩、用 Claude Code Hooks 锁死自动化护栏、加上 gptme 当脚本友好的自主 agent、Jina Reader 处理偶尔要把远程 URL 灌进本地索引的场景。整个工作流跑在 tmux 里，agent 干活你看得见。","## 这个 pack 包含什么\n\n大多数「AI 帮你管文件」的演示看着都很美，直到你意识到 agent 一个错误的 rename 就能糊掉你真在乎的文件夹。**这个 pack 是让 agent 干真正本地文件活的那套安全栈** —— 就是每个开发者都欠了一屁股、永远轮不到处理的清洁工任务：从 2022 年起没整理过的 `~\u002FDownloads`、每张截图都有 4 份近重复、发票名清一色 `Scan_001.pdf` 到 `Scan_417.pdf`、那个 `~\u002Fold-projects\u002F` 你早说要归档了。\n\n目标用户是开发者（不是运维、也不是用 GUI 思维的终端用户）：终端熟、愿意写 30 行 AGENTS.md、至少摸过一个 CLI agent（Claude Code \u002F Codex CLI \u002F Aider \u002F gptme）。他从这个 pack 拿到的是一份**分层设计** —— 给 agent 的安全 API（MCP）、人那一边的核查工具（ripgrep \u002F fzf \u002F Yazi）、护栏（AGENTS.md \u002F Hooks）、加一个兜底的脚本化自主 agent（gptme）。**这里没有一个魔法「AI 整理器」app。这是让文件系统 agent 值得信任、能放手让它跑的基础设施**。\n\n这个 pack **不**包含云同步工具（rclone \u002F Syncthing）—— 那是另一类问题。它也**不**替代 [现代 CLI 工具腰带](\u002Fzh\u002Ftopics\u002Fmodern-cli-toolbelt)（`fd` \u002F `delta` \u002F `bat` \u002F `eza` \u002F `hyperfine`）—— 先装那个；这个 pack 是上面的 agent 增强层。Agent 结对编程看 [Aider 终端结对编程必备](\u002Fzh\u002Ftopics\u002Faider-pair-programming)。终端工作流模式看 [终端原生 AI 工作流](\u002Fzh\u002Ftopics\u002Fterminal-first-workflow-ai)。\n\n## 推荐安装顺序（安全 API → 人工工具 → 护栏 → 自主循环）\n\n1. **Desktop Commander MCP — 本地终端 + 文件** — **从这里开始**。这是任何 MCP-aware agent（Claude Code \u002F Codex CLI \u002F Cursor agent 模式 \u002F Cline \u002F gptme）真正动你文件系统时插进去的**安全 API 面**。它暴露一套精选工具 —— 读文件、写文件、列目录、跑 shell、加上 PDF \u002F DOCX \u002F Excel 文本抽取 —— 全在**一个审计过的接口**后面，而不是每个 agent 重新发明自己的 `bash` 包装。**胜在「在一个地方设权限范围」**：你把它指向 `~\u002FDownloads` 和 `~\u002Fprojects`，agent **物理上读不到** `~\u002F.ssh`，因为不在配置的根目录里。这个 pack 你只装一个，就装这个 —— 它是「agent 带 shell 权限」（吓死人）和「agent 文件权限锁两个目录」（合理的周二）的分水岭。\n2. **ripgrep — 用正则递归搜目录** — **地球上最快的内容搜索原语**。你告诉 agent「找出每一份提到发票号 INV-2024 的 PDF」时，底下干活的就是 ripgrep（或者应该是）。**也单独装** —— 你会直接用它**核查** agent 声称找到了什么。`rg -l 'INV-2024' ~\u002FDownloads\u002F*.pdf` 毫秒级返回路径；问 agent 要同样的列表、对比。**Agent 的列表对不上 ripgrep 的，就是 agent 在编文件名，你立刻停**。\n3. **fzf — 命令行模糊查找** — ripgrep 的交互式对偶。Agent 把范围缩到 40 个候选文件、你要抽查 5 个，`fzf` 把列表 pipe 进去，方向键翻、自带 preview。**也间接给 agent 当承重墙**：很多 shell 辅助工具和 Yazi（#4）底下都用 fzf，装一次解锁整个栈的模糊选择。配 `--preview` 参数，**动手前先看到文件内容**。\n4. **Yazi — 极速终端文件管理器** — **视觉层**。Agent 说「我把 200 个文件从 `~\u002FDownloads\u002Fscreenshots\u002F` 挪到 `~\u002FPictures\u002F2024\u002F`」时，你打开 Yazi 进两个目录，**实时看着移动发生**。异步预览 —— 50MB PDF preview 不卡 UI；SSH 上图片用 sixel\u002Fkitty 也能 preview。**心智模型**：agent 干批量活、Yazi 是你的真相核查窗口。**永远开一个 Yazi 看着，别让 agent 在无人盯防时跑破坏性操作** —— 你要看见东西出现和消失。\n5. **AGENTS.md — 编码 agent 指令的开放格式** — repo 根目录（或者个人文件场景的 `~\u002F.agents.md`）单个 Markdown，告诉每个现代 CLI agent 规矩。文件系统操作的场景下，这文件长得跟代码 repo 不一样：「Downloads 是收件箱，每周整理一次。Pictures\u002FYYYY\u002FMM 是归档结构。**永远别动** ~\u002FDocuments\u002Flegal\u002F。超过 1 年的 PDF 归档到 ~\u002FArchive\u002FPDFs\u002F。重复文件按最大文件胜出解决」。Codex CLI \u002F Aider \u002F Claude Code \u002F Cursor agent 模式 \u002F Gemini CLI **全部都读它**（大多数是自家原生配置的 fallback）。**一份真理来源，胜过 N 份 CLAUDE.md \u002F .cursorrules \u002F .windsurfrules 副本**。放 agent 去动私人文件之前能写的最高杠杆 50 行 Markdown。\n6. **Claude Code Hooks — 自动化你的 AI 工作流** — **事件驱动的护栏**。PreToolUse hook 阻止写到白名单之外的目录、PostToolUse hook 把 agent 碰过的每个文件记到当天的日志（**回滚有痕**）、Notification hook 长任务完成给你弹通知。Hook 配置就是事件触发的 shell —— 没有插件系统要学。**就算你不用 Claude Code 当主 agent**，模式也通：每个现代 CLI agent 都有 hook 对等物（Codex CLI 事件 \u002F Aider commit hook）。**从一个开始**：`PreToolUse: Write → fail-if-path-outside-allowlist.sh \"$file\"`。这一个 hook 阻止了最严重那类事故。\n7. **Jina Reader — 把任意 URL 转成 LLM 友好的 Markdown** — **本地文件和远程内容之间的桥**。想从 URL 下一份 200 页 PDF 让 agent 在本地索引，`r.jina.ai\u002F\u003Curl>` 一次调用给你干净的 LLM-ready Markdown —— 不用搭 `pdftotext` 链、没有格式噪音。输出存本地、agent 指向那个目录、完事。**特别适合「整理我的 Downloads」场景**：一半 PDF 是抓来的手册\u002F论文、原 URL 早 404 了 —— Jina Reader 抓一次转一次，**之后你有永久的本地 Markdown 副本**，agent 用 ripgrep（#2）搜就行。\n8. **gptme — 终端 AI agent，自带 tools 和 MCP** — **可脚本化的自主 agent**。`pipx install gptme`、指向任何模型（Anthropic \u002F OpenAI \u002F 本地 Ollama），你就有一个能跑 shell、改文件、支持 MCP server（包括 #1 的 Desktop Commander MCP）的 agent —— **关键是支持 CI \u002F cron 脚本的非交互模式**。**这里的杀手用例**：一个每周 cron 跑 `gptme --non-interactive \"把 ~\u002FDownloads 里超过 7 天的全部按文件类型归档到 ~\u002FArchive\u002F$(date +%Y-%m)\u002F\"`。Agent 跑、cron 记日志、周日早上你看。Claude Code \u002F Codex CLI 觉得太重时用、需要在没交互终端的脚本里跑自动化时用。\n9. **tmux — 终端复用器** — **把所有东西串起来的 workspace**。布局：pane 1 = agent（Claude Code \u002F gptme）、pane 2 = Yazi 盯着 agent 操作的目录、pane 3 = `watch ls -la ~\u002FDownloads` 或 `inotifywait` tail 看每一次变化、pane 4 = `tail -f` agent 的 hook 日志。SSH 上 detach session、明天回来，agent 跑要么还在跑、要么已经干净停了。**没 tmux 你要在四个终端窗口之间 alt-tab、还会跟丢**。**有 tmux 整个文件系统 agent 操作就是一个有名字的 session，能 attach\u002Fdetach**。\n\n## 它们怎么协同\n\n```\n┌────────────────────────────────────────────────────────────────┐\n│  tmux session: \"file-ops\" (#9)                                  │\n│                                                                 │\n│  ┌────────────────────────┐  ┌─────────────────────────────┐   │\n│  │ pane 1: agent          │  │ pane 2: Yazi (#4)           │   │\n│  │  Claude Code \u002F gptme   │  │   盯着 ~\u002FDownloads          │   │\n│  │  (#8)                  │  │   视觉真相核查              │   │\n│  │                        │  │                             │   │\n│  │  读 AGENTS.md (#5)     │  └─────────────────────────────┘   │\n│  │  通过 Desktop Commander │                                   │\n│  │   MCP (#1) 动文件      │  ┌─────────────────────────────┐   │\n│  │  ripgrep (#2) 跑       │  │ pane 3: 变更 tail           │   │\n│  │   底层内容搜            │  │   watch ls \u002F inotifywait    │   │\n│  │  fzf (#3) 给用户        │  │                             │   │\n│  │   做选择                │  └─────────────────────────────┘   │\n│  │  Jina Reader (#7) 把   │                                   │\n│  │   URL 转本地 Markdown  │  ┌─────────────────────────────┐   │\n│  │                        │  │ pane 4: hook 日志 tail      │   │\n│  │  每次 shell 调用       │  │   tail -f ~\u002F.agent-log.md   │   │\n│  │  → Hooks (#6) → 日志   │  │                             │   │\n│  └────────────────────────┘  └─────────────────────────────┘   │\n└────────────────────────────────────────────────────────────────┘\n```\n\n承重墙：**Desktop Commander MCP + AGENTS.md + Hooks**。没 MCP，agent 拿到原始 shell 权限、你没东西可锁。没 AGENTS.md，agent 不知道你的整理规则、每次 session 重新发明。没 Hooks，**没审计、没急停按钮**。其他全是操作员舒适层。\n\n如果你只有一小时：装 Desktop Commander MCP、把它指向一个项目目录加 `~\u002FDownloads`（**不是整个 home**）、写 30 行 `~\u002F.agents.md`（你的整理规则 + 三条「永远别动」路径）、加一个 `PreToolUse` hook 阻止白名单外的写。**这就够安全放 agent 去碰文件了**。剩下的资产是周末作业。\n\n## 你会遇到的取舍（文件系统 agent vs 云同步 vs 手动）\n\n- **Agent 跑文件 vs 云同步规则引擎（Hazel \u002F Maid）** — Hazel（macOS）和 Maid（跨平台）是规则引擎：「文件名匹配 `Scan_*.pdf` 且超过 30 天，移到 `~\u002FDocuments\u002FScans\u002F`」。**规则稳定的场景它们很好**。Agent 赢在**规则失效的地方**：「按文件名**和**文件内容能推出的类别整理这 400 个混合下载」。**经验法则**：5 行 Hazel 规则能写清的整理用 Hazel；要 50 行加一堆异常的用 agent。**两者能并存** —— Hazel 处理确定性的 80%，agent 处理凌乱的长尾。\n- **MCP filesystem vs 给 agent 裸 shell** — 裸 shell（Bash 工具、`bash` MCP server、`--dangerously-skip-permissions`）配置最快、**啥都能干**。Desktop Commander MCP 是**受限但审计的**替代品：限定根目录、结构化工具调用、好记日志。**对的答案看任务** —— 裸 shell 适合你会紧盯的一次性创造性文件操作；MCP 适合任何重复性或无人盯防的活。**铁律：永远不要给 agent `--dangerously-skip-permissions` 加 home 目录访问**。\n- **ripgrep + fzf vs 基于 LLM 的语义文件搜索** — 像 [个人知识库 RAG](\u002Fzh\u002Ftopics\u002Fpersonal-knowledge-base-rag) 那样把你的文件嵌入向量库、按语义搜索的工具。Ripgrep 按精确正则搜。「找 2024 年 3 月 Acme 公司的发票」—— ripgrep 200ms 搞定、零成本；语义搜索要调一次模型、还可能漏掉打错字的公司名。「找那条我反对用 Postgres 跑时序数据的笔记」—— **语义赢**。**两个都跑**。Ripgrep 是主力；语义搜索是你想不起关键词时的兜底。\n- **Yazi vs ranger vs nnn vs lf** — 四个都是 TUI 文件管理器。**Yazi 最年轻、最快、异步 preview 最好**（50MB PDF preview 不卡）。Ranger 插件生态最大、配置最成熟。nnn 最极简。lf 居中。**为了盯着 agent 干活这个特定场景**，Yazi 的 preview 速度比 ranger 的插件重要 —— 你要快速翻文件、不想等。如果你已经会 ranger、不想重学键位，留 ranger。\n- **gptme vs Claude Code 跑非交互操作** — Claude Code 交互式很好，cron 脚本里别扭。Gptme 两个都能用 —— 同一套 agent 循环，在交互式 REPL 或脚本管道里。**你看着的时候用 Claude Code；你不看着的时候用 gptme**。**两个能共用同一个 Desktop Commander MCP 和 AGENTS.md**，agent 行为跨模式一致。\n\n## 常见踩坑\n\n- **没白名单 = 早晚一个目录被删** — 经典翻车现场是配置 Desktop Commander MCP 时不限定根目录、或者跳过 PreToolUse Hook。Agent 早晚干件让你惊讶的事 —— 在你没预期的地方写文件、或者 `rm` 一个目录（因为它误读了你的 prompt）。**白名单不是可选的**。「agent 有整个 `$HOME` 权限」当成要修的配置 bug，**不是你能长期处于的状态**。\n- **相信 agent 自己报的数字** — Agent 会信誓旦旦说「我整理了 247 个文件」。**用 `find ~\u002FArchive\u002F2024-01 -type f | wc -l` 或 `eza -la | wc -l` 核**。任何长 session「agent 声称 X、现实 X-15（或 X+15）」的次数都不是零。**把核查嵌进循环**：每批操作结束 agent 打个数字、你跑等价 shell 数一遍、对比。\n- **不 dry-run 就让 agent 跑 rename** — 批量改名是**最易后悔**的一类文件系统操作，因为不明显可逆。**永远两步**：先让 agent 打出准备改的 `mv old new` 列表（不执行）、肉眼看一遍、再执行。很多工具（`f2` \u002F `rename` \u002F `mmv`）有 `--dry-run` flag —— **在 AGENTS.md 里规定默认用 dry-run、真跑前必须显式确认**。\n- **按文件名 vs 按内容哈希去重** — 去重规则是「同文件名 = 同文件」的话，你会把 `~\u002FDownloads\u002Freport.pdf` 和 `~\u002FDownloads\u002Fjanuary\u002Freport.pdf` 合掉、**它们实际是不同文档**。**对的规则是内容哈希**（sha256 或 BLAKE3）。fclones \u002F czkawka \u002F rmlint 都原生支持；如果你 prompt agent 去重，**prompt 必须说「按文件内容哈希、不是按文件名」**。AGENTS.md 一句话省一堆痛。\n- **不核查就归档** — 「把超过 1 年的全部移到 `~\u002FArchive\u002F`」听着安全，直到你发现归档目标卷是个**网络盘当前没挂载**、或者路径不存在、agent 直接在 `~\u002FArchive` 建了个普通目录。**归档操作必须**：(a) 核查目标存在且可写、(b) **先 copy 再 delete**（重要文件**永远不跨卷 `mv`**）、(c) 在归档里留一个 `_INDEX.txt` 记原路径。**写进 AGENTS.md**。\n- **「agent 准备做 X」和「agent 做了 X」之间没 diff** — 没 hook 日志 tail（tmux 图的 pane 4），你**没记录**实际发生了啥。半年后你找不到文件时，你想要一个 `~\u002F.agent-log.md` 能 grep 文件名查它啥时候、为啥被移走。**Hook 的成本是一行；不要 hook 的成本是每个丢失文件 30 分钟的 git 考古**。装 Desktop Commander MCP 的同一天就配上。",[101,104,107,110,113],{"q":102,"a":103},"为啥不直接用 Hazel（macOS）或 Maid（Linux\u002FWindows）？为啥要把 LLM 拽进文件管理？","5 行条件能写清的规则用 Hazel \u002F Maid —— 它们更快、确定性、每次跑零成本。**Agent 赢在凌乱的长尾**：400 个混合下载、文件名没规律；需要看**内容**才能分类的 PDF（发票 vs 手册 vs Slack 截图）；你不想编成永久规则的一次性整理。**模式是分层的**：Hazel 处理确定性的 80%，agent 处理那 20% 否则要写 50 行脆弱正则的部分。**两个不替代彼此**。",{"q":105,"a":106},"真的安全把 ~\u002FDownloads 和 ~\u002FDocuments 的写权限给 agent 吗？","**只有装了这个 pack 的分层护栏才安全**。裸 shell 权限（`--dangerously-skip-permissions` 或等价物）给 ~\u002F 不安全 —— 误读一次 prompt 没有破坏上限。Desktop Commander MCP 限定根目录 + AGENTS.md 整理规则 + PreToolUse Hook 阻止白名单外写入 + 归档先 copy 后 delete 的策略**就跟项目里跑 `make` 一样安全**：操作受限、副作用可预测。**任何一层缺了，安全预算就崩**。**特别**：永远别让 agent 碰 `~\u002F.ssh` \u002F `~\u002F.config\u002Fgh` \u002F `~\u002F.aws` \u002F 任何带凭证的目录。**进 AGENTS.md 的 NEVER 列表 + Hook block**。",{"q":108,"a":109},"能用这套栈给 500GB 照片库去重吗？","**能，但 agent 不该自己做哈希 —— 它该编排对的工具**。快速路径：`fclones group ~\u002FPictures --hash-fn blake3 > duplicates.json`，然后让 agent 读 duplicates.json、提出解决策略（**最早胜 \u002F 最大胜 \u002F 按文件夹优先级**）。**Agent 做策略判断，fclones 干 IO**。**别让 LLM 哈希 500GB** —— 数量级错配、慢、贵。**心智模型**：agent 擅长**决定做什么**，传统 CLI 工具擅长**做**。**组合用，别互相替代**。",{"q":111,"a":112},"这个 pack 跟 TokRepo 的 [个人知识库 RAG](\u002Fzh\u002Ftopics\u002Fpersonal-knowledge-base-rag) pack 啥区别？","**两个不同问题**。KB-RAG pack 是**按语义查询**你的文件 —— 「找那条我反驳 Postgres 跑时序的笔记」—— 用向量嵌入 + 检索时调 LLM。**这个 pack 是组织和操作**文件：整理、去重、改名、归档。**两个都跑**。KB-RAG **坐在一个组织好的文件系统上**；**这个 pack 是让文件系统组织好的那一层**。**自然工作流**：每月用这个 pack 保持文件系统清洁、每天用 KB-RAG 在里面找东西。",{"q":114,"a":115},"Day-one 实际收益是啥 —— 我先做啥？","90 分钟，按顺序。(1) `npx -y @wonderwhy-er\u002Fdesktop-commander setup`（或你平台的等价命令），**根目录只配一个项目目录 + `~\u002FDownloads`** —— 不是整个 home。(2) 通过配置文件把它接进 Claude Code 或你常用的 MCP-aware agent。(3) `brew install ripgrep fzf yazi`（或 apt \u002F dnf）。(4) 写 30 行 `~\u002F.agents.md`：文件规范、整理规则、**三条 NEVER 路径**（`~\u002F.ssh` \u002F `~\u002F.aws` \u002F `~\u002FDocuments\u002Flegal\u002F`）、改名先 dry-run 规则。(5) 加一个 `PreToolUse: Write` hook 跑 `case \"$file\" in ~\u002FDownloads\u002F*|~\u002Fprojects\u002F*) exit 0;; *) exit 1;; esac` —— **白名单外的写直接 block**。**这就是 day one**。让 agent 跑 `~\u002FDownloads`、一个 prompt：「为 30 天前的所有东西**提出**（不执行）整理方案」。**Yazi 里读它的方案**。一批一批批准。资产 #7-9 是周末作业。",{"@context":117,"@type":118,"name":13,"description":119,"numberOfItems":120,"inLanguage":94},"https:\u002F\u002Fschema.org","ItemList","九个资产，给想让 agent 真正干本地文件活的开发者 —— 整理 Downloads、去重、批量改名、按内容搜索、归档 —— 配护栏让它安全跑。",9,[122,126,130],{"url":123,"anchor":124,"reason":125},"\u002Fzh\u002Ftopics\u002Fmodern-cli-toolbelt","现代 CLI 工具腰带","这个 pack 假设你已经装了基础工具腰带（fd \u002F delta \u002F bat \u002F eza \u002F hyperfine）—— 工具腰带是地基，这个 pack 是 agent 增强的上层",{"url":127,"anchor":128,"reason":129},"\u002Fzh\u002Ftopics\u002Fterminal-first-workflow-ai","终端原生 AI 工作流","这个 pack 复用了终端 pack 的 tmux + AGENTS.md + Hooks + Desktop Commander MCP 模式，但聚焦文件系统操作而不是编码",{"url":131,"anchor":132,"reason":133},"\u002Fzh\u002Ftopics\u002Fpersonal-knowledge-base-rag","个人知识库 RAG","这个 pack 把文件组织好之后，KB-RAG 坐在上面让你按语义查询 —— 自然的后续工作流",[135,139,143],{"claim":136,"source_name":137,"source_url":138},"Desktop Commander MCP 是 Model Context Protocol server，把本地终端 + 文件系统工具（含 PDF \u002F DOCX \u002F Excel 读取）暴露给任何支持 MCP 的 agent","wonderwhy-er\u002FDesktopCommanderMCP on GitHub","https:\u002F\u002Fgithub.com\u002Fwonderwhy-er\u002FDesktopCommanderMCP",{"claim":140,"source_name":141,"source_url":142},"ripgrep 用正则递归搜目录，构建在 Rust 的正则引擎之上，设计目标是在大多数大型工作负载上比 grep 快","BurntSushi\u002Fripgrep on GitHub","https:\u002F\u002Fgithub.com\u002FBurntSushi\u002Fripgrep",{"claim":144,"source_name":145,"source_url":146},"AGENTS.md 是编码 agent 指令的开放格式，被 Codex CLI \u002F Aider \u002F Cursor \u002F Gemini CLI 等作为 repo 根目录或用户 home 的统一简报","AGENTS.md spec","https:\u002F\u002Fagents.md",930,"2026-05-22T00:00:00Z"]