Messaging in Plang

RMAG news

This article explores Plang, an intent-based programming language designed to interpret natural language. For more information, visit plang.is

Plang has built-in messaging. It uses the Nostr protocol by default to do this.

Before We Start

Make sure to install Plang.

Note that building code in Plang costs money as it uses LLM. If you have an OpenAI key, you can use that. Instructions are available on your first build.

Plang is a programming language where you write the code in natural language. I call it intent programming because you just need to write your intent and the LLM will figure out what you would like to do.

To understand it, make sure to go through some of the lessons we have.

Prepare

There are some Nostr clients out there. I recommend Damus (iOS) and Amethyst (Android).

Download either of these clients to your phone. This allows us to communicate with the Plang app we are building in this tutorial.

After you have set it up, create a new account and find the public address by clicking your profile picture and going into your profile.

The public address will start with ‘npub…..’.

Copy this address, so you have ‘npub…..’ in your clipboard.

Set Up Code

Let’s get started. You should have Plang installed and create a new folder on your computer (you choose the location).

Let’s create the folder MessageTest. Inside the folder, create a file called Start.goal. This is the default entry point into your app.

Now write the code:

Start
– get the public address for message, write to %publicAddress%
– write out ‘Your address is: %publicAddress%’
– listen to message from ‘npub…’,
on new message call ProcessMessage, content of goes into %message%

ProcessMessage
– write out ‘Message from phone: %message%’

Now build and run it:

plang exec

It should now print out the Nostr public address and listen for messages:

Your address is: npub….

Try sending a message from your phone to the npub address that was printed out.

Send a Message

Now we want to send a message to our phone.

Create a new file SendMessage.goal:

Make sure to put in you npub address from your phone instead of ‘npub….’

SendMessage
– send a message to ‘npub….’,
content=%content%

Build the code:

plang build

And run the code with some content:

plang SendMessage content=“Hello”

Your phone should receive a message with the content “Hello.”

More Information

If Plang is interesting to you, you should dig a bit deeper:

Basic concepts and lessons

Simple Todo example is a good start

Documentation on the message module
Check out the GitHub repo

Meet up on Discord to discuss or get help

Please follow and like us:
Pin Share