CLI commands
การกำหนดค่า
ตัวช่วยการกำหนดค่าสำหรับการแก้ไขแบบไม่โต้ตอบใน OmeniaClaw.json: get/set/patch/unset/file/schema/validate ค่าตามพาธ และแสดงไฟล์ config ที่ใช้งานอยู่ เรียกใช้โดยไม่มีคำสั่งย่อยเพื่อเปิดตัวช่วยกำหนดค่า (เหมือนกับ OmeniaClaw configure)
ตัวเลือกระดับราก
OmeniaClaw_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc2VjdGlvbiA8c2VjdGlvbg
" type="string">
ตัวกรองส่วนของการตั้งค่าแบบมีคำแนะนำที่ระบุซ้ำได้ เมื่อคุณเรียกใช้ OmeniaClaw config โดยไม่มีคำสั่งย่อย
ส่วนแบบมีคำแนะนำที่รองรับ: workspace, model, web, gateway, daemon, channels, plugins, skills, health
ตัวอย่าง
OmeniaClaw config fileOmeniaClaw config --section modelOmeniaClaw config --section gateway --section daemonOmeniaClaw config schemaOmeniaClaw config get browser.executablePathOmeniaClaw config set browser.executablePath "/usr/bin/google-chrome"OmeniaClaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"OmeniaClaw config set agents.defaults.heartbeat.every "2h"OmeniaClaw config set agents.list[0].tools.exec.node "node-id-or-name"OmeniaClaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeOmeniaClaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKENOmeniaClaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/OmeniaClaw/secrets.json --provider-mode jsonOmeniaClaw config patch --file ./OmeniaClaw.patch.json5 --dry-runOmeniaClaw config unset plugins.entries.brave.config.webSearch.apiKeyOmeniaClaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-runOmeniaClaw config validateOmeniaClaw config validate --jsonconfig schema
แสดง JSON schema ที่สร้างขึ้นสำหรับ OmeniaClaw.json ไปยัง stdout เป็น JSON
สิ่งที่รวมอยู่
- สคีมา config ระดับรากปัจจุบัน พร้อมฟิลด์สตริง
$schemaระดับรากสำหรับเครื่องมือแก้ไข - เมตาดาทาเอกสาร
titleและdescriptionของฟิลด์ที่ Control UI ใช้ - โหนดออบเจ็กต์ซ้อน, wildcard (
*) และรายการอาร์เรย์ ([]) จะสืบทอดเมตาดาทาtitle/descriptionเดียวกันเมื่อมีเอกสารฟิลด์ที่ตรงกัน - สาขา
anyOf/oneOf/allOfจะสืบทอดเมตาดาทาเอกสารเดียวกันด้วยเมื่อมีเอกสารฟิลด์ที่ตรงกัน - เมตาดาทาสคีมาของ Plugin + ช่องทางแบบสดเท่าที่ทำได้ เมื่อสามารถโหลด manifest ของ runtime ได้
- สคีมาสำรองที่สะอาด แม้ config ปัจจุบันจะไม่ถูกต้อง
RPC ของ runtime ที่เกี่ยวข้อง
config.schema.lookup คืนพาธ config ที่ทำให้เป็นรูปแบบมาตรฐานแล้วหนึ่งพาธ พร้อมโหนดสคีมาแบบตื้น (title, description, type, enum, const, ขอบเขตทั่วไป), เมตาดาทาคำใบ้ UI ที่ตรงกัน และสรุปลูกโดยตรง ใช้สำหรับการเจาะลึกแบบจำกัดตามพาธใน Control UI หรือไคลเอนต์กำหนดเอง
OmeniaClaw config schemaส่งผ่าน pipe ไปยังไฟล์เมื่อคุณต้องการตรวจสอบหรือตรวจสอบความถูกต้องด้วยเครื่องมืออื่น:
OmeniaClaw config schema > OmeniaClaw.schema.jsonพาธ
พาธใช้รูปแบบ dot หรือ bracket:
OmeniaClaw config get agents.defaults.workspaceOmeniaClaw config get agents.list[0].idใช้ดัชนีรายการเอเจนต์เพื่อเจาะจงเอเจนต์ตัวใดตัวหนึ่ง:
OmeniaClaw config get agents.listOmeniaClaw config set agents.list[1].tools.exec.node "node-id-or-name"ค่า
ค่าจะถูกแยกวิเคราะห์เป็น JSON5 เมื่อทำได้ มิฉะนั้นจะถือว่าเป็นสตริง ใช้ --strict-json เพื่อบังคับให้ต้องแยกวิเคราะห์ JSON5 --json ยังรองรับอยู่ในฐานะนามแฝงแบบเดิม
OmeniaClaw config set agents.defaults.heartbeat.every "0m"OmeniaClaw config set gateway.port 19001 --strict-jsonOmeniaClaw config set channels.whatsapp.groups '["*"]' --strict-jsonconfig get <path> --json แสดงค่าดิบเป็น JSON แทนข้อความที่จัดรูปแบบสำหรับเทอร์มินัล
ใช้ --merge เมื่อเพิ่มรายการลงใน map เหล่านั้น:
OmeniaClaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeOmeniaClaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Llama 3.2"}]' --strict-json --mergeใช้ --replace เฉพาะเมื่อคุณตั้งใจให้ค่าที่ระบุกลายเป็นค่าเป้าหมายทั้งหมด
โหมดของ config set
OmeniaClaw config set รองรับรูปแบบการกำหนดค่าสี่แบบ:
โหมดค่า
OmeniaClaw config set <path> <value>โหมดตัวสร้าง SecretRef
OmeniaClaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKENโหมดตัวสร้างผู้ให้บริการ
โหมดตัวสร้างผู้ให้บริการเจาะจงเฉพาะพาธ secrets.providers.<alias> เท่านั้น:
OmeniaClaw config set secrets.providers.vault \ --provider-source exec \ --provider-command /usr/local/bin/OmeniaClaw-vault \ --provider-arg read \ --provider-arg openai/api-key \ --provider-timeout-ms 5000โหมดแบตช์
OmeniaClaw config set --batch-json '[ { "path": "secrets.providers.default", "provider": { "source": "env" } }, { "path": "channels.discord.token", "ref": { "source": "env", "provider": "default", "id": "DISCORD_BOT_TOKEN" } }]'OmeniaClaw config set --batch-file ./config-set.batch.json --dry-runการแยกวิเคราะห์แบบแบตช์จะใช้ payload แบตช์ (--batch-json/--batch-file) เป็นแหล่งข้อมูลอ้างอิงหลักเสมอ --strict-json / --json ไม่เปลี่ยนพฤติกรรมการแยกวิเคราะห์แบบแบตช์
config patch
ใช้ config patch เมื่อคุณต้องการวางหรือ pipe แพตช์ที่มีโครงสร้างแบบ config แทนการเรียกใช้คำสั่ง config set แบบอิงพาธจำนวนมาก อินพุตเป็นออบเจ็กต์ JSON5 ออบเจ็กต์จะ merge แบบ recursive ส่วนอาร์เรย์และค่าสเกลาร์จะแทนที่ค่าเป้าหมาย และ null จะลบพาธเป้าหมาย
OmeniaClaw config patch --file ./OmeniaClaw.patch.json5 --dry-runOmeniaClaw config patch --file ./OmeniaClaw.patch.json5คุณยังสามารถ pipe แพตช์ผ่าน stdin ได้ ซึ่งมีประโยชน์สำหรับสคริปต์ตั้งค่าระยะไกล:
ssh OmeniaClaw-host 'OmeniaClaw config patch --stdin --dry-run' < ./OmeniaClaw.patch.json5ssh OmeniaClaw-host 'OmeniaClaw config patch --stdin' < ./OmeniaClaw.patch.json5ตัวอย่างแพตช์:
{ channels: { slack: { enabled: true, mode: "socket", botToken: { source: "env", provider: "default", id: "SLACK_BOT_TOKEN" }, appToken: { source: "env", provider: "default", id: "SLACK_APP_TOKEN" }, groupPolicy: "open", requireMention: false, }, discord: { enabled: true, token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" }, dmPolicy: "disabled", dm: { enabled: false }, groupPolicy: "allowlist", }, }, agents: { defaults: { model: { primary: "openai/gpt-5.5" }, models: { "openai/gpt-5.5": { params: { fastMode: true } }, }, }, },}ใช้ --replace-path <path> เมื่อออบเจ็กต์หรืออาร์เรย์หนึ่งต้องกลายเป็นค่าที่ระบุแบบตรงทั้งหมด แทนที่จะถูกแพตช์แบบ recursive:
OmeniaClaw config patch --file ./discord.patch.json5 --replace-path 'channels.discord.guilds["123"].channels'--dry-run รันการตรวจสอบสคีมาและการตรวจสอบว่า SecretRef สามารถ resolve ได้โดยไม่เขียนข้อมูล SecretRef ที่อิง exec จะถูกข้ามโดยค่าเริ่มต้นระหว่างการรันแบบทดลอง เพิ่ม --allow-exec เมื่อคุณตั้งใจให้การรันแบบทดลองเรียกใช้คำสั่งของผู้ให้บริการ
โหมดพาธ/ค่าแบบ JSON ยังคงรองรับทั้ง SecretRef และผู้ให้บริการ:
OmeniaClaw config set channels.discord.token \ '{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}' \ --strict-json OmeniaClaw config set secrets.providers.vaultfile \ '{"source":"file","path":"/etc/OmeniaClaw/secrets.json","mode":"json"}' \ --strict-jsonแฟล็กของตัวสร้างผู้ให้บริการ
เป้าหมายของตัวสร้างผู้ให้บริการต้องใช้ secrets.providers.<alias> เป็นพาธ
แฟล็กทั่วไป
--provider-source <env|file|exec>--provider-timeout-ms <ms>(file,exec)
ผู้ให้บริการ env (--provider-source env)
--provider-allowlist <ENV_VAR>(ระบุซ้ำได้)
ผู้ให้บริการไฟล์ (--provider-source file)
--provider-path <path>(จำเป็น)--provider-mode <singleValue|json>--provider-max-bytes <bytes>--provider-allow-insecure-path
ผู้ให้บริการ exec (--provider-source exec)
--provider-command <path>(จำเป็น)--provider-arg <arg>(ระบุซ้ำได้)--provider-no-output-timeout-ms <ms>--provider-max-output-bytes <bytes>--provider-json-only--provider-env <KEY=VALUE>(ระบุซ้ำได้)--provider-pass-env <ENV_VAR>(ระบุซ้ำได้)--provider-trusted-dir <path>(ระบุซ้ำได้)--provider-allow-insecure-path--provider-allow-symlink-command
ตัวอย่างผู้ให้บริการ exec ที่เสริมความปลอดภัย:
OmeniaClaw config set secrets.providers.vault \ --provider-source exec \ --provider-command /usr/local/bin/OmeniaClaw-vault \ --provider-arg read \ --provider-arg openai/api-key \ --provider-json-only \ --provider-pass-env VAULT_TOKEN \ --provider-trusted-dir /usr/local/bin \ --provider-timeout-ms 5000การรันแบบทดลอง
ใช้ --dry-run เพื่อตรวจสอบความถูกต้องของการเปลี่ยนแปลงโดยไม่เขียน OmeniaClaw.json
OmeniaClaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKEN \ --dry-run OmeniaClaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKEN \ --dry-run \ --json OmeniaClaw config set channels.discord.token \ --ref-provider vault \ --ref-source exec \ --ref-id discord/token \ --dry-run \ --allow-execพฤติกรรมของการรันแบบทดลอง
- โหมดตัวสร้าง: รันการตรวจสอบว่า SecretRef สามารถ resolve ได้สำหรับ refs/providers ที่เปลี่ยน
- โหมด JSON (
--strict-json,--jsonหรือโหมดแบตช์): รันการตรวจสอบสคีมา พร้อมการตรวจสอบว่า SecretRef สามารถ resolve ได้ - การตรวจสอบนโยบายจะรันสำหรับพื้นผิวเป้าหมาย SecretRef ที่ทราบว่าไม่รองรับด้วย
- การตรวจสอบนโยบายจะประเมิน config ทั้งหมดหลังการเปลี่ยนแปลง ดังนั้นการเขียนออบเจ็กต์แม่ (เช่น การตั้งค่า
hooksเป็นออบเจ็กต์) จึงไม่สามารถเลี่ยงการตรวจสอบพื้นผิวที่ไม่รองรับได้ - การตรวจสอบ SecretRef แบบ exec จะถูกข้ามโดยค่าเริ่มต้นระหว่างการรันแบบทดลองเพื่อหลีกเลี่ยงผลข้างเคียงของคำสั่ง
- ใช้
--allow-execร่วมกับ--dry-runเพื่อเลือกเปิดใช้การตรวจสอบ SecretRef แบบ exec (อาจเรียกใช้คำสั่งของผู้ให้บริการ) --allow-execใช้ได้เฉพาะการรันแบบทดลองเท่านั้น และจะเกิดข้อผิดพลาดหากใช้โดยไม่มี--dry-run
ฟิลด์ของ --dry-run --json
--dry-run --json แสดงรายงานที่เครื่องอ่านได้:
ok: ระบุว่าการทดลองรันผ่านหรือไม่operations: จำนวนการกำหนดค่าที่ประเมินchecks: ระบุว่ามีการตรวจสอบสคีมา/การ resolve หรือไม่checks.resolvabilityComplete: ระบุว่าการตรวจสอบการ resolve ทำงานจนเสร็จสมบูรณ์หรือไม่ (เป็น false เมื่อข้าม refs แบบ exec)refsChecked: จำนวน refs ที่ resolve จริงระหว่างการทดลองรันskippedExecRefs: จำนวน refs แบบ exec ที่ข้ามเพราะไม่ได้ตั้งค่า--allow-execerrors: ความล้มเหลวของสคีมา/การ resolve แบบมีโครงสร้างเมื่อok=false
รูปแบบเอาต์พุต JSON
{ ok: boolean, operations: number, configPath: string, inputModes: ["value" | "json" | "builder", ...], checks: { schema: boolean, resolvability: boolean, resolvabilityComplete: boolean, }, refsChecked: number, skippedExecRefs: number, errors?: [ { kind: "schema" | "resolvability", message: string, ref?: string, // present for resolvability errors }, ],}ตัวอย่างสำเร็จ
{ "ok": true, "operations": 1, "configPath": "~/.OmeniaClaw/OmeniaClaw.json", "inputModes": ["builder"], "checks": { "schema": false, "resolvability": true, "resolvabilityComplete": true }, "refsChecked": 1, "skippedExecRefs": 0}ตัวอย่างล้มเหลว
{ "ok": false, "operations": 1, "configPath": "~/.OmeniaClaw/OmeniaClaw.json", "inputModes": ["builder"], "checks": { "schema": false, "resolvability": true, "resolvabilityComplete": true }, "refsChecked": 1, "skippedExecRefs": 0, "errors": [ { "kind": "resolvability", "message": "Error: Environment variable \"MISSING_TEST_SECRET\" is not set.", "ref": "env:default:MISSING_TEST_SECRET" } ]}หากการทดลองรันล้มเหลว
config schema validation failed: รูปแบบคอนฟิกหลังการเปลี่ยนแปลงของคุณไม่ถูกต้อง ให้แก้พาธ/ค่า หรือรูปแบบออบเจ็กต์ provider/refConfig policy validation failed: unsupported SecretRef usage: ย้าย credential นั้นกลับไปเป็นอินพุตแบบข้อความธรรมดา/string และใช้ SecretRefs เฉพาะบนพื้นผิวที่รองรับเท่านั้นSecretRef assignment(s) could not be resolved: provider/ref ที่อ้างอิงอยู่ไม่สามารถ resolve ได้ในขณะนี้ (env var หายไป, ตัวชี้ไฟล์ไม่ถูกต้อง, provider แบบ exec ล้มเหลว หรือ provider/source ไม่ตรงกัน)Dry run note: skipped <n> exec SecretRef resolvability check(s): การทดลองรันข้าม refs แบบ exec ให้รันซ้ำพร้อม--allow-execหากคุณต้องตรวจสอบการ resolve แบบ exec- สำหรับโหมด batch ให้แก้รายการที่ล้มเหลวแล้วรัน
--dry-runอีกครั้งก่อนเขียน
ความปลอดภัยในการเขียน
OmeniaClaw config set และตัวเขียนคอนฟิกอื่นที่ OmeniaClaw เป็นเจ้าของจะตรวจสอบคอนฟิกเต็มรูปแบบหลังการเปลี่ยนแปลงก่อนบันทึกลงดิสก์ หาก payload ใหม่ไม่ผ่านการตรวจสอบสคีมาหรือดูเหมือนเป็นการเขียนทับที่ทำลายข้อมูล คอนฟิกที่ใช้งานอยู่จะถูกปล่อยไว้เหมือนเดิม และ payload ที่ถูกปฏิเสธจะถูกบันทึกไว้ข้างกันเป็น OmeniaClaw.json.rejected.*
ควรใช้ CLI เขียนสำหรับการแก้ไขขนาดเล็ก:
OmeniaClaw config set gateway.reload.mode hybrid --dry-runOmeniaClaw config set gateway.reload.mode hybridOmeniaClaw config validateหากการเขียนถูกปฏิเสธ ให้ตรวจสอบ payload ที่บันทึกไว้และแก้รูปแบบคอนฟิกทั้งหมด:
CONFIG="$(OmeniaClaw config file)"ls -lt "$CONFIG".rejected.* 2>/dev/null | headOmeniaClaw config validateยังอนุญาตให้เขียนโดยตรงด้วย editor ได้ แต่ Gateway ที่กำลังทำงานจะถือว่าไม่เชื่อถือจนกว่าจะตรวจสอบผ่าน การแก้ไขโดยตรงที่ไม่ถูกต้องจะทำให้การเริ่มต้นล้มเหลวหรือถูกข้ามโดย hot reload; Gateway จะไม่เขียน OmeniaClaw.json ใหม่ รัน OmeniaClaw doctor --fix เพื่อซ่อมคอนฟิกที่มี prefix/ถูกเขียนทับ หรือกู้คืนสำเนาที่ทราบว่าดีล่าสุด ดู การแก้ปัญหา Gateway
การกู้คืนทั้งไฟล์สงวนไว้สำหรับการซ่อมด้วย doctor การเปลี่ยนแปลงสคีมาของ Plugin หรือความคลาดเคลื่อนของ minHostVersion จะยังแสดงข้อผิดพลาดอย่างชัดเจนแทนที่จะย้อนกลับการตั้งค่าของผู้ใช้ที่ไม่เกี่ยวข้อง เช่น models, providers, auth profiles, channels, gateway exposure, tools, memory, browser หรือ cron config
คำสั่งย่อย
config file: พิมพ์พาธไฟล์คอนฟิกที่ใช้งานอยู่ (resolve จากOmeniaClaw_CONFIG_PATHหรือตำแหน่งเริ่มต้น) พาธควรระบุไฟล์ปกติ ไม่ใช่ symlink
รีสตาร์ท gateway หลังการแก้ไข
ตรวจสอบ
ตรวจสอบคอนฟิกปัจจุบันกับสคีมาที่ใช้งานอยู่โดยไม่เริ่ม gateway
OmeniaClaw config validateOmeniaClaw config validate --jsonหลังจาก OmeniaClaw config validate ผ่านแล้ว คุณสามารถใช้ TUI ภายในเครื่องเพื่อให้เอเจนต์แบบฝังตัวเปรียบเทียบคอนฟิกที่ใช้งานอยู่กับเอกสาร ขณะที่คุณตรวจสอบแต่ละการเปลี่ยนแปลงจากเทอร์มินัลเดียวกัน:
OmeniaClaw chatจากนั้นภายใน TUI:
!OmeniaClaw config file!OmeniaClaw docs gateway auth token secretref!OmeniaClaw config validate!OmeniaClaw doctorลูปการซ่อมทั่วไป:
เปรียบเทียบกับเอกสาร
ขอให้เอเจนต์เปรียบเทียบคอนฟิกปัจจุบันของคุณกับหน้าเอกสารที่เกี่ยวข้อง และแนะนำการแก้ไขที่เล็กที่สุด
ใช้การแก้ไขแบบเจาะจง
ใช้การแก้ไขแบบเจาะจงด้วย OmeniaClaw config set หรือ OmeniaClaw configure
ตรวจสอบซ้ำ
รัน OmeniaClaw config validate อีกครั้งหลังการเปลี่ยนแปลงแต่ละครั้ง
ใช้ doctor สำหรับปัญหารันไทม์
หากการตรวจสอบผ่านแต่รันไทม์ยังไม่สมบูรณ์ ให้รัน OmeniaClaw doctor หรือ OmeniaClaw doctor --fix เพื่อรับความช่วยเหลือด้าน migration และการซ่อม