2022-12-05 11:59:26 +05:30
2022-12-01 00:16:30 +05:30
2022-12-05 11:57:34 +05:30
2022-09-03 04:00:17 +05:30
2022-12-05 11:57:34 +05:30
2022-09-17 13:28:54 +05:30
2022-11-17 01:52:57 +05:30
2022-12-05 11:59:26 +05:30
2022-12-05 10:21:32 +05:30

nostr_console

Nostr console client using Dart

todo

  • initial creation of private/pub key ( and loading happens in background)
  • allow special character input, and 256 limit info

other todo

  • build appimage for linux use

Docker

Build using

docker build -t nostr_console_image .

Then run using

docker run -it nostr_console_image .

Use

Easiest way to run nostr_console: Go to releases and get an executable for your platform.

Otherwise do following:

  1. Install Flutter SDK, or Dart SDK
  2. git clone this repository
  3. From the project folder, run command dart pub get which gets all the dependencies
  4. Run command dart run bin/nostr_console.dart, which will run it with default settings.
  5. Further you can create an executable for your platform by dart compile exe bin/nostr_console.dart which will create an executable for your platform. You can invoke that exe with required parameters. On Windows, you can create a shortcut to it with your desired command line arguments mentioned in it.

Usage:

usage: dart run bin/nostr_console.dart [OPTIONS] 

  OPTIONS

      -p, --pubkey  <public key>    The hex public key of user whose events and feed are shown. Default is a hard-coded
                                    public key derived from a well known private key. When given, posts/replies can't be sent. 
      -k, --prikey  <private key>   The hex private key of user whose events and feed are shown. Also used to sign events 
                                    sent. Default is same-as-above hard-coded well known private key. 
      -r, --relay   <relay wss url> The relay url that is used as main relay. Default is wss://nostr-relay.untethr.me.
      -d, --days    <N as num>      The latest number of days for which events are shown. Default is 1.
      -q, --request <REQ string>    This request is sent verbatim to the default relay. It can be used to recieve all events
                                    from a relay. If not provided, then events for default or given user are shown.
      -f, --file    <filename>      Read from given file, if it is present, and at the end of the program execution, write
                                    to it all the events (including the ones read, and any new received).
      -s, --disable-file            When turned on, even the default file is not read from.
      -t, --translate               Translate some of the recent posts using Google translate site ( and not api). Google 
                                    is accessed for any translation request only if this flag is present, and not otherwise.
      -l, --location                The given value is added as a 'location' tag with every kind 1 post made
      -h, --help                    Print help/usage message and exit. 
      -v, --version                 Print version and exit.

  UI Options                                
      -a, --align  <left>           When "left" is given as option to this argument, then the text is aligned to left. By default
                                    the posts or text is aligned to the center of the terminal. 
      -w, --width  <width as num>   This specifies how wide you want the text to be, in number of columns. Default is 100. 
                                    Cant be less than 60.
      -m, --maxdepth <depth as num> The maximum depth to which the threads can be displayed. Minimum is 2 and
                                    maximum allowed is 12. 
      -c, --color  <color>          Color option can be green, cyan, white, black, red and blue.

  Advanced
      -y, --difficulty <number>     The difficulty number in bits, only for kind 1 messages. Tne next larger number divisible by 4 is 
                                    taken as difficulty. Can't be more than 24 bits, because otherwise it typically takes too much 
                                    time. Minimum and default is 0, which means no difficulty.
      -e, --overwrite               Will over write the file with all the events that were read from file, and all newly received. Is
                                    useful when the file has to be cleared of old unused events. A backup should be made just in case
                                    of original file before invoking.

To get ALL the latest messages for last 3 days (on linux which allows backtick execution):

nostr_console.exe  --request=`echo "[\"REQ\",\"l\",{\"since\":$(date -d '-3 day' +%s)}]"`

To get the latest messages for user with private key K ( that is also used to sign posted/sent messages):

nostr_console.exe  --prikey=K

To get the latest messages for user with private key K for last 4 days ( default is 1) from relay R:

nostr_console.exe  --prikey=K --relay=R --days=4 

To write events to a file ( and later read from it too), for any given private key K:

nostr_console.exe  --file=eventsFile.txt --prikey=K

Screenshots

2022-12-02 (5) Showing Social network thread with re-shifting to left where threads are re-alignment to left for easier reading. 2022-12-02 (6)

Public channels overview with menu

2022-12-02 (7)

How public channels look like as of mid late 2022, with --translate flag automatically translating into English.

Contact

Nostr Telegram Channel or at Nostr Pulic Channel 52cab2e3e504ad6447d284b85b5cc601ca0613b151641e77facfec851c2ca816

For tips

Buy me a beer through my lightning address vishalxl@coinos.io

Description
Nostr console is an open-source twitter-like social network, direct chat app and group chat all bundled into one program. Built on the decentralized Nostr protocol.
Readme AGPL-3.0 15 MiB
Languages
Dart 98.8%
Shell 1%
Dockerfile 0.2%