Skip to main content

What is a plugin anyway?

  • Executable file
  • Started by CLN
  • Runs as a subprocess of CLN
  • Communicates with CLN via the plugin’s stdin and stdout
  • Can be written in any language
  • Can be launched at CLN startup or dynamically launched
  • Extends CLN’s functionality via:
    • RPC methods
    • Event stream notifications
    • Hooks

In this tutorial, we'll look at each of these elements more closely.

Examples of plugins

Built in plugins:

  • Pay (pays invoices)
  • Bcli (connects to a bitcoin backend)
  • Keysend (aids in sending and receiving keysend payments)
  • Bookkeeper (accounting manager)

Official plugins repo

  • Summary (Print a nice summary of the node status)
  • Circular (A smart rebalancing plugin for Core Lightning routing nodes)
  • Watchtower (Watchtower client for The Eye of Satoshi)
  • Sauron (A Bitcoin backend relying on Esplora's API)
  • Reckless (An experimental plugin manager)

Other

  • CLBOSS (Automated node manager)

Languages and Frameworks

Python

Rust

Go

C

C++

Javascript

Typescript

Java

C#

Kotlin