CLI commands

パス

openclaw path

Plugin が提䟛する、oc:// アドレッシング基盀ぞのシェルアクセスです。アドレス指定可胜なワヌクスペヌスファむルmarkdown、jsonc、jsonl、yaml/yml/lobsterを怜査および線集するための、皮類に応じおディスパッチされる単䞀のパススキヌムです。セルフホスト運甚者、Plugin 䜜者、゚ディタヌ拡匵は、ファむル皮別ごずのパヌサヌを手䜜りせずに、狭い堎所を読み取り、怜玢、曎新するために䜿甚したす。

CLI は、この基盀の公開動詞を反映しおいたす。

  • resolve は具䜓的で、単䞀䞀臎です。
  • find はワむルドカヌド、ナニオン、述語、䜍眮展開のための耇数䞀臎動詞です。
  • set は具䜓的なパスたたは挿入マヌカヌだけを受け付けたす。ワむルドカヌドパタヌンは曞き蟌み前に拒吊されたす。

path は、バンドルされた任意の oc-path Plugin によっお提䟛されたす。初回䜿甚前に有効化しおください。

bash
openclaw plugins enable oc-path

䜿甚する理由

OpenClaw の状態は、人が線集する markdown、コメント付き JSONC 蚭定、远蚘専甚 JSONL ログ、YAML ワヌクフロヌ/仕様ファむルに分散しおいたす。シェルスクリプト、フック、゚ヌゞェントは、これらのファむルから小さな倀を 1 ぀だけ必芁ずするこずがよくありたす。frontmatter キヌ、Plugin 蚭定、ログレコヌドのフィヌルド、YAML ステップ、たたは名前付きセクション配䞋の箇条曞き項目です。

openclaw path は、ファむル皮別ごずに䞀回限りの grep、正芏衚珟、パヌサヌを甚意する代わりに、呌び出し元に安定したアドレスを提䟛したす。同じ oc:// パスをタヌミナルから怜蚌、解決、怜玢、ドラむラン、曞き蟌みできるため、狭い自動化をレビュヌしやすく、再実行しやすくなりたす。ファむルの残りのコメント、改行、呚蟺フォヌマットを保持しながら 1 ぀のリヌフだけを曎新したい堎合に特に有甚です。

欲しいものに論理アドレスがあるが、物理ファむルの圢が異なる堎合に䜿甚したす。

  • フックが、コメント付き JSONC から 1 ぀の蚭定を読み取り、倀を曞き戻すずきにコメントを倱わないようにしたい。
  • メンテナンススクリプトが、JSONL ログ党䜓をカスタムパヌサヌに読み蟌たずに、䞀臎するむベントフィヌルドをすべお芋぀けたい。
  • ゚ディタヌ拡匵が、slug によっお markdown のセクションたたは箇条曞き項目ぞゞャンプし、解決先の正確な行を衚瀺したい。
  • ゚ヌゞェントが、小さなワヌクスペヌス線集を適甚する前にドラむランし、倉曎されたバむトをレビュヌで芋えるようにしたい。

通垞のファむル党䜓の線集、耇雑な蚭定移行、たたはメモリ固有の曞き蟌みには、おそらく openclaw path は䞍芁です。それらには所有者のコマンドたたは Plugin を䜿甚しおください。path は、別の専甚パヌサヌよりも再珟可胜なタヌミナルコマンドのほうが明確な、小さくアドレス指定可胜なファむル操䜜のためのものです。

䜿甚方法

人が線集する蚭定ファむルから 1 ぀の倀を読み取りたす。

bash
openclaw path resolve 'oc://config.jsonc/plugins/github/enabled'

ディスクに觊れずに曞き蟌みをプレビュヌしたす。

bash
openclaw path set 'oc://config.jsonc/plugins/github/enabled' 'true' --dry-run

远蚘専甚 JSONL ログ内の䞀臎するレコヌドを怜玢したす。

bash
openclaw path find 'oc://session.jsonl/[event=tool_call]/name'

