{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-config",
    "name": "Openclaw Config",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/caopulan/openclaw-config",
    "canonicalUrl": "https://clawhub.ai/caopulan/openclaw-config",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-config",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-config",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "agents/openai.yaml",
      "references/openclaw-config-fields.md",
      "references/schema-sources.md",
      "scripts/openclaw-config-check.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-config"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/openclaw-config",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-config/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-config/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-config/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Overview",
        "body": "Safely edit ~/.openclaw/openclaw.json (or the path set by OPENCLAW_CONFIG_PATH) using a schema-first workflow. Validate before and after changes to avoid invalid keys/types that can break startup or change security behavior."
      },
      {
        "title": "Workflow (Safe Edit)",
        "body": "Identify the active config path\n\nPrecedence: OPENCLAW_CONFIG_PATH > OPENCLAW_STATE_DIR/openclaw.json > ~/.openclaw/openclaw.json\nThe config file is JSON5 (comments + trailing commas allowed).\n\nGet an authoritative schema (do not guess keys)\n\nIf the Gateway is running: use openclaw gateway call config.schema --params '{}' to fetch a JSON Schema matching the running version.\nOtherwise: use openclaw/openclaw source-of-truth, primarily:\n\nsrc/config/zod-schema.ts (OpenClawSchema root keys like gateway/skills/plugins)\nsrc/config/zod-schema.*.ts (submodules: channels/providers/models/agents/tools)\ndocs/gateway/configuration.md (repo docs + examples)\n\nApply changes with the smallest safe surface\n\nPrefer small edits: openclaw config get|set|unset (dot path or bracket notation).\nIf the Gateway is online and you want \"write + validate + restart\" in one step: use RPC config.patch (merge patch) or config.apply (replaces the entire config; use carefully).\nFor complex setups, split config with $include (see below).\n\nValidate strictly\n\nRun openclaw doctor, then fix issues using the reported path + message.\nDo not run openclaw doctor --fix/--yes without explicit user consent (it writes to config/state files)."
      },
      {
        "title": "Guardrails (Avoid Schema Bugs)",
        "body": "Most objects are strict (.strict()): unknown keys usually fail validation and the Gateway will refuse to start.\nchannels is .passthrough(): extension channels (matrix/zalo/nostr, etc.) can add custom keys, but most provider configs remain strict.\nenv is .catchall(z.string()): you can put string env vars directly under env, and you can also use env.vars.\nSecrets: prefer environment variables/credential files. Avoid committing long-lived tokens/API keys into openclaw.json."
      },
      {
        "title": "$include (Modular Config)",
        "body": "$include is resolved before schema validation and lets you split config across JSON5 files:\n\nSupports \"$include\": \"./base.json5\" or \"$include\": [\"./a.json5\", \"./b.json5\"]\nRelative paths are resolved against the directory of the current config file.\nDeep-merge rules (per implementation):\n\nobjects: merge recursively\narrays: concatenate (not replace)\nprimitives: later value wins\n\n\nIf sibling keys exist alongside $include, sibling keys override included values.\nLimits: max depth 10; circular includes are detected and rejected."
      },
      {
        "title": "Common Recipes (Examples)",
        "body": "Set default workspace\n\nopenclaw config set agents.defaults.workspace '\"~/.openclaw/workspace\"' --json\nopenclaw doctor\n\nChange Gateway port\n\nopenclaw config set gateway.port 18789 --json\nopenclaw doctor\n\nSplit config (example)\n\n// ~/.openclaw/openclaw.json\n{\n  \"$include\": [\"./gateway.json5\", \"./channels/telegram.json5\"],\n}\n\nTelegram open DMs (must explicitly allow senders)\n\nSchema constraint: when dmPolicy=\"open\", allowFrom must include \"*\".\n\nopenclaw config set channels.telegram.dmPolicy '\"open\"' --json\nopenclaw config set channels.telegram.allowFrom '[\"*\"]' --json\nopenclaw doctor\n\nDiscord token (config or env fallback)\n\n# Option A: write to config\nopenclaw config set channels.discord.token '\"YOUR_DISCORD_BOT_TOKEN\"' --json\n\n# Option B: env var fallback (still recommend a channels.discord section exists)\n# export DISCORD_BOT_TOKEN=\"...\"\n\nopenclaw doctor\n\nEnable web_search (Brave / Perplexity)\n\nopenclaw config set tools.web.search.enabled true --json\nopenclaw config set tools.web.search.provider '\"brave\"' --json\n\n# Recommended: provide the key via env var (or write tools.web.search.apiKey)\n# export BRAVE_API_KEY=\"...\"\n\nopenclaw doctor"
      },
      {
        "title": "Resources",
        "body": "Load these when you need a field index or source locations:\n\nreferences/openclaw-config-fields.md (root key index + key field lists with sources)\nreferences/schema-sources.md (how to locate schema + constraints in openclaw repo)\nscripts/openclaw-config-check.sh (print config path + run doctor)"
      }
    ],
    "body": "OpenClaw Config\nOverview\n\nSafely edit ~/.openclaw/openclaw.json (or the path set by OPENCLAW_CONFIG_PATH) using a schema-first workflow. Validate before and after changes to avoid invalid keys/types that can break startup or change security behavior.\n\nWorkflow (Safe Edit)\nIdentify the active config path\nPrecedence: OPENCLAW_CONFIG_PATH > OPENCLAW_STATE_DIR/openclaw.json > ~/.openclaw/openclaw.json\nThe config file is JSON5 (comments + trailing commas allowed).\nGet an authoritative schema (do not guess keys)\nIf the Gateway is running: use openclaw gateway call config.schema --params '{}' to fetch a JSON Schema matching the running version.\nOtherwise: use openclaw/openclaw source-of-truth, primarily:\nsrc/config/zod-schema.ts (OpenClawSchema root keys like gateway/skills/plugins)\nsrc/config/zod-schema.*.ts (submodules: channels/providers/models/agents/tools)\ndocs/gateway/configuration.md (repo docs + examples)\nApply changes with the smallest safe surface\nPrefer small edits: openclaw config get|set|unset (dot path or bracket notation).\nIf the Gateway is online and you want \"write + validate + restart\" in one step: use RPC config.patch (merge patch) or config.apply (replaces the entire config; use carefully).\nFor complex setups, split config with $include (see below).\nValidate strictly\nRun openclaw doctor, then fix issues using the reported path + message.\nDo not run openclaw doctor --fix/--yes without explicit user consent (it writes to config/state files).\nGuardrails (Avoid Schema Bugs)\nMost objects are strict (.strict()): unknown keys usually fail validation and the Gateway will refuse to start.\nchannels is .passthrough(): extension channels (matrix/zalo/nostr, etc.) can add custom keys, but most provider configs remain strict.\nenv is .catchall(z.string()): you can put string env vars directly under env, and you can also use env.vars.\nSecrets: prefer environment variables/credential files. Avoid committing long-lived tokens/API keys into openclaw.json.\n$include (Modular Config)\n\n$include is resolved before schema validation and lets you split config across JSON5 files:\n\nSupports \"$include\": \"./base.json5\" or \"$include\": [\"./a.json5\", \"./b.json5\"]\nRelative paths are resolved against the directory of the current config file.\nDeep-merge rules (per implementation):\nobjects: merge recursively\narrays: concatenate (not replace)\nprimitives: later value wins\nIf sibling keys exist alongside $include, sibling keys override included values.\nLimits: max depth 10; circular includes are detected and rejected.\nCommon Recipes (Examples)\nSet default workspace\nopenclaw config set agents.defaults.workspace '\"~/.openclaw/workspace\"' --json\nopenclaw doctor\n\nChange Gateway port\nopenclaw config set gateway.port 18789 --json\nopenclaw doctor\n\nSplit config (example)\n// ~/.openclaw/openclaw.json\n{\n  \"$include\": [\"./gateway.json5\", \"./channels/telegram.json5\"],\n}\n\nTelegram open DMs (must explicitly allow senders)\n\nSchema constraint: when dmPolicy=\"open\", allowFrom must include \"*\".\n\nopenclaw config set channels.telegram.dmPolicy '\"open\"' --json\nopenclaw config set channels.telegram.allowFrom '[\"*\"]' --json\nopenclaw doctor\n\nDiscord token (config or env fallback)\n# Option A: write to config\nopenclaw config set channels.discord.token '\"YOUR_DISCORD_BOT_TOKEN\"' --json\n\n# Option B: env var fallback (still recommend a channels.discord section exists)\n# export DISCORD_BOT_TOKEN=\"...\"\n\nopenclaw doctor\n\nEnable web_search (Brave / Perplexity)\nopenclaw config set tools.web.search.enabled true --json\nopenclaw config set tools.web.search.provider '\"brave\"' --json\n\n# Recommended: provide the key via env var (or write tools.web.search.apiKey)\n# export BRAVE_API_KEY=\"...\"\n\nopenclaw doctor\n\nResources\n\nLoad these when you need a field index or source locations:\n\nreferences/openclaw-config-fields.md (root key index + key field lists with sources)\nreferences/schema-sources.md (how to locate schema + constraints in openclaw repo)\nscripts/openclaw-config-check.sh (print config path + run doctor)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/caopulan/openclaw-config",
    "publisherUrl": "https://clawhub.ai/caopulan/openclaw-config",
    "owner": "caopulan",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-config",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-config",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-config/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-config/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-config/agent.md"
  }
}