:title cli_input :sig DValue cli_input(Request& context) :see >1_CLI >json_decode >DValue :content Returns a structured parameter tree for a `CLI(Request& context)` invocation. `cli_input()` merges simple command inputs into one `DValue`: 1. query parameters from `context.get` 2. form parameters from `context.post` 3. JSON object fields from an `application/json` or `*+json` request body Later sources override earlier ones, so a JSON body can override a query or form key with the same name. If the JSON body is a scalar or array instead of an object, the decoded value is stored under `input["_"]`. ```cpp CLI(Request& context) { DValue input = cli_input(context); String action = first(input["action"].to_string(), "help"); if(action == "echo") print(input["message"].to_string(), "\n"); } ``` Convenience script usage: ```sh scripts/uce-cli /tests/cli.uce action=echo message=hello scripts/uce-cli --json '{"action":"echo","message":"hello"}' /tests/cli.uce ```