markdown 内の指瀺を、行番号ではなくセクションず項目で指定したす。

bash
openclaw path resolve 'oc://AGENTS.md/runtime-safety/openclaw-gateway'

スクリプトが読み取りたたは曞き蟌みを行う前に、CI たたは事前確認スクリプトでパスを怜蚌したす。

bash
openclaw path validate 'oc://AGENTS.md/tools/$last/risk'

これらのコマンドはシェルスクリプトぞコピヌできるこずを意図しおいたす。呌び出し元が構造化出力を必芁ずする堎合は --json を䜿い、人が結果を確認する堎合は --human を䜿いたす。

仕組み

openclaw path は 4 ぀のこずを行いたす。

  1. oc:// アドレスをスロットに解析したす。ファむル、セクション、項目、フィヌルド、および任意のセッションです。
  2. 察象の拡匵子.md、.jsonc、.jsonl、.yaml、.yml、.lobster、および関連する゚むリアスからファむル皮別アダプタヌを遞択したす。
  3. そのファむル皮別の AST に察しおスロットを解決したす。markdown の芋出し/項目、JSONC のオブゞェクトキヌ/配列むンデックス、JSONL の行レコヌド、たたは YAML のマップ/シヌケンスノヌドです。
  4. set では、同じアダプタヌを通じお線集埌のバむトを出力し、皮別が察応しおいる堎合は、未倉曎郚分のコメント、改行、近くのフォヌマットを保持したす。

resolve ず set は 1 ぀の具䜓的な察象を必芁ずしたす。find は探玢甚の動詞です。ワむルドカヌド、ナニオン、述語、序数を、曞き蟌み先ずしお 1 ぀を遞ぶ前に怜査できる具䜓的な䞀臎ぞ展開したす。

サブコマンド

サブコマンド 目的
resolve <oc-path> パス䞊の具䜓的な䞀臎を出力したすたたは「芋぀かりたせん」。
find <pattern> ワむルドカヌド / ナニオン / 述語パスの䞀臎を列挙したす。
set <oc-path> <value> 具䜓的なパスにリヌフたたは挿入察象を曞き蟌みたす。--dry-run に察応したす。
validate <oc-path> 解析のみ行い、構造分解ファむル / セクション / 項目 / フィヌルドを出力したす。
emit <file> parseXxx + emitXxx を通じおファむルをラりンドトリップしたすバむト忠実床蚺断。

グロヌバルフラグ

フラグ 目的
--cwd <dir> ファむルスロットをこのディレクトリに察しお解決したすデフォルト: process.cwd()。
--file <path> ファむルスロットの解決枈みパスを䞊曞きしたす絶察アクセス。
--json JSON 出力を匷制したすstdout が TTY でない堎合のデフォルト。
--human 人間向け出力を匷制したすstdout が TTY の堎合のデフォルト。
--dry-run set のみ曞き蟌たずに、曞き蟌たれる予定のバむトを出力したす。
--diff set --dry-run ず䜵甚完党なバむトではなく unified diff を出力したす。

oc:// 構文

Code
oc://FILE/SECTION/ITEM/FIELD?session=SCOPE

スロットの芏則: field には item が必芁で、item には section が必芁です。4 ぀のスロットすべおに共通したす。

  • 匕甚笊付きセグメント — "a/b.c" は / ず . 区切りを保持したす。 内容はバむトリテラルです。匕甚笊内では " ず \ は蚱可されたせん。 ファむルスロットも匕甚笊を認識したす。oc://"skills/email-drafter"/Tools/$last は skills/email-drafter を単䞀のファむルパスずしお扱いたす。
  • 述語 — [k=v]、[k!=v]、[k<v]、[k<=v]、[k>v]、 [k>=v]。数倀挔算では䞡蟺が有限数ぞ匷制倉換できる必芁がありたす。
  • ナニオン — {a,b,c} は代替候補のいずれにも䞀臎したす。
  • ワむルドカヌド — *単䞀サブセグメントず **れロ個以䞊、 再垰。find はこれらを受け付けたす。resolve ず set はあいたいなため拒吊したす。
  • 䜍眮指定 — $first / $last は最初 / 最埌のむンデックスたたは宣蚀枈みキヌぞ解決されたす。
  • 序数 — ドキュメント順で N 番目の䞀臎を衚す #N。
  • 挿入マヌカヌ — キヌ付き / むンデックス付き挿入のための +、+key、+nnn set ず䜵甚。
  • セッションスコヌプ — ?session=cron-daily など。スロットのネストずは盎亀したす。セッション倀は生の倀であり、パヌセントデコヌドされたせん。制埡文字たたは予玄枈みク゚リ区切り文字?、&、%を含めるこずはできたせん。

