tinyhumansai/openhuman · error
unknown call arg: {other}
Error message
unknown call arg: {other} What it means
`openhuman call` matches tokens by exact string: `--method`, `--params`, `-h`/`--help`. Everything else — equals-joined forms, typo'd flags, positional text — hits the catch-all and is echoed back verbatim. This keeps the raw-call surface minimal and predictable since it feeds the JSON-RPC dispatcher directly.
Source
Thrown at src/core/cli.rs:482
method = Some(
args.get(i + 1)
.ok_or_else(|| anyhow::anyhow!("missing value for --method"))?
.clone(),
);
i += 2;
}
"--params" => {
params = args
.get(i + 1)
.ok_or_else(|| anyhow::anyhow!("missing value for --params"))?
.clone();
i += 2;
}
"-h" | "--help" => {
println!("Usage: openhuman call --method <name> [--params '<json>']");
return Ok(());
}
other => return Err(anyhow::anyhow!("unknown call arg: {other}")),
}
}
let method = method.ok_or_else(|| anyhow::anyhow!("--method is required"))?;
let params = parse_json_params(¶ms).map_err(anyhow::Error::msg)?;
// Raw calls bypass namespace parsing, but not the configured memory-driver
// binding. Without this gate an absent capability could still reach a
// destructive embedded handler because plain CLI invocations have no
// ambient CoreContext to filter the registry.
crate::core::cli_capability::ensure_capability_blocking(
all::capability_for_rpc_method(&method).flatten(),
&format!("openhuman call --method {method}"),
)?;
// `call` invokes a JSON-RPC method that may run an orchestrator turn
// (e.g. `agent.chat`), so it needs the same roomy stack as the server.
let rt = tokio::runtime::Builder::new_multi_thread()View on GitHub (pinned to a221052e0d)
Solutions
- Use the exact space-separated form: `openhuman call --method <name> --params '<json>'`
- Run `openhuman call --help` for the exact usage line
- Remove positional arguments — the subcommand takes flags only
Example fix
# before openhuman call --method=openhuman.config_get # after openhuman call --method openhuman.config_get
Defensive patterns
Strategy: validation
Validate before calling
# bash: only the two documented flags reach the subcommand
case "${1:-}" in
--method|--params) ;;
-h|--help) exec openhuman call --help ;;
*) echo "unsupported call flag: $1 (use --method <name> | --params '<json>')" >&2; exit 2 ;;
esac Prevention
- Never use --method=name equals syntax or flag abbreviations with `call`
- The method goes after --method as a separate token; positional methods are not supported
- Wrap user-supplied values in quotes, not new flag tokens
When it happens
Trigger: `openhuman call --method=openhuman.x` (equals form unsupported); `--m openhuman.x` (abbreviation); `openhuman call openhuman.x` (positional, not supported).
Common situations: Habitual `key=value` flag syntax from other tools; abbreviating flags; trying to pass the method positionally as with some other CLIs.
Related errors
- missing value for --method
- missing value for --params
- --method is required
- audio blob is empty
- voice_not_compiled
AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16).
Data as JSON: /api/errors/c9b5e0fe8b0d2ce8.
Report an issue: GitHub.