zeroclaw-labs/zeroclaw · warning · anyhow::Error

`zeroclaw props` has been renamed to `zeroclaw config`. Repl

Error message

`zeroclaw props` has been renamed to `zeroclaw config`. Replace `props` with `config` in your command and try again.

What it means

The `props` subcommand was renamed to `config`; the CLI keeps a `Commands::Props` arm solely to print this remediation message and exit non-zero. No property get/set logic executes behind it.

Source

Thrown at src/main.rs:6239

            }
            ConfigCommands::Generate { version, encrypt } => {
                let target = version.unwrap_or(crate::config::migration::CURRENT_SCHEMA_VERSION);
                let zeroclaw_dir = config
                    .config_path
                    .parent()
                    .map(std::path::Path::to_path_buf);
                let opts = crate::config::migration::GenerateOptions {
                    encrypt_secrets: encrypt,
                    secret_store_dir: zeroclaw_dir.as_deref(),
                };
                let toml_out = crate::config::migration::generate(target, &opts)?;
                print!("{toml_out}");
                Ok(())
            }
        },

        Commands::Props { .. } => {
            anyhow::bail!(
                "`zeroclaw props` has been renamed to `zeroclaw config`. \
                 Replace `props` with `config` in your command and try again."
            );
        }

        #[cfg(feature = "plugins-wasm")]
        Commands::Plugin { plugin_command } => match plugin_command {
            PluginCommands::List => {
                let host = plugin_host_with_configured_security(&config)?;
                let plugins = host.list_plugins();
                if plugins.is_empty() {
                    println!("{}", t("cli-plugins-none", "No plugins installed."));
                } else {
                    println!("{}", t("cli-plugins-installed", "Installed plugins:"));
                    for p in &plugins {
                        println!(
                            "  {} v{} — {}",
                            p.name,

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Replace `props` with `config` in the command (e.g. `zeroclaw config get <path>`, `zeroclaw config set <path> <value>`)
  2. Update shell aliases and any scripts that call `zeroclaw props`
  3. Skim `zeroclaw config --help` for the current subcommand set before continuing

Example fix

# before
zeroclaw props set providers.models.anthropic.default.api_key sk-ant-...
# after
zeroclaw config set providers.models.anthropic.default.api_key sk-ant-...
Defensive patterns

Strategy: validation

Validate before calling

# upgrade checklist: catch stale command usage before it ships
grep -RInE 'zeroclaw[[:space:]]+props' scripts/ ci/ Makefile 2>/dev/null && {
  echo "found `zeroclaw props` usage; rename to `zeroclaw config`"; exit 1;
}

Prevention

When it happens

Trigger: Any invocation of the old verb: `zeroclaw props`, `zeroclaw props get <path>`, `zeroclaw props set <path> <value>` — the match arm bails unconditionally.

Common situations: Muscle memory or shell aliases from an older ZeroClaw/OpenClaw install; cron jobs, CI scripts, or runbooks still pinned to the `props` spelling after an upgrade.

Related errors


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/64204bd9ac1cd56b. Report an issue: GitHub.