匕甚笊付き、述語、ナニオンのセグメント倖にある予玄文字?、&、%は拒吊されたす。制埡文字U+0000-U+001F、U+007Fは、session ク゚リ倀を含め、どこにあっおも拒吊されたす。

正芏パスでは formatOcPath(parseOcPath(path)) === path が保蚌されたす。非正芏のク゚リパラメヌタヌは、最初の空でない session= 倀を陀いお無芖されたす。

ファむル皮別ごずのアドレス指定

皮別 アドレス指定モデル
Markdown slug による H2 セクション、slug たたは #N による箇条曞き項目、[frontmatter] による frontmatter。
JSONC/JSON オブゞェクトキヌず配列むンデックス。匕甚笊付きでない限り、ドットはネストしたサブセグメントを分割したす。
JSONL 最䞊䜍の行アドレスL1、L2、$first、$lastに続き、行内で JSONC 圢匏の降䞋を行いたす。
YAML/YML/.lobster マップキヌずシヌケンスむンデックス。コメントずフロヌスタむルは YAML document API によっお扱われたす。

resolve は構造化された䞀臎を返したす。root、node、leaf、たたは insertion-point で、1 始たりの行番号が付きたす。リヌフ倀はテキストず leafType ずしお衚出されるため、Plugin 䜜者は皮別ごずの AST 圢状に䟝存せずにプレビュヌを描画できたす。

ミュヌテヌション契玄

set は 1 ぀の具䜓的な察象を曞き蟌みたす。

  • Markdown の frontmatter 倀ず - key: value 項目フィヌルドは文字列リヌフです。 Markdown 挿入は、セクション、frontmatter キヌ、たたはセクション項目を远加し、倉曎埌ファむルに察しお正芏の markdown 圢状を描画したす。
  • JSONC リヌフ曞き蟌みは、文字列倀を既存リヌフ型string、有限の number、true/false、たたは nullぞ匷制倉換したす。JSONC/JSON/JSONL リヌフ眮換で <value> を JSON ずしお解析し、文字列の SecretRef 省略圢をオブゞェクトに眮き換えるように圢状が倉わる可胜性がある堎合は、--value-json を䜿甚したす。JSONC オブゞェクトず配列の挿入は <value> を JSON ずしお解析し、通垞のリヌフ曞き蟌みには jsonc-parser の線集パスを䜿甚しお、コメントず近くのフォヌマットを保持したす。
  • JSONL リヌフ曞き蟌みは、行内で JSONC ず同様に匷制倉換したす。行党䜓の眮換ず远加は <value> を JSON ずしお解析したす。描画された JSONL は、ファむルの支配的な LF/CRLF 改行芏玄を保持したす。
  • YAML リヌフ曞き蟌みは、既存のスカラヌ型string、有限の number、true/false、たたは nullぞ匷制倉換したす。YAML 挿入は、バンドルされた yaml パッケヌゞの document API を䜿甚しおマップ/シヌケンスを曎新したす。パヌサヌ゚ラヌのある䞍正な YAML ドキュメントは、ミュヌテヌション前に parse-error で拒吊されたす。

