Home

Awesome

ni.py or "Nate's Inane Post Yeeter" is about as serious of a project as the name implies. It's a CLI Python client designed to post plain text messages simultaneously to Nostr relays of your choosing, a server that supports the Mastodon API, and BlueSky. It's a work in progress so use it as such.

What's with the name?

Why?

I was bored.

However, I can see this being a handy tool for me or others. The ability to share a quick thought from the command line to one or more networks could be an easy way to send a post or ask a question, the ability to post to multiple networks at once could be handy to those who use multiple regularly, and this could be useful to content creators looking to share their content across the interwebs. It also has a cool retro feel and makes me think I'm a "l33t h4ck3r" because it's in the terminal.

Finally, this is also useful as a proof of concept. What I'd love to see is a GUI client that can post to the three networks, have a following feed combining users on the protocols, and be able to reply to others (and see other's replies) on multiple protocols. It wouldn't hurt to show something like that is possible by making a more primitive version that's aligned with my (lack of) skills.

Dependencies

pynostr, mastodon.py, and atproto for both versions. Additionally dependencies keyring and dbus-python for the keyring version.

Installation (Pip/Pipx - Recommended)

Installation (Keyring Edition)

Install Python & Pip

Download they keyring script

Install Dependencies

(optional) Configure the script

Configure credentials

Run Script

Installation (Termux)

Android (Termux)

Installation (Simplified Version) Win/Linux/Mac

Install Python & Pip

Download they simplified script

Install Dependencies

Configure the Script

Run the Script

To Do

Honestly, this is mostly pretty much how I expect the project to stay. Thanks to libraries that will keep themselves updated there's no real worry about it becoming incompatible or running into security issues - my code is pretty simple and is mostly just instructions to pipe info into libraries that do the heavy lifting.

This was largely created as a proof of concept and a possibly useful tool in a very specific set of circumstances (like, say, trying to create a way for people to follow blog posts on all platforms). It can accomplish both, and I got to toy around with Python, so I'd call that a win.

Things maybe worth looking into:

Updates

Add this repo's RSS feed to your favorite feed reader or just about anything.

Or follow me on: Nostr or Friendica (AP Compatible)

Note, Nerdica.ca has been having some trouble. Not sure if it'll be back online or not, but I may not get your message if you @ me there.

Semi official NIPY announcement/test accounts Nostr - ActivityPub - and BlueSky

Credit

All the hard work was done for me. Credit to PYNostr, Mastodon.PY, atproto, and Keyring for making this possible.