help

Description of command parameters.

Description

Without a command argument, returns a plain-text list of all registered CLI commands with short descriptions. With a command name, returns detailed documentation for that command.

A synonym ? is registered with the same handler in the CLI, but on public nodes such as rpc.cellframe.net the ? method is not in allowed_cmd — use method "help" instead.

CLI usage

help [<command>]

JSON-RPC request

The help command is not in json_commands(), so successful responses use type 0 (TYPE_RESPONSE_STRING) and result is a plain string. Two request formats are supported. If params is present, the version 2 path is ignored.

Version 1 — legacy params string

Put the full command line in params[0]. Arguments are separated by semicolons (;) — the same delimiter the CLI server uses in dap_strsplit(str_cmd, ";", -1). Spaces are not separators. For example, "help wallet" is treated as a single token and returns the command list, not wallet help.

List all commands

{"method":"help","params":[""],"id":1,"version":1}

Equivalent forms: params ["help"], omitted params, or params [].

Help for a specific command

{"method":"help","params":["help;wallet"],"id":2,"version":1}
{"method":"help","params":["help;net"],"id":3,"version":1}

The first token is the command name (help); the second is the target command.

Version 2 — subcommand + arguments

Omit params. Use subcommand for the target command name only — do not repeat help in the subcommand (the server prepends method automatically).

List all commands

{"method":"help","id":1,"version":2}

Omit subcommand entirely. Do not pass "subcommand":"" — that produces an empty command token and returns command "" not recognized.

Help for a specific command

{"method":"help","subcommand":"wallet","id":2,"version":2}
{"method":"help","subcommand":"net","id":3,"version":2}

There are no flags for help; arguments is unused.

Request fields:

JSON-RPC response

The HTTP body uses the Cellframe RPC envelope: type, result, id, version.

Command list (no command argument)

{
  "type": 0,
  "result": "Available commands:\n\nsrv_stake:\t\t\tDelegated stake service commands\ndag:\t\t\tDAG commands\n...\nwallet:\t\t\tWallet operations\n...\n",
  "id": 1,
  "version": 1
}

Each line has the form name:\t\t\tdescription. The list includes every command registered on the node, including commands that may be restricted for remote callers. Verified with both version: 1 and version: 2 on rpc.cellframe.net (2026-07-14).

Help for one command

{
  "type": 0,
  "result": "Wallet operations:\nwallet list\nwallet new -w <wallet_name> ...\n",
  "id": 2,
  "version": 2
}

The result text is built from the command’s doc and doc_ex fields (doc line, then doc_ex body).

Unknown command

{
  "type": 0,
  "result": "command \"foo\" not recognized",
  "id": 6,
  "version": 1
}

The handler returns exit code -1; the error is still delivered as a plain string in result.

Empty subcommand (version 2 pitfall)

{
  "type": 0,
  "result": "command \"\" not recognized",
  "id": 1,
  "version": 2
}

Caused by "subcommand":"". Omit the field instead.

Restricted method (public nodes)

Calling a method not listed in allowed_cmd from a non-local client returns type 2:

{
  "type": 2,
  "result": [
    {
      "errors": [
        {
          "code": -1,
          "message": "Command \"?\" is restricted"
        }
      ]
    }
  ],
  "id": 5,
  "version": 1
}

Commands in help list vs public allowed_cmd

The general help list shows all registered commands. On rpc.cellframe.net (verified 2026-07-14), only the following method names are callable remotely; all others return Command "<name>" is restricted even though they appear in the help list:

Help for restricted commands (e.g. version 1 params ["help;exit"] or version 2 subcommand "exit") still works because help itself is allowed; only invoking those commands remotely is blocked.