Hi all,
I've been running OpenClaw with a split config setup using the $include feature — where openclaw.json contains only includes pointing to separate files in config/:
json{
"agents": { "$include": "./config/agents.json" },
"models": { "$include": "./config/models.json" },
"gateway": { "$include": "./config/gateway.json" },
"channels": { "$include": "./config/channels.json" },
"plugins": { "$include": "./config/plugins.json" },
"auth": { "$include": "./config/auth.json" },
"tools": { "$include": "./config/tools.json" },
"bindings": { "$include": "./config/bindings.json" }
}
This works great for keeping config organized and auditable. However, every time openclaw onboard or npm install -g openclaw@latest runs, the tooling overwrites openclaw.json with a flat merged config, destroying the $include structure.
Feature request / bug report: Could the onboard wizard and update routine detect an existing $include structure and write changes back to the appropriate sub-files instead of flattening everything into openclaw.json? Or at minimum, warn that it's about to overwrite a split config?
For now I've written a workaround script that re-splits after each update, but it would be much cleaner if OpenClaw's own tooling respected its own $include feature.
But I'm no programmer, so, do I something wrong? Is it a setting that I missed?