reckless -- Issue a command to the reckless plugin manager utility
==================================================================

SYNOPSIS
--------

**reckless** *command* [*target/subcommand*] [*target*] 

DESCRIPTION
-----------

The **reckless** RPC starts a reckless process with the *command* and *target* provided.  Node configuration, network, and lightning direrctory are automatically passed to the reckless utility.

- **command** (string) (one of "install", "uninstall", "search", "enable", "disable", "source", "--version"): Determines which command to pass to reckless
   - *command* **install** takes a *plugin\_name* to search for and install a named plugin.
   - *command* **uninstall** takes a *plugin\_name* and attempts to uninstall a plugin of the same name.
   - *command* **search** takes a *plugin\_name* to search for a named plugin.
 ...
- **target/subcommand** (one of, optional): Target of a reckless command or a subcommand.:
  - (string)
  - (array)
- **target** (one of, optional): *name* of a plugin to install/uninstall/search/enable/disable or source to add/remove.:
  - (string)
  - (array)

RETURN VALUE
------------

On success, an object is returned, containing:

- **result** (array of strings): Output of the requested reckless command.:
  - (string, optional)
- **log** (array of strings): Verbose log entries of the requested reckless command.:
  - (string, optional)

AUTHOR
------

Alex Myers [alex@endothermic.dev](mailto:alex@endothermic.dev) is mainly responsible.

SEE ALSO
--------

reckless(1)

RESOURCES
---------

Main web site: [https://github.com/ElementsProject/lightning](https://github.com/ElementsProject/lightning)

EXAMPLES
--------


**Example 1**: 

Request:
```shell
lightning-cli reckless -k "command"="search" "target/subcommand"="backup"
```
```json
{
  "id": "example:reckless#1",
  "method": "reckless",
  "params": {
    "command": "search",
    "target/subcommand": "backup"
  }
}
```

Response:
```json
{
  "result": [
    "https://github.com/lightningd/plugins"
  ],
  "log": [
    "DEBUG: Warning: Reckless requires write access",
    "DEBUG: fetching from gh API: https://api.github.com/repos/lightningd/plugins/contents/",
    "DEBUG: fetching from gh API: https://api.github.com/repos/lightningd/plugins/git/trees/294f93d7060799439c994daa84f534c4d1458325",
    "INFO: found backup in source: https://github.com/lightningd/plugins",
    "DEBUG: entry: None",
    "DEBUG: sub-directory: backup"
  ]
}
```

**Example 2**: 

Request:
```shell
lightning-cli reckless -k "command"="install" "target/subcommand"='["summars", "currecyrate"]'
```
```json
{
  "id": "example:reckless#2",
  "method": "reckless",
  "params": {
    "command": "install",
    "target/subcommand": [
      "summars",
      "currecyrate"
    ]
  }
}
```

Response:
```json
{
  "result": [
    "/tmp/l1/reckless/summars",
    "/tmp/l1/reckless/currencyrate"
  ],
  "log": [
    "DEBUG: Searching for summars",
    "DEBUG: fetching from gh API: https://api.github.com/repos/lightningd/plugins/contents/",
    "DEBUG: fetching from gh API: https://api.github.com/repos/lightningd/plugins/git/trees/294f93d7060799439c994daa84f534c4d1458325",
    "INFO: found summars in source: https://github.com/lightningd/plugins",
    "DEBUG: entry: None",
    "DEBUG: sub-directory: summars",
    "DEBUG: Retrieving summars from https://github.com/lightningd/plugins",
    "DEBUG: Install requested from InstInfo(summars, https://github.com/lightningd/plugins, None, None, None, summars).",
    "INFO: cloning Source.GITHUB_REPO InstInfo(summars, https://github.com/lightningd/plugins, None, None, None, summars)",
    "DEBUG: cloned_src: InstInfo(summars, /tmp/reckless-726255950dyifh_fh/clone, None, Cargo.toml, Cargo.toml, summars/summars)",
    "DEBUG: using latest commit of default branch",
    "DEBUG: checked out HEAD: 5e449468bd57db7d0f33178fe0dc867e0da94133",
    "DEBUG: using installer rust",
    "DEBUG: creating /tmp/l1/reckless/summars",
    "DEBUG: creating /tmp/l1/reckless/summars/source",
    "DEBUG: copying /tmp/reckless-726255950dyifh_fh/clone/summars/summars tree to /tmp/l1/reckless/summars/source/summars",
    "DEBUG: linking source /tmp/l1/reckless/summars/source/summars/Cargo.toml to /tmp/l1/reckless/summars/Cargo.toml",
    "DEBUG: InstInfo(summars, /tmp/l1/reckless/summars, None, Cargo.toml, Cargo.toml, source/summars)",
    "DEBUG: cargo installing from /tmp/l1/reckless/summars/source/summars",
    "DEBUG: rust project compiled successfully",
    "INFO: plugin installed: /tmp/l1/reckless/summars",
    "DEBUG: activating summars",
    "INFO: summars enabled",
    "DEBUG: Searching for currencyrate",
    "DEBUG: fetching from gh API: https://api.github.com/repos/lightningd/plugins/contents/",
    "DEBUG: fetching from gh API: https://api.github.com/repos/lightningd/plugins/git/trees/294f93d7060799439c994daa84f534c4d1458325",
    "INFO: found currencyrate in source: https://github.com/lightningd/plugins",
    "DEBUG: entry: None",
    "DEBUG: sub-directory: currencyrate",
    "DEBUG: Retrieving currencyrate from https://github.com/lightningd/plugins",
    "DEBUG: Install requested from InstInfo(currencyrate, https://github.com/lightningd/plugins, None, None, None, currencyrate).",
    "INFO: cloning Source.GITHUB_REPO InstInfo(currencyrate, https://github.com/lightningd/plugins, None, None, None, currencyrate)",
    "DEBUG: cloned_src: InstInfo(currencyrate, /tmp/reckless-192564272t478naxn/clone, None, currencyrate.py, requirements.txt, currencyrate/currencyrate)",
    "DEBUG: using latest commit of default branch",
    "DEBUG: checked out HEAD: 5e449468bd57db7d0f33178fe0dc867e0da94133",
    "DEBUG: using installer python3venv",
    "DEBUG: creating /tmp/l1/reckless/currencyrate",
    "DEBUG: creating /tmp/l1/reckless/currencyrate/source",
    "DEBUG: copying /tmp/reckless-192564272t478naxn/clone/currencyrate/currencyrate tree to /tmp/l1/reckless/currencyrate/source/currencyrate",
    "DEBUG: linking source /tmp/l1/reckless/currencyrate/source/currencyrate/currencyrate.py to /tmp/l1/reckless/currencyrate/currencyrate.py",
    "DEBUG: InstInfo(currencyrate, /tmp/l1/reckless/currencyrate, None, currencyrate.py, requirements.txt, source/currencyrate)",
    "DEBUG: configuring a python virtual environment (pip) in /tmp/l1/reckless/currencyrate/.venv",
    "DEBUG: virtual environment created in /tmp/l1/reckless/currencyrate/.venv.",
    "INFO: dependencies installed successfully",
    "DEBUG: virtual environment for cloned plugin: .venv",
    "INFO: plugin installed: /tmp/l1/reckless/currencyrate",
    "DEBUG: activating currencyrate",
    "INFO: currencyrate enabled"
  ]
}
```
