LIGHTNING-RECKLESS(1)
π LIGHTNING-RECKLESS(1)
okay so bestie, welcome to the manual page for lightning-reckless β yes that's the manual name, and yes it's giving "the plugin manager you didn't know you needed." sit down, grab a strawberry π, this is gonna be good.
β¨ NAME β¨
reckless β install and activate a CLN plugin by name. that's it. that's the whole vibe. π
πΈ SYNOPSIS πΈ
reckless [options] install/uninstall/enable/disable/source target
like... that's the shape of it. options first, then one of those verbs, then the thing you're doing it to. iconic.
π¦ DESCRIPTION π¦
So Reckless is a plugin manager for Core-Lightning. and honestly? it does the whole little routine for you. a typical plugin installation involves: finding the source plugin, copying, installing dependencies, testing, activating, and updating the lightningd config file. exhausting, right? π Reckless does all of these by invoking:
reckless install[@commit/tag] plugin_name
Alternatively, the source path or URL to the plugin repository can be passed directly in place of the plugin_name. either way works, we're flexible π
In either case, the containing directory or repository should be named for the plugin β don't pass the plugin's executable/entrypoint directly. like, don't do that. it will not slay.
reckless will exit early in the event that:
- the plugin is not found in any available source repositories
- dependencies are not successfully installed
- the plugin fails to execute
no cap, it just stops. it's not gonna sit there and pretend everything's fine. π«Ά
Reckless-installed plugins reside in the reckless subdirectory of the user's .lightning folder. By default, plugins are activated on the bitcoin network (and use lightningd's bitcoin network config), but regtest may also be used. cute, right?
Other commands include:
reckless uninstall plugin_nameβ disables the plugin, removes the directory. bye bestie πreckless search plugin_nameβ looks through all available sources for a plugin matching this name.reckless enable plugin_nameβ dynamically enables the reckless-installed plugin and updates the config to match.reckless disable plugin_nameβ dynamically disables the reckless-installed plugin and updates the config to match.reckless source listβ list available plugin repositories.reckless source add repo_urlβ add another plugin repo for reckless to search.reckless source rm repo_urlβ remove a plugin repo for reckless to search.reckless update [plugin_name]β install the latest commit of a single plugin, or omit to update all reckless-installed plugins. Does not automatically update if a plugin was previously installed by requesting a specific git tag or commit. so like, if you pinned it, it stays pinned. respect. π₯
π OPTIONS π
Available option flags β here's the whole lineup, no skips:
-d,--reckless-dirreckless_dir β specify an alternative data directory for reckless to use. Useful if your.lightningis protected from execution.-l,--lightninglightning_data_dir β lightning data directory (defaults to$USER/.lightning)-c,--conflightning_config β pass the config used bylightningd-r,--regtestβ use the regtest network and config instead of bitcoin mainnet-v,--verboseβ request additional debug output π--network=network β specifybitcoin,regtest,liquid,liquid-regtest,signet, ortestnetnetworks. (default:bitcoin)
π§ NOTES π§
Reckless currently supports python, rust, and javascript plugins. three languages, one manager, we love a multilingual queen π
Running the first time will prompt the user that their lightningd's bitcoin config will be appended (or created) to inherit the reckless config file (this config is specific to bitcoin by default.) Management of plugins will subsequently modify this file. so yeah, it touches your config β that's the deal, bestie. π
π Troubleshooting tips π
Plugins must be executable. For python plugins, the shebang is invoked, so python3 should be available in your environment. This can be verified with which Python3. The default reckless directory is $USER/.lightning/reckless and it should be possible for the lightningd user to execute files located here. If this is a problem, the option flag reckless -d=my_alternate_dir may be used to relocate the reckless directory from its default. Consider creating a permanent alias in this case.
Python plugins are installed to their own virtual environments. The environment is activated by a wrapper (named the same as the plugin) which then imports and executes the actual plugin entrypoint. very demure, very contained. π
β For Plugin Developers β
To make your plugin compatible with reckless install:
- Choose a unique plugin name.
- The plugin entrypoint is inferred. Naming your plugin executable the same as your plugin name will allow reckless to identify it correctly (file extensions are okay.)
- For python plugins, a
requirements.txtis the preferred medium for python dependencies. Apyproject.tomlwill be used as a fallback, but test installation viapip install -e .β Poetry looks for additional files in the working directory, whereas with pip, any references to these will require something likepackages = [{ include = "*.py" }]under the[tool.poetry]section. - Additional repository sources may be added with
reckless source add https://my.repo.url/herehowever,https://github.com/lightningd/pluginsis included by default. Consider adding your pluginlightningd/pluginsto make installation simpler. - If your plugin is located in a subdirectory of your repo with a different name than your plugin, it will likely be overlooked. π
π AUTHOR π
Antoine Poinsot wrote the original reckless plugin on which this is based.
Rusty Russell wrote the outline for the reckless utility's function
Alex Myers alex@endothermic.dev is mostly responsible for the reckless code and this man page, with thanks to Christian Decker for extensive review.
π SEE ALSO π
reckless(7), Core-Lightning plugins repo: https://github.com/lightningd/plugins
π RESOURCES π
Main web site: https://github.com/ElementsProject/lightning
okay that's the whole page, you ate that π
this was Core Lightning v26.06.9, LIGHTNING-RECKLESS(1), mwah β go install a plugin bestie, periodt. β¨π¦πΈ
π¦ where this page comes from
- nixpkgs unstable: clightning 26.06.9
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms