





















@@ -44,6 +44,78 @@ automation easier to review and safer to replay. It is especially useful when
4444you want to update one leaf while preserving the rest of the file's comments,
4545line endings, and surrounding formatting.
464647+Use it when the thing you want has a logical address, but the physical file
48+shape varies:
49+50+- A hook wants to read one setting from commented JSONC without losing comments
51+ when it writes the value back.
52+- A maintenance script wants to find every matching event field in a JSONL log
53+ without loading the whole log into a custom parser.
54+- An editor extension wants to jump to a markdown section or bullet item by
55+ slug, then render the exact line it resolved to.
56+- An agent wants to dry-run a tiny workspace edit before applying it, with the
57+ changed bytes visible in review.
58+59+You probably do not need `openclaw path` for ordinary whole-file edits, rich
60+config migrations, or memory-specific writes. Those should use the owner
61+command or plugin. `path` is for small, addressable file operations where a
62+repeatable terminal command is clearer than another bespoke parser.
63+64+## How it is used
65+66+Read one value from a human-edited config file:
67+68+```bash
69+openclaw path resolve 'oc://config.jsonc/plugins/github/enabled'
70+```
71+72+Preview a write without touching disk:
73+74+```bash
75+openclaw path set 'oc://config.jsonc/plugins/github/enabled' 'true' --dry-run
76+```
77+78+Find matching records in an append-only JSONL log:
79+80+```bash
81+openclaw path find 'oc://session.jsonl/[event=tool_call]/name'
82+```
83+84+Address an instruction in markdown by section and item instead of by line
85+number:
86+87+```bash
88+openclaw path resolve 'oc://AGENTS.md/runtime-safety/openclaw-gateway'
89+```
90+91+Validate a path in CI or a preflight script before the script reads or writes:
92+93+```bash
94+openclaw path validate 'oc://AGENTS.md/tools/$last/risk'
95+```
96+97+Those commands are meant to be copyable into shell scripts. Use `--json` when a
98+caller needs structured output and `--human` when a person is inspecting the
99+result.
100+101+## How it works
102+103+`openclaw path` does four things:
104+105+1. Parses the `oc://` address into slots: file, section, item, field, and
106+ optional session.
107+2. Chooses the file-kind adapter from the target extension (`.md`, `.jsonc`,
108+`.jsonl`, and related aliases).
109+3. Resolves the slots against that file kind's AST: markdown headings/items,
110+ JSONC object keys/array indexes, or JSONL line records.
111+4. For `set`, emits edited bytes through the same adapter so the untouched
112+ parts of the file keep their comments, line endings, and nearby formatting
113+ where the kind supports it.
114+115+`resolve` and `set` require one concrete target. `find` is the exploratory
116+verb: it expands wildcards, unions, predicates, and ordinals into the concrete
117+matches you can inspect before choosing one to write.
118+47119## Subcommands
4812049121| Subcommand | Purpose |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。