正確なバむトが重芁なナヌザヌ可芖の曞き蟌み前には --dry-run を䜿甚しおください。この基盀は、parse/emit ラりンドトリップではバむト同䞀の出力を保持したすが、ミュヌテヌションでは皮別に応じお線集領域たたはファむルが正芏化される堎合がありたす。 完党に描画されたファむルではなく、焊点を絞った before/after パッチずしおプレビュヌしたい堎合は --diff を远加したす。

䟋

bash
# Validate a path (no filesystem access)openclaw path validate 'oc://AGENTS.md/Tools/$last/risk' # Read a leafopenclaw path resolve 'oc://gateway.jsonc/version' # Wildcard searchopenclaw path find 'oc://session.jsonl/*/event' --file ./logs/session.jsonl # Dry-run a writeopenclaw path set 'oc://gateway.jsonc/version' '2.0' --dry-run # Dry-run a write as a unified diffopenclaw path set 'oc://gateway.jsonc/version' '2.0' --dry-run --diff # Apply the writeopenclaw path set 'oc://gateway.jsonc/version' '2.0' # Byte-fidelity round-trip (diagnostic)openclaw path emit ./AGENTS.md

その他の文法䟋:

bash
# Quote keys containing / or .openclaw path resolve 'oc://config.jsonc/agents.defaults.models/"anthropic/claude-opus-4-7"/alias' # Deep JSON/JSONC paths can use slash segments; they normalize to dotted subsegmentsopenclaw path set 'oc://openclaw.json/agents/list/0/tools/exec/security' 'allowlist' --dry-run # Replace a JSONC leaf with a parsed objectopenclaw path set 'oc://openclaw.json/gateway/auth/token' '{"source":"file","provider":"secrets","id":"/test"}' --value-json --dry-run # Predicate search over JSONC childrenopenclaw path find 'oc://config.jsonc/plugins/[enabled=true]/id' # Insert into a JSONC arrayopenclaw path set 'oc://config.jsonc/items/+1' '{"id":"new","enabled":true}' --dry-run # Insert a JSONC object keyopenclaw path set 'oc://config.jsonc/plugins/+github' '{"enabled":true}' --dry-run # Append a JSONL eventopenclaw path set 'oc://session.jsonl/+' '{"event":"checkpoint","ok":true}' --file ./logs/session.jsonl # Resolve the last JSONL value lineopenclaw path resolve 'oc://session.jsonl/$last/event' --file ./logs/session.jsonl # Resolve a YAML workflow stepopenclaw path resolve 'oc://workflow.yaml/steps/0/id' # Update a YAML scalaropenclaw path set 'oc://workflow.yaml/steps/$last/id' 'classify-renamed' --dry-run # Address markdown frontmatteropenclaw path resolve 'oc://AGENTS.md/[frontmatter]/name' # Insert markdown frontmatteropenclaw path set 'oc://AGENTS.md/[frontmatter]/+description' 'Agent instructions' --dry-run # Find markdown item fieldsopenclaw path find 'oc://SKILL.md/Tools/*/send_email' # Validate a session-scoped pathopenclaw path validate 'oc://AGENTS.md/Tools/$last/risk?session=cron-daily'

ファむル皮別ごずのレシピ

同じ 5 ぀の動詞が皮別をたたいで機胜したす。アドレス指定スキヌムはファむル拡匵子に基づいお振り分けたす。以䞋の䟋では、PR 説明のフィクスチャを䜿甚したす。

Markdown

text
<!-- frontmatter.md -->---name: drafterdescription: email drafting agenttier: core---## Tools- gh: GitHub CLI- curl: HTTP client- send_email: enabled
bash
$ openclaw path resolve 'oc://x.md/[frontmatter]/tier' --file frontmatter.md --humanleaf @ L4: "core" (string) $ openclaw path resolve 'oc://x.md/tools/gh/gh' --file frontmatter.md --humanleaf @ L9: "GitHub CLI" (string) $ openclaw path find 'oc://x.md/tools/*' --file frontmatter.md --human3 matches for oc://x.md/tools/*:  oc://x.md/tools/gh           →  node @ L9 [md-item]  oc://x.md/tools/curl         →  node @ L10 [md-item]  oc://x.md/tools/send-email   →  node @ L11 [md-item]

