pipe stdin to matrix
Go to file
Moritz Poldrack b966bcfb04 use XDG_CONFIG_HOME by default
To prevent having users always specify the configuration file, the path
now defaults to $XDG_CONFIG_HOME/neosay/config.json. This way it is
possible to send messages from a "default identity" like this:

	echo "look mom, I'm in someone's commit history!" | neosay

To make the code more succinct, flag parsing is no longer done manually,
but instead using the flag package from stdlib.

Fixes: https://github.com/donuts-are-good/neosay/issues/2
Signed-off-by: Moritz Poldrack <git@moritz.sh>
2023-04-18 21:54:02 -05:00
.gitignore hello neo... 2023-04-08 22:16:01 -05:00
example.json hello neo... 2023-04-08 22:16:01 -05:00
go.mod hello neo... 2023-04-08 22:16:01 -05:00
go.sum hello neo... 2023-04-08 22:16:01 -05:00
main.go use XDG_CONFIG_HOME by default 2023-04-18 21:54:02 -05:00
README.md hello neo... 2023-04-08 22:16:01 -05:00

donuts-are-good's followers donuts-are-good's stars donuts-are-good's visitors

🎉 Neosay

Neosay is an easy CLI tool that allows you to send messages and code from files or stdin to Matrix.

📥 Click the banner to download

image

Download a copy of Neosay for your system by clicking the big green banner above.

🚀 Building It Yourself

To build Neosay, you'll need to clone the repository and build the binary:

git clone https://github.com/donuts-are-good/neosay.git
cd neosay
go build

📝 Configuration (Environment Variables)

You may want to use Neosay with environment variables instead of a config file.

echo "Hello, world!" | ./neosay

You can load in your configuration details as environment variables like this in your environment:

export MATRIX_HOMESERVER_URL="https://matrix.example.com"
export MATRIX_USER_ID="@yourusername:example.com"
export MATRIX_ACCESS_TOKEN="your_access_token"
export MATRIX_ROOM_ID="!yourroomid:example.com"

📝 Configuration (JSON)

Neosay can optionally use a JSON configuration file to store the Matrix homeserver URL, user ID, access token, and room ID. This makes it easy to switch between rooms.

Note: Be careful using this method, anybody can inmpersonate you with this information. It's best to make a different account for this.

Here's an example of the JSON configuration file:

{
  "homeserverURL": "https://matrix.example.com",
  "userID": "@yourusername:example.com",
  "accessToken": "your_access_token",
  "roomID": "!yourroomid:example.com"
}

🌟 Examples

Sending a simple message

echo "Hello, world!" | ./neosay config.json

Sending a multi-line message

cat yourfile.txt | ./neosay config.json

Sending a code block

echo "Hello, world!" | ./neosay -c config.json

Sending a multi-line code block

cat yourcodefile.py | ./neosay --code config.json

🤖 Neosay in the wild

Here are some other ways to use Neosay:

  • Share code snippets with your team in a Matrix room
  • Send logs or debugging information from a script
  • Share inspirational quotes or jokes
  • Send notifications from your CI/CD pipelines or monitoring tools

📡 Contributing

I'll take help however you can get it to me, whether that be a pull request, a .patch file, a sticky note, smoke signals, bribes, you name it.

🖇️ License

neosay is licensed under the MIT license. Check out the LICENSE file for more info. If you dont get it don't worry about it.