Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/cmdruid/pubnote
- Owner: cmdruid
- License: cc0-1.0
- Created: 2023-02-06T07:34:47.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-07T03:47:28.000Z (almost 2 years ago)
- Last Synced: 2024-04-18T12:12:04.092Z (9 months ago)
- Topics: nostr, pastebin, remote, terminal
- Language: JavaScript
- Homepage:
- Size: 236 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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!