<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>CLI on 魔都水滴</title>
    <link>https://blog.margrop.net/tag/cli/</link>
    <description>Recent content in CLI on 魔都水滴</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>zh-CN</language>
    <lastBuildDate>Thu, 02 Jul 2026 19:30:00 +0800</lastBuildDate>
    <atom:link href="https://blog.margrop.net/tag/cli/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Docker 容器无限重启？只因 v3.7.0 少了一个 serve —— 思源笔记 CLI 破坏性变更修复实录</title>
      <link>https://blog.margrop.net/post/siyuan-v370-docker-restart-loop-fix/</link>
      <pubDate>Thu, 02 Jul 2026 19:30:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/siyuan-v370-docker-restart-loop-fix/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;把思源笔记从 v3.6.x 升级到 v3.7.0 后，Docker 容器陷入无限重启循环。&lt;code&gt;docker logs&lt;/code&gt; 显示 &lt;code&gt;Error: unknown flag: --accessAuthCode&lt;/code&gt;。根因是 v3.7.0 引入了 CLI 子命令架构，原来的顶级 flag 现在需要加一个 &lt;code&gt;serve&lt;/code&gt; 子命令。修复只需在 docker-compose.yml 的 &lt;code&gt;command&lt;/code&gt; 字段最前面加上 &lt;code&gt;&#39;serve&#39;&lt;/code&gt;，多 7 个字符，从无限重启到正常运行。&lt;/p&gt;&#xA;&lt;p&gt;本文给出完整排查过程、三种操作系统下的一键修复脚本（Windows 11 / Ubuntu 26.04 / macOS 26），以及人工执行和 AI Agent 自动配置两种方法。所有脚本只调用 Docker CLI 和 SSH，不依赖第三方服务。&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>把「该睡觉了」搬出客厅：让 mac 的 launchd 每天 22:00 自动停用群晖孩子的账号，08:00 再悄悄启用</title>
      <link>https://blog.margrop.net/post/synology-mykid-curfew-launchd/</link>
      <pubDate>Sun, 14 Jun 2026 08:20:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-mykid-curfew-launchd/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;群晖 DSM 控制台里其实有一个&amp;quot;停用账号&amp;quot;按钮，但它不会自动按时执行。借助 mac 自带的 &lt;code&gt;launchd&lt;/code&gt; 加一段 50 行的 &lt;code&gt;bash&lt;/code&gt; 脚本，可以做到：每天 22:00 把孩子的两个本地账号 &lt;code&gt;expired&lt;/code&gt; 标志置位，08:00 再恢复。脚本自带&amp;quot;改前查询 → 改 → 改后查询&amp;quot;的三步校验，任何一步对不上号立刻 &lt;code&gt;exit 1&lt;/code&gt;，launchd 会把执行日志写进 &lt;code&gt;StandardOutPath/StandardErrorPath&lt;/code&gt;。整件事的特别之处是**&amp;ldquo;家长&amp;quot;两个字被从对话里拿掉了**——你不用每天喊&amp;quot;该睡了&amp;rdquo;，机器会准时替你做。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;本文不打算讲一个大而全的家庭 NAS 管理方案，只围绕一件具体的事：让一个原本靠&amp;quot;人记得点&amp;quot;的操作，变成&amp;quot;到了点就自动发生&amp;quot;的纯系统级动作。&lt;/p&gt;&#xA;&lt;p&gt;如果你只想先看图，第二节那张「晚 10 点断电 / 早 8 点复电」的总览图就够了。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;晚 10 点准时&amp;quot;断网&amp;quot;，早 8 点自动&amp;quot;复电&amp;quot;&#34; src=&#34;https://blog.margrop.net/post-images/synology-mykid-curfew-launchd/05-curfew-overview.svg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>百度网盘别只会拖拽：BaiduPCS-Go CLI 和 Agent 自动化实战</title>
      <link>https://blog.margrop.net/post/baidupcs-go-cli-agent-guide/</link>
      <pubDate>Sat, 16 May 2026 10:06:01 +0800</pubDate>
      <guid>https://blog.margrop.net/post/baidupcs-go-cli-agent-guide/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;如果你只是偶尔从百度网盘下载一两个文件，网页和官方客户端当然够用。但只要你开始批量下载、服务器拉取、自动备份、远程归档、目录巡检，或者希望让 Codex、Claude、OpenClaw、HermesAgent 这类 Agent 帮你处理网盘任务，图形界面很快就会变成阻碍。&lt;code&gt;BaiduPCS-Go&lt;/code&gt; 的价值不是“神奇提速”，而是把百度网盘变成一个可以被脚本、终端和 Agent 调度的文件系统入口。本文会从安装核验、BDUSS/STOKEN 登录、常用命令、配置策略、安全边界，一直讲到怎样把它交给 Agent 使用。&lt;/p&gt;&#xA;&lt;p&gt;本文所有账号、Cookie、路径、任务描述和配置均为脱敏示例，不包含任何真实 BDUSS、STOKEN、Cookie、内网地址、私人目录或业务信息。请不要把自己的登录凭据写进公开仓库、博客、截图、聊天记录或 Agent 提示词正文。&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Codex 0.130 后 /approvals 没了？别慌，权限开关都搬到启动参数了</title>
      <link>https://blog.margrop.net/post/codex-130-approval-flags/</link>
      <pubDate>Tue, 12 May 2026 18:50:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/codex-130-approval-flags/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;如果你升级到 Codex 0.130.0（很多人会口头叫 Codex 0.130）之后，发现以前习惯在会话里用的 &lt;code&gt;/approvals&lt;/code&gt; 不见了，不要急着回退版本。现在更稳定的做法，是在启动 Codex 时就把权限策略说清楚：用 &lt;code&gt;--ask-for-approval&lt;/code&gt; 控制什么时候询问，用 &lt;code&gt;--sandbox&lt;/code&gt; 控制命令能操作哪些文件，确实处在外部隔离环境里时，再使用 &lt;code&gt;--dangerously-bypass-approvals-and-sandbox&lt;/code&gt; 一次性跳过确认和沙箱。这个长参数也可以直接写成 &lt;code&gt;--yolo&lt;/code&gt;，更方便记忆和输入，也更接近 Gemini 等工具里常见的命名习惯。&lt;/p&gt;&#xA;&lt;p&gt;换句话说，思路从“进会话后再临时切权限”，变成“启动前就选择运行档位”。这篇文章会把常用参数、推荐组合、风险边界和 shell alias 写法一次讲清楚。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;本文只讨论公开的 Codex CLI 参数和通用工作流，不包含任何真实主机、内网地址、用户名、Token、私有路径或业务项目名。所有命令都用 &lt;code&gt;&amp;lt;PROJECT&amp;gt;&lt;/code&gt;、&lt;code&gt;&amp;lt;TASK&amp;gt;&lt;/code&gt; 这类占位符表示，你可以按自己的环境替换。&lt;/p&gt;</description>
    </item>
    <item>
      <title>给 OpenClaw / HermesAgent 集成群晖操作 SKILL：从一句话到可审计的 NAS 自动化</title>
      <link>https://blog.margrop.net/post/openclaw-hermesagent-synology-skill/</link>
      <pubDate>Tue, 05 May 2026 12:20:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/openclaw-hermesagent-synology-skill/</guid>
      <description>&lt;p&gt;我之前已经整理过两篇偏“命令手册”风格的群晖文章：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.margrop.net/post/synology-ssh-commands/&#34;&gt;Synology 群晖 SSH 命令详解&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://blog.margrop.net/post/synology-diskstation-cli-administration-guide/&#34;&gt;群晖 NAS CLI 管理指南&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;这两篇文章解决的是“人知道有哪些命令可以用”的问题。本文想解决另一个更实际的问题：如果我已经在使用 OpenClaw / HermesAgent 这类 Agent 工具，能不能把这些群晖命令沉淀成一个操作 SKILL，让我以后用一句话就能让 Agent 帮我检查 NAS、整理状态、生成操作计划，甚至在确认后执行一些维护命令？&lt;/p&gt;&#xA;&lt;p&gt;我的答案是：可以，但不应该把它做成“Agent 拿到 root 权限以后随便跑”。正确的集成方式应该是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;让群晖 SSH 访问可控、可验证、可撤销。&lt;/li&gt;&#xA;&lt;li&gt;把常用群晖 CLI 操作写进 SKILL，让 Agent 知道可用命令、风险分级和输出格式。&lt;/li&gt;&#xA;&lt;li&gt;默认只允许只读诊断命令自动执行。&lt;/li&gt;&#xA;&lt;li&gt;对重启服务、修改权限、改用户、改网络、删除文件、存储相关操作设置确认门禁。&lt;/li&gt;&#xA;&lt;li&gt;每次执行后保留命令、输出和结论，方便回看和追责。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;如果你只想快速理解整篇文章，看下面这张图就够了。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;OpenClaw / HermesAgent 集成群晖操作 SKILL 总览&#34; src=&#34;https://blog.margrop.net/post-images/openclaw-hermesagent-synology-skill/01-overview-handdrawn.svg&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】群晖NAS CLI管理指南</title>
      <link>https://blog.margrop.net/post/synology-diskstation-cli-administration-guide/</link>
      <pubDate>Thu, 30 Apr 2026 18:20:04 +0800</pubDate>
      <guid>https://blog.margrop.net/post/synology-diskstation-cli-administration-guide/</guid>
      <description>&lt;p&gt;本文档包含命令行工具，使应用程序能够利用群晖DiskStation上的资源，同时包含群晖错误代码参考列表。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【转】Synology DiskStation Administration CLI Guide 官方文档导读与命令速查</title>
      <link>https://blog.margrop.net/post/zhuan-synology-diskstation-administration-cli-guide/</link>
      <pubDate>Thu, 30 Apr 2026 18:14:05 +0800</pubDate>
      <guid>https://blog.margrop.net/post/zhuan-synology-diskstation-administration-cli-guide/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Synology 这份官方 CLI 管理指南并不是一本面向普通 DSM 图形界面用户的入门手册，而是一份给脚本、自动化和系统集成场景准备的命令参考。它覆盖了 DSM 中最常见的几类管理动作：本地用户、本地群组、共享文件夹、网络配置、服务控制、工作组或 ADS 域设置，以及错误码查询。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;这篇文章是基于 Synology 官方 PDF《CLI Administrator Guide for Synology NAS》整理的中文导读和命令速查。由于原 PDF 属于 Synology 官方版权文档，本文不会全文复制或逐段翻译原文，而是按博客阅读习惯重新组织成一份便于检索、理解和日常运维使用的双语整理稿。需要逐字核对参数定义、版本差异或法律声明时，请直接阅读文末的官方 PDF 来源。&lt;/p&gt;</description>
    </item>
    <item>
      <title>一次 tmux &#43; opencode 中文变下划线的排障：不是字体坏了，而是 client_utf8=0</title>
      <link>https://blog.margrop.net/post/tmux-opencode-chinese-underscore-fix/</link>
      <pubDate>Tue, 28 Apr 2026 18:40:00 +0800</pubDate>
      <guid>https://blog.margrop.net/post/tmux-opencode-chinese-underscore-fix/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;这次问题不是 opencode 不支持中文，也不是终端字体突然坏了，而是 tmux 当前 client 被判定为“不支持 UTF-8”。证据是 &lt;code&gt;tmux display-message -p &#39;client_utf8=#{client_utf8}&#39;&lt;/code&gt; 返回了 &lt;code&gt;client_utf8=0&lt;/code&gt;。在这种状态下，tmux 会把非 ASCII 字符替换成下划线，所以中文在 opencode 的 TUI 里看起来就像全部变成了 &lt;code&gt;_&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;这篇文章记录一次很小、但很典型的终端排障：同一台 Mac 上，直接运行 &lt;code&gt;opencode&lt;/code&gt; 时中文显示正常；先进入 tmux，再运行 &lt;code&gt;opencode&lt;/code&gt;，中文就全部变成下划线。&lt;/p&gt;&#xA;&lt;p&gt;这种问题非常容易误判。第一反应通常是怀疑字体、终端模拟器、opencode 版本、主题、Nerd Font、宽字符宽度，甚至怀疑是不是某个 TUI 框架把 CJK 字符处理坏了。但这次真正的关键点只有一个：&lt;strong&gt;tmux 自己是否愿意把 UTF-8 字符写回外层终端。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;为了不泄露任何私人环境信息，下面的命令输出都做了抽象化处理，不包含真实主机名、内网地址、会话名、密钥、账号或项目路径。保留的只有与问题本身有关的技术事实。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
