
CLI数据分析【免费下载链接】millerMiller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON项目地址https://gitcode.com/gh_mirrors/mi/miller点击查看免费下载本文基于 Miller 仓库中的规划文档 plans/plan-2098-llm.md对应 issue #2098系统讲解 Miller 如何从面向人类散文的帮助系统演进为面向 LLM Agent 的可解析、可操作接口包括mlr help --as-json结构化目录、mlr which能力路由、--errors-json结构化错误、mlr put --explainDSL 预校验、mlr describe数据形态探测以及把这一切打包成 MCPModel Context Protocol服务器的mlr mcp终端。读完本文你将理解这条路线图的完整架构、每一项能力的命令用法与 JSON 形状并能在自己的 Agent 工作流中复现发现 → 约束 → 校验 → 执行的闭环。背景Miller 的 Agent 缺口是形态而非覆盖度Miller 已经拥有近乎完整的内省覆盖mlr help topics覆盖了 verbs动词、functionsDSL 函数、keywords关键字、flags标志支持精确/近似搜索。但对 LLM Agent 而言真正的瓶颈是shape形态而非 coverage覆盖度几乎所有帮助内容都是通过fmt.Printf输出的人类散文Agent 必须对文本做 scrape抓取结果就是幻觉出不存在的 flag 和函数签名——这是 Agent 驱动 CLI 时最高频的失败模式。路线图的核心主张是先把 Miller 的内省表面从散文迁移为稳定、可解析的结构再在其上构建可操作性自我纠错、校验、MCP 服务器。从源码看这一判断直接体现在帮助分发机制上HelpMain(args []string)pkg/terminals/help/entry.go剥离help后特殊处理find然后用args[0]对handlerLookupTable做基于名称的字符串匹配完全没有 flag 解析层不匹配时回退到精确/近似搜索entry.go。因此路线图特别指出--as-json修饰符必须在分发前从 args 中提取而不是寄望于某个既有 flag 解析层。路线图按 issue 分成两条轨道Discoverability可发现性——Agent 如何学会 Miller 能做什么结构化帮助目录、能力索引/路由器、可运行的示例语料。Operability可操作性——Agent 如何运行 Miller 并自我纠错结构化错误、DSL 校验/试运行、describe模式动词、MCP 服务器。基础事实在代码库中验证的五个关键约束路线图列出了五条经过代码验证的接地事实它们决定了整个改造的工程路径帮助分发是名称字符串匹配无 flag 解析见上文HelpMain。handler 类型为zaryHandlerFunc/varArgHandlerFuncentry.go。所有目录结构体都使用私有小写字段且没有 JSON tagsBuiltinFunctionInfo—— pkg/dsl/cst/builtin_function_manager.go含 name、class、help、examples、arity 字段注册表为BuiltinFunctionManagerInstance访问器有LookUp、GetBuiltinFunctionNames、ListBuiltinFunctionsInClass。Flag/FlagSection/FlagTable—— pkg/cli/flag_types.go含 name、altNames、花括号记法的arg如{a,b,c}、help、parser、suppressFlagEnumeration访问器有GetFlagNames、ListFlagsForSection、FlagTakesArg。TransformerSetup—— pkg/transformers/aaa_record_transformer.go含 Verb、UsageFunc、ParseCLIFunc、IgnoresInput、Options注册表为TRANSFORMER_LOOKUP_TABLEpkg/transformers/aaa_transformer_table.go访问器有LookUp、GetVerbNames、ShowHelpForTransformer。Keywords ——KEYWORD_USAGE_TABLE是{name, usageFunc}的映射pkg/dsl/cst/keyword_usage.gohelp 文本内嵌在函数体内。结论序列化需要导出 DTO/视图结构体从这些注册表中填充既不能给私有字段加 JSON tag也不应导出内部结构保持线上线形状解耦且可版本化。Verb 用法与关键字帮助直接写终端每个 verb 手写UsageFunc(*os.File)并Printf自己的选项如 pkg/transformers/cat.go关键字usageFunc()打印到 stdout。改造方向是重构这些 sink 而非劫持文件描述符让TransformerUsageFunc和关键字 usage 函数接收io.Writer既有调用方传os.Stdout目录构建器传bytes.Buffer。verb 选项保持纯散文正是 Tier-1/Tier-2 的分界线。FLAG_TABLE.NilCheck()pkg/cli/flag_types.go是既有的构建期完整性检查模式通过mlr help入口 回归测试执行PR3 将镜像它来跟踪 verb 选项迁移进度。跨切面设计适用于所有 PR 的五条原则无论哪个 PR都遵循以下统一设计1. DTO 层私有注册表 导出视图 稳定线上契约新增导出视图结构体如Catalog、FunctionInfo、FlagInfo、VerbInfo、KeywordInfo、OptionSpec每个都带显式的json:...标签snake_case。内部结构体保持私有DTO 是唯一的线上契约。源码证实该设计已落地CatalogForJSONpkg/terminals/help/entry_json.go带mlr_version、catalog_schema_version、verbs、functions、flags、keywords六个字段分别来自transformers.GetVerbInfosForJSON()、cst.BuiltinFunctionManagerInstance.GetFunctionInfosForJSON()、cli.FLAG_TABLE.GetFlagInfosForJSON()、cst.GetKeywordInfosForJSON()entry_json.go。而OptionSpecpkg/transformers/aaa_record_transformer.go正是带 JSON 标签的导出视图flag、aliases、arg、type、desc、repeatable、values。2. 版本化 / 缓存键mlr_versioncatalog_schema_version每个完整/部分 JSON 文档的顶层都携带mlr_version与mlr version同源和catalog_schema_version形状变化时递增的整数。Miller 是静态二进制目录只随二进制变化而变——因此该文档天然是 MCP 服务器或任何工具的完美缓存键只在二进制或 schema 版本变化时重新拉取无需 TTL。源码中catalogSchemaVersion常量为2注释明确说明Agents and tools can use this (together with mlr_version) as a cache key: re-fetch only when either value changesentry_json.go。3. Opt-in 机制--as-json与MLR_HELP_JSON两种等价入口刻意不用--json该顶层 flag 已表示 JSON I/O 格式提供两种等价方式每次调用传--as-json用于help命名空间内无歧义如mlr help --as-json、mlr help verb cat --as-json。环境变量MLR_HELP_JSONtruthy一次性全局开关Agent 只需 opt-in 一次。--as-json与 truthy 的MLR_HELP_JSON等价两者同时出现时 flag 优先。决策集中在wantJSONOutput一个 helper 中entry_json.gotruthy 值集合为1/true/yes大小写不敏感见isTruthyEnv。--as-json允许出现在命令行任意位置通过extractFlag逐 token 剥离entry_json.go这正是在分发前提取的实现。4. 输出纪律stdout、单文档、无颜色、确定性排序JSON 输出到 stdout每次调用一个文档不渲染颜色按键名排序保证 diff 与 Agent 解析的稳定性buildIndex按 kindverb function flag keyword再按 name 排序entry_json.go。5. 示例永不腐化每个 verb 都应有可运行示例目录中暴露的示例全部经过 CI 测试目标是每个 verb而不只是函数都有一个可运行示例——Agent 从mlr cat -n -g shape这种命令模式中模式匹配比读散文更快。这条原则后续接入了既有的回归测试 / 文档构建机制。PR 1 — Tier 1mlr help --as-json机器可读目录基石目标一次调用返回 Miller 全部表面的结构化、可解析模型支持按条目获取。不带--as-json的普通输出逐字节不变。一切下游能力都建立在这之上。命令面源码均已实现见helpJSON分发逻辑 entry_json.go命令语义mlr help --as-json完整目录一个 JSON 文档mlr help verb cat --as-json一个或多个 verbmlr help function splitax --as-json一个或多个函数mlr help flag --ifs --as-json一个或多个 flagmlr help keyword ENV --as-json一个或多个关键字设置 truthyMLR_HELP_JSON上述所有命令无需 flag 即输出 JSONTier-1 形状顶层mlr_version、catalog_schema_version。Functions函数name、class、help、examples[]、arity 信息以及结构化签名{params: [{name, type}], return: type}。Flagssection、name、alt_names[]、arg、help。Verbsname、summary一行、ignores_input以及usage_textverb 的UsageFunc渲染输出——作为尚未结构化选项的 Tier-1 回退。Keywordsname、help文本。实现要点新增 DTO 包即跨切面设计 #1。通过io.Writer渲染 verb usage而非捕获文件描述符TransformerUsageFuncaaa_record_transformer.go与关键字 usage 函数接收io.Writer既有调用方传os.Stdout目录构建器传bytes.Buffer收集usage_text/ 关键字 help。这是正确位置的重构——无 pipe、无os.File劫持。结构化函数签名深入实现不解析散文不从人类首行抓取而是从 builtin_function_manager.go 的函数信息 API 派生{params, return}arity 字段hasMultipleArities、minimum/maximumVariadicArity加上类型化函数指针unaryFunc、binaryFunc……已编码 arity/形状。在BuiltinFunctionInfo上新增访问器以结构化数据形式暴露供 DTO 使用人类首行仍保留在help中。--as-json提取在HelpMain中entry.go先扫描/剥离--as-json并查询MLR_HELP_JSON再进入基于名称的分发把wantJSON布尔值穿线给各 topic handler无参全量转储时用 builder 遍历全部四个注册表。测试既有回归测试框架下的 Golden-JSON 回归用例schema 完整性测试每个 function/flag/verb/keyword 都出现、必填字段非空精神与NilCheck一致。PR 2 — 发现层JSON 索引 能力路由器目标廉价的首个调用让 Agent 先选择再深入。mlr help --as-json --index→[{kind, name, summary}]跨 verbs/functions/flags/keywords只有名称 一行摘要不含正文/示例/usage_text。相比既有的list-verbs/list-functions仅名称是增量。源码已实现IndexEntryForJSONentry_json.go与buildIndex按 kind/name 确定性排序。mlr which join two files on a key→ 排序后的 JSON[{verb, score, summary}]。构建在 Miller 既有的精确/近似帮助搜索之上helpByApproximateSearchOne与entry.go中的*Approximate*访问器。通过退出码传达置信度如0为置信匹配、2为无置信匹配让 Agent 按状态码而非散文分支。mlr which是--index的反向操作意图 → verb vs. 浏览全部用来短路最常见的该用哪个 verb往返。从源码看WhichSearch已在 pkg/terminals/help/api.go 中导出返回(results []WhichResultEntry, confident bool)——confident为 true 当且仅当排名第一的结果名称包含查询 token与文档中退出码信号的设计一致。测试索引覆盖每个目录条目which对若干规范意图返回预期 top verb 与退出码。PR 3 — Tier 2结构化 verb 选项 枚举值集目标把每个 verb 的usage_text块替换为结构化选项列表verb 可独立升级。模型给TransformerSetup增加可选Options []OptionSpecaaa_record_transformer.go默认nil。OptionSpec{Flag, Arg, Type, Desc string; Repeatable bool; Values []string}。Type是小枚举bool | string | int | float | csv-list | regex | filename | format | enum。有限域输出其值集选项有固定域时如输出格式设Type:enum并填Values如[csv,tsv,json,jsonl,pprint,markdown,dkvp,nidx,xtab]。Agent 不仅会幻觉 flag还会幻觉值——显式输出真实枚举直接打击值幻觉的源头。范围仅静态域。这里的Values是二进制固定的集合输出格式、压缩类型数据依赖的约束情形如-g的字段名超出静态目录范围归mlr describePR6处理——PR3 的枚举永远是二进制固定、绝不来自数据。发射器Options非空时优先否则回退到usage_text。Agent 总能拿到某种东西无需大爆炸式迁移。可选地让每个 verb 的UsageFunc从Options渲染使散文与 JSON 保持同步。源码证实了这一机制的最终形态WriteVerbOptionspkg/transformers/aaa_verb_usage.go从[]OptionSpec渲染每个 usage 消息的 Options: 块——flag heads 对齐成单列描述按 80 列折行-h|--help统一追加从而散文 usage 与 JSON 目录Tier-2永远同步每个 verb 的选项只写一次写在其OptionSpec里。迁移跟踪新增VerbOptionsNilCheck镜像FLAG_TABLE.NilCheck()通过mlr help入口接入并在回归测试中断言报告哪些 verb 的Options nil。verb 在此及后续提交中增量迁移。PR 4 — 结构化错误--errors-json目标Agent 按错误kind分支而非正则匹配英文目录成为错误解析所依据的字典。按 issue 说法这是最大的可操作性收益。--errors-json输出{error, kind, verb, position, hint, did_you_mean[]}。did_you_mean对 PR1 目录中的 verb/flag/function/keyword 名称做 Levenshtein 最近匹配——闭环了目录所赋能的自我纠错。hint与did_you_mean是可直接复制粘贴的修正命令而非散文如mlr cut -f x,y -- file.csv——Agent 从一条命令恢复远比从一段描述修复快。识别 Miller 中心 CLI/DSL 错误发射点在设置该 flag或MLR_HELP_JSON式全局开关时路由到结构化错误类型。从源码看该 DTO 已在 pkg/climain/errors_json.go 实现StructuredError含error、kind、token可选、verb可选、hint可选、did_you_mean可选DSL 解析器消息parse error: ...现在归类为dsl-parse-error而非genericnearMatches负责填充did_you_mean。MCP 服务器的子进程也始终注入MLR_ERRORS_JSON1使每次失败都带回结构化文档pkg/terminals/mcp/tools_exec.go。PR 5 — DSL--explain/ 校验试运行已落地目标在投入完整输入流之前先校验/类型检查 DSL 表达式对 Agent 是巨大的上下文节约。mlr put --explain ...以及mlr filter --explain解析 类型检查 DSL报告错误理想情况下走 PR4 的结构化错误路径并在不消费完整输入流的情况下退出。复用既有的 DSL 解析/CST 构建路径在记录循环前设置闸门。落地实现pkg/transformers/put_or_filter.go--explain加入 put/filter 后在既有的cstRootNode.Build已完成 parse → ValidateAST → CST build → Resolve之后表达式有效 → 打印mlr put: DSL expression is valid.或 filter通过lib.NewExitZeroRequest()退出 0表达式无效 → 构建错误沿正常路径返回因此--errors-json能产出结构化文档。闸门位于 pass-two 构造函数中、任何输入文件打开之前所以不读取任何输入。--errors-json下 DSL 解析消息归类为dsl-parse-errorerrors_json.go。回归用例在test/cases/dsl-explain/0001-0004有效 put/filter、无效普通、无效--errors-json另有归类单元测试。值得注意的是文档记录的一个遗留怪癖旧版-X解析后退出即使在解析错误时也退出 0——这是既有行为原样保留因为--explain才是正确的校验路径。PR 6 —mlr describe模式/形状内省已落地目标让 Agent 学会数据的形状与目录所教的工具形状互补。mlr describeverb 或 terminal报告字段名、推断类型、输入流上的基数cardinality带--as-json形式。复用 Miller 既有的类型推断pkg/mlrval与字段收集机制大概率是新 verb。落地实现pkg/transformers/describe.go新 verbdescribe注册进TRANSFORMER_LOOKUP_TABLE并带 Tier-2Options因此会自动出现在 PR1 目录与 PR2 索引中。每个输入字段输出一条记录字段含义field_name输入字段名types类型名 → 出现次数映射经GetTypeName类型推断count字段出现的记录数null_count空串或 JSON null 的值计数distinct_count字段不同值的计数min/max最小/最大值字符串与数字均可values基数在-n/--max-values默认 200 抑制范围内时的全部不同值数组按首见顺序values列表正是从 PR3 推迟的数据派生约束域Agent 复制真实值用于-g、DSL 比较等而不是猜。JSON 形式是 Miller 原生风格——mlr --ojson describe——types/values在 JSON 中嵌套、表格格式下自动展平因此无需 verb 级--as-jsonflag。describe相对summary的定位是模式形状 vs. 汇总统计。去重基于字符串表示与summary的distinct_count一致null 语义空或 JSON null与summary的null_count一致。测试test/cases/verb-describe/JSON、pprint 展平、异构输入、-n上限、-n 0、null-vs-empty、坏选项文档见docs/src/reference-verbs.md.in的## describe一节。PR 7 — MCP 服务器 Agent Skill闭环已落地目标把上述能力打包让 Agent 同时获得表面与循环。一个薄 MCP 工具服务器包住目录及周边list_capabilitiesPR1/PR2、validate_dslPR5、describe_dataPR6、run。list_capabilities以mlr_version为键缓存转储。随附 Agent Skill / playbook编码 discover → constrain → validate → run 循环——这个配方才是让 CLI 在 Agent 驱动下发光的关键超出了裸工具表面。传输stdio而非 HTTPMCP 对本地工具的标准传输是 stdin/stdout 上的 JSON-RPC 2.0客户端Claude Code、Claude Desktop、Cursor……将服务器作为子进程拉起。无 localhost 端口、无鉴权故事、无防火墙提示、可离线工作、随客户端消亡。MCP 的 streamable-HTTP 传输只服务远程服务器如需将来可作为可选 flag但这里不需要。入口既有二进制中的新终端mlr mcp不是独立可执行文件。注册方式为claude mcp add miller -- mlr mcp或等价 JSON 配置。内置在mlr中意味着零额外安装且服务器与二进制版本锁定——这正是mlr_versioncatalog_schema_version缓存键所假设的前提。源码确认McpMainpkg/terminals/mcp/mcp_main.go解析--allow-shell、--timeout {seconds}默认 60、--max-output-bytes {n}默认 1 MiB等选项帮助文本完整列示五个工具及 playbook 提示/资源。依赖决策官方 go-sdk 胜出路线图当时留下的主要开放决策——官方modelcontextprotocol/go-sdkvs. 手写最小协议子集initialize、tools/list、tools/call、ping——最终选择官方modelcontextprotocol/go-sdkv1.6以跟随 MCP 规范的演进。从 server.go 的导入可见mcpsdk github.com/modelcontextprotocol/go-sdk/mcp。工具PR1–PR6 的薄包装底层无新东西工具来源说明list_capabilitiesPR1 目录 / PR2 索引支持 kind/name 过滤Agent 可廉价获取单个 verb 条目whichPR2意图 → 排序 verbvalidate_dslPR5--explain路径失败时返回 PR4 结构化错误文档describe_dataPR6 verb --ojson学习数据形态run—执行 mlr 命令行返回 stdout大小上限 截断说明、stderr、退出码以及触发时的--errors-json解析文档list_capabilities与which带ReadOnlyHint/IdempotentHintrun携带DestructiveHint注解server.go。执行模型纯查询进程内、执行走子进程目录与which是对编译进二进制的注册表的纯函数——进程内服务。validate_dsl、describe_data、run通过os.Executable()调用同一个二进制CLI 路径会调用os.Exit、修改全局选项状态、可能 panic子进程隔离更简单且保证 Agent 看到与终端逐字节一致的行为。子进程 stdin 总是重定向内联stdin_text或空绝不继承——服务器自身 stdin 承载 MCP 传输tools_exec.go。安全细节run按设计就是任意代码执行DSL 有system()与exec()verb 如tee/split会写文件。MCP 客户端每次工具调用都会提示但服务器仍强制超时、输出上限以及本 PR 的一小块前置工作——Miller 自身新增的--no-shell风格 flag服务器默认设置显式可退出使system/exec在用户未要求时干净失败。--no-shell/MLR_NO_SHELL落地pkg/lib/shell_gate.go单向门——启动时可禁用、永不重新启用因此 Agent 的 argv 无法覆盖环境级 opt-out。在三个数据路径 shell-out 点强制BIF_system/BIF_exec干净错误值、lib.Open{Outbound,Inbound}HalfPipe管道重定向、--prepipe。回归用例在test/cases/no-shell/。服务器侧执行约束tools_exec.go子进程始终注入MLR_ERRORS_JSON1除非--allow-shell否则注入MLR_NO_SHELL1每次运行的墙钟超时--timeout默认 60s可逐调用覆盖与 stdout/stderr 字节上限--max-output-bytes默认 1 MiB输出带显式*_truncated/timed_out标志——capWriter积累写入至上限、丢弃但计数超出部分、绝不报错因此子进程不会被自身的冗长杀死tools_exec.go。Skill 半单一来源、两处提供playbook 编码describe → index/which → fetch entry → validate → run按结构化错误kind与did_you_mean分支。同一内容双份发布仓库内 Agent SkillSKILL.md与服务器自身暴露的 MCP prompt/resource——只看见服务器的 Agent 同样能拿到循环。源码确认PlaybookText通过//go:embed SKILL.md嵌入server.go以 promptmiller-playbook与 resourcemiller://playbook暴露完整 playbook 文本见 pkg/terminals/mcp/SKILL.md从 Agent Skill frontmattername: miller到四步循环1. Discover — never invent names、2. Constrain — learn the data before touching it、3. Validate — check DSL before spending a run、4. Run — and read errors structurally并附命令行形状规则主 flag 在 verb 前、then链 verb、verb flag 后--分隔文件名、内联数据走stdin_text、文件放 args 末尾。其他落地细节帮助包新增导出 APIpkg/terminals/help/api.goBuildFullCatalog、CatalogSchemaVersion、BuildIndex、CollectVerbs/Functions/Flags/Keywords、WhichSearch供服务器进程内服务目录/索引/搜索结构化错误 DTO 在 mcp 包中镜像而非导入声明因为 climain→terminals→mcp 会成环tools_exec.go。测试SDK 内存传输单元测试server_test.go覆盖每个工具 注解、输出上限、超时、allow-shell、no-shell 阻断 system 路径子进程用例在仓库根二进制缺失时跳过。回归 goldenmlr mcp --helptest/cases/mcp/。文档docs/src/mcp-server.md.in位于 mkdocs 导航 Miller in more detail 下。MLR_AGENT开放问题对服务器而言已解决为不需要它显式设置 env不用服务器只用 skill 的用户分别设置MLR_HELP_JSON/MLR_ERRORS_JSON/MLR_NO_SHELL。开放问题带入相关 PR不阻塞路线图Env-var 范围MLR_HELP_JSON翻转 help/目录输出。同一个或更广的MLR_AGENTenv var 是否也应打开--errors-json让 Agent 只设一个变量覆盖两者PR4 落地时决定。mlr help schema别名是否在--as-jsonflag 之外为全量转储增加别名与发布一个描述目录文档的 JSON Schema 不同——导出的 Go DTO 已充当了事实上的版本。已解决每次调用的 flag 定为--as-jsonMLR_HELP_JSON为 env var 等价物函数签名从函数信息 API 结构化发射PR1而非解析散文。总结一条从散文到闭环的完整路径按 plans/plan-2098-llm.md 的路线图Miller 的 Agent 友好化走过了清晰的四个阶段形态迁移PR1/PR3帮助表面从fmt.Printf散文迁向带版本号的 JSON 目录verb 选项从usage_text迁向OptionSpec 枚举值集散文与 JSON 通过WriteVerbOptions保持单源同步。发现层PR2--index廉价索引与mlr which意图路由把该用哪个 verb从散文猜测变为带退出码信号的确定性查询。可操作性PR4/PR5--errors-json结构化错误 did_you_mean/hint修正命令配合--explain的零输入校验让 Agent 按错误kind分支而非正则匹配英文。数据感知与闭环PR6/PR7mlr describe输出数据形态与真实值域mlr mcp把目录、路由、校验、执行打包成 stdio MCP 服务器并用--no-shell单向门解决任意代码执行的安全边界最后以 SKILL.md 编码发现 → 约束 → 校验 → 执行循环。对想要在自己的 Agent 工作流中集成 Miller 的开发者最直接可用的结论是一切有效名称都在mlr help --as-json目录中以(mlr_version, catalog_schema_version)为缓存键mlr describe拿到真实字段与值mlr put --explain零成本校验表达式--errors-json按 kind 恢复——而mlr mcp已经把这些全部封装成标准 MCP 工具注册一条claude mcp add miller -- mlr mcp即可开始使用。赞分享CLI数据分析【免费下载链接】millerMiller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON项目地址https://gitcode.com/gh_mirrors/mi/miller点击查看免费下载相关推荐Miller MCP 服务器实战指南用 mlr mcp 让 AI Agent 直接驱动 CSV/JSON 数据处理Miller MCP 服务器实战指南用 mlr mcp 让 AI Agent 直接驱动 CSV/JSON 数据处理 本篇技术指南以 Miller 官方文档《TCLI数据分析Miller AI 支持内部机制全解析mlr help --as-json、mlr which、describe 与 --errors-json 组成的 Agent 协作协议Miller AI 支持内部机制全解析mlr help as json、mlr which、describe 与 errors json 组成的 AgentCLI数据分析Miller 内置在线帮助系统完全指南mlr help、REPL :help 与机器可读目录Miller 内置在线帮助系统完全指南 mlr help 、REPL :help 与机器可读目录 导读 Miller GitHub 加速计划 / mi /CLI数据分析上一篇5大革新特性全面解析WinBtrfs如何重塑Windows存储体验下一篇Figma全中文界面实现指南让设计效率提升50%的本地化方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考