[frontmatter] 述語は YAML frontmatter ブロックを指定したす。tools はスラッグを介しお ## Tools 芋出しに䞀臎し、項目のリヌフは、゜ヌスでアンダヌスコアが䜿われおいる堎合でもスラッグ圢匏を維持したすsend_email → send-email。

JSONC

text
// config.jsonc{  "plugins": {    "github": {"enabled": true, "role": "vcs"},    "slack":  {"enabled": false, "role": "chat"}  }}
bash
$ openclaw path resolve 'oc://config.jsonc/plugins/github/enabled' --file config.jsonc --humanleaf @ L4: "true" (boolean) $ openclaw path set 'oc://config.jsonc/plugins/slack/enabled' 'true' --file config.jsonc --dry-run--dry-run: would write 142 bytes to /
/config.jsonc{  "plugins": {    "github": {"enabled": true, "role": "vcs"},    "slack":  {"enabled": true, "role": "chat"}  }}

JSONC の線集は jsonc-parser を通るため、コメントず空癜は set 埌も維持されたす。コミットする前にバむト列を確認するには、たず --dry-run 付きで実行しおください。

JSONL

text
{"event":"start","userId":"u1","ts":1}{"event":"action","userId":"u1","ts":2}{"event":"end","userId":"u1","ts":3}
bash
$ openclaw path find 'oc://session.jsonl/[event=action]/userId' --file session.jsonl --human1 match for oc://session.jsonl/[event=action]/userId:  oc://session.jsonl/L2/userId  →  leaf @ L2: "u1" (string) $ openclaw path resolve 'oc://session.jsonl/L2/ts' --file session.jsonl --humanleaf @ L2: "2" (number)

各行は 1 ぀のレコヌドです。行番号がわからない堎合は述語[event=action]で指定し、わかっおいる堎合は正芏の LN セグメントで指定したす。

YAML

text
# workflow.yamlname: inbox-triagesteps:  - id: fetch    command: gmail.search  - id: classify    command: openclaw.invoke
bash
$ openclaw path resolve 'oc://workflow.yaml/steps/0/id' --file workflow.yaml --humanleaf @ L3: "fetch" (string) $ openclaw path set 'oc://workflow.yaml/steps/$last/id' 'classify-renamed' --file workflow.yaml --dry-run--dry-run: would write 99 bytes to /
/workflow.yamlname: inbox-triagesteps:  - id: fetch    command: gmail.search  - id: classify-renamed    command: openclaw.invoke

YAML は手補のパヌサヌではなく yaml パッケヌゞの Document API を䜿甚したす。そのため、通垞の parse/emit ラりンドトリップではコメントず䜜成時の圢が維持され、解決枈みパスでは JSONC ず同じマップキヌ / シヌケンスむンデックスモデルが䜿甚されたす。同じアダプタヌが .yaml、.yml、.lobster ファむルを扱いたす。

サブコマンドリファレンス

resolve <oc-path>

単䞀のリヌフたたはノヌドを読み取りたす。ワむルドカヌドは拒吊されたす。それらには find を䜿甚しおください。䞀臎した堎合は 0、クリヌンな未䞀臎では 1、パヌス゚ラヌたたは拒吊されたパタヌンでは 2 で終了したす。

bash
openclaw path resolve 'oc://AGENTS.md/tools/gh/risk' --humanopenclaw path resolve 'oc://gateway.jsonc/server/port' --json

find <pattern>

ワむルドカヌド / 述語 / ナニオンパタヌンに䞀臎するすべおの項目を列挙したす。少なくずも 1 件䞀臎した堎合は 0、0 件の堎合は 1 で終了したす。ファむルスロットのワむルドカヌドは OC_PATH_FILE_WILDCARD_UNSUPPORTED で拒吊されたす。具䜓的なファむルを枡しおください耇数ファむルのグロブは今埌の機胜です。

bash
openclaw path find 'oc://AGENTS.md/tools/**/risk'openclaw path find 'oc://session.jsonl/[event=action]/userId'openclaw path find 'oc://config.jsonc/plugins/{github,slack}/enabled'

set <oc-path> <value>

リヌフを曞き蟌みたす。--dry-run ず組み合わせるず、ファむルに觊れずに曞き蟌たれるバむト列をプレビュヌできたす。統合 diff プレビュヌには --diff を远加したす。曞き蟌みが成功した堎合は 0、基盀が拒吊した堎合たずえばセンチネルガヌドに圓たった堎合は 1、パヌス゚ラヌでは 2 で終了したす。

bash
openclaw path set 'oc://gateway.jsonc/version' '2.0' --dry-runopenclaw path set 'oc://gateway.jsonc/version' '2.0' --dry-run --diffopenclaw path set 'oc://gateway.jsonc/version' '2.0'openclaw path set 'oc://AGENTS.md/Tools/+gh/risk' 'low'

+key 挿入マヌカヌは、ただ存圚しない堎合に指定名の子を䜜成したす。+nnn ず裞の + は、それぞれむンデックス指定の挿入ず末尟远加の挿入に機胜したす。

validate <oc-path>

パヌスのみのチェックです。ファむルシステムにはアクセスしたせん。倉数を代入する前にテンプレヌトパスが敎圢匏であるこずを確認したい堎合や、デバッグ甚に構造の内蚳を確認したい堎合に䟿利です。

bash
$ openclaw path validate 'oc://AGENTS.md/tools/gh' --humanvalid: oc://AGENTS.md/tools/gh  file:    AGENTS.md  section: tools  item:    gh

有効な堎合は 0、無効な堎合は 1構造化された code ず message 付き、匕数゚ラヌでは 2 で終了したす。

emit <file>

皮別ごずのパヌサヌず゚ミッタヌを通しおファむルをラりンドトリップしたす。正垞なファむルでは、出力は入力ずバむト単䜍で䞀臎するはずです。差異がある堎合は、パヌサヌのバグたたはセンチネルぞのヒットを瀺したす。実際の入力に察する基盀の動䜜をデバッグする際に䟿利です。

bash
openclaw path emit ./AGENTS.mdopenclaw path emit ./gateway.jsonc --json

終了コヌド

コヌド 意味
0 成功。 resolve / find: 少なくずも 1 件䞀臎。set: 曞き蟌み成功。
1 䞀臎なし、たたは set が基盀に拒吊されたシステムレベルの゚ラヌなし。
2 匕数たたはパヌス゚ラヌ。

出力モヌド

openclaw path は TTY を認識したす。端末では人間向けの出力になり、stdout がパむプたたはリダむレクトされおいる堎合は JSON になりたす。--json ず --human は自動怜出を䞊曞きしたす。

泚蚘

  • set は基盀の emit パスを通しおバむト列を曞き蟌み、その過皋で redaction-sentinel ガヌドが自動的に適甚されたす。__OPENCLAW_REDACTED__ をそのたた、たたは郚分文字列ずしお含むリヌフは、曞き蟌み時に拒吊されたす。
  • JSONC のパヌスずリヌフ線集は Plugin ロヌカルの jsonc-parser 䟝存関係を䜿甚するため、通垞のリヌフ曞き蟌みでは、手補のパヌサヌ / 再レンダリング経路を通らずにコメントずフォヌマットが維持されたす。
  • path は LKG を認識したせん。ファむルが LKG で远跡されおいる堎合、次の observe 呌び出しが promote / recover するかどうかを決定したす。LKG-recovery 基盀ず䞊行しお、LKG の promote/recover ラむフサむクルを通したアトミックな耇数 set 甚の set --batch が蚈画されおいたす。

関連

Was this useful?
On this page

On this page