Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cmdruid/pubnote

Send encrypted notes between terminals, from anywhere to anywhere, using nostr.
https://github.com/cmdruid/pubnote

nostr pastebin remote terminal

Last synced: 2 months ago
JSON representation

Send encrypted notes between terminals, from anywhere to anywhere, using nostr.

Awesome Lists containing this project

README

        

# pubnote

![](res/alice.gif)
![](res/bob.gif)

Send encrypted notes between terminals, from anywhere to anywhere, using the power of nostr.

## Installation

This program is designed to run as a simple binary. No installation required.

## Usage

```ts
/**
Usage:
Machine A: pubnote -p 'secretphrase' recv
Machine B: pubnote -p 'secretphrase' send "whatever" "you" "want"

Options:
--key -k privkey : Specify a 32 byte private key to use for signatures.
Must provide in string hex format.

--pass -p password : Specify the secret passphrase to use. The secret is
hashed and used for end-to-end routing and encryption.

--relay -r address : Set the relay to use.

--silent -s : Enable silent output (for better use in scripts).

--timeout -t : Time to keep socket open when connecting
(in milliseconds). Default is 500ms.

--verbose -v : Enable verbose debug output.
*/
```

## How it Works

Your secret is hashed and use to encrypt each note over the wire. The note itself is tagged with a secure hash of the secret, which both parties use to delvier the note. The note is delivered over a relay (of your choice) using the nostr protocol.

That's about it really. I wanted to keep this simple.

## Development

The project is setup to build standalone binaries using `pkg`. Simply run `yarn build`, then check the `dist` folder for the output.

## Resources

**Noble-secp256k1 Library**
Used for identity and signing events.
https://github.com/paulmillr/noble-secp256k1

**Websockets** (nodejs only)
Used for communicating over a websocket.
https://github.com/websockets/ws

**Pkg**
Package Node.js projects into an executable.
https://github.com/vercel/pkg

**Nostr Implementation Possibilities**
https://github.com/nostr-protocol/nips

**Nostr-Emitter**
https://github.com/cmdruid/nostr-emitter

## Contributions
All contributions are